Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop
Bonjour à tous,
Je viens aujourd'hui vous solliciter pour avoir une solution à mon problème. ![]()
Voilà, j'ai commencé à apprendre le C++ il y a quelque temps.
J'ai appris quelque notion grâce aux diverses tutoriels présent sur le Site Du Zero. J'ai donc réalisé un certain nombre de petite application dans la console (la fenêtre en noir et blanc).
Mais voilà, j'aimerais maintenant réaliser quelques jeux en 2D (puis 3D plus tard). Et comme j'ai pu le constater, la plupart des moteurs de jeu gratuit sont programmable en Java (ce qui pose un certain problème). ![]()
De plus, j'ai regardé quelque application venant de ce forum (Cuboid/Castlevania/Chaos etc...) qui m'ont vraiment donné envie de continuer, mais j'ai remarqué qu'ils étaient programmé pour la plupart en Java.
J'aimerais donc savoir si, je devrais plutôt me rabattre en Java, ou continuer le C++, et apprendre le fonctionnement de SDL ou autre.
J'espère que vous aurez compris mon problème, merci d'avance de bien vouloir m'aider
PS : Pendant que j'y suis, connaissez vous des moteurs de jeu performant comme Unity ou UDK gratuit en C++ pour plus tard
Merci. ![]()
Disons que maitriser java bien te prendre beacoup moins de temps que de maitriser le c++ (non les tuto du sdz ne suffisent pas du tout
) et que ca te prendre beacoup plus de temps et d'effort de le faire en c++
Aprés, l'avantage du c++ , c'est les perfs (si c'est bien optimisé) mais bon, je pense pas que t'ai des problemes de perf en java pour un jeu amateur (sauf peut être pour certains types de jeu mais bon
)
Le Java est plus utilisé parce qu'il est plus "simple" que le C++ (la syntaxe c''est tout !, l’algorithme n'est pas plus simple)... Il est aussi portable donc avec le même code tu peux l’exécuter partout ce qui est bien pratique.
Après niveau performance Java est en dessous mais j'en vois beaucoup qui disent "OLOL JAVA C EST NUL MINECRAFT CA RAM", Minecraft est mal optimisée et lourd d'un point de vue algo (la génération de milliers de cubes c'est pas super leger).
Ensuite les gens prennent plus Java sur ce forum car tout simplement ils ont vu minecraft ce sont dit "C'est en java" donc ils ont appris le java, c'est juste une mode. Il y a quelques années tout le monde ne jurer que par GameMaker et RPG Maker
Après il y a plus de librairie pour le jeu en C++ que pour le java ![]()
Il n'y a pas vraiment de réponse, les deux peuvent parfaitement faire des jeux.
Essaies les 2; et prends celui qui te plait le plus ![]()
Merci à tous pour vos réponses rapides et constructives
Je pense donc partir sur Java, car cela me semble être plus adapté aux amateurs
(Je veux dire par là que, il y a plus de moteur de jeu gratuit en Java, et qu'ils semblent avoir plus de programmeurs en Java sur ce forum)
Dernière question
Quel moteur de jeu gratuit connaissez vous en C++ ? ![]()
Celeniak -> Certe mais surtout minecraft est coder avec les pieds, il calcule les faces que l'on voit pas, gère la lumière sur ces même face.
Par exemple il y a Mythruna qui est un minecraft-like et qui rame pas alors qu'il est en Java
Mais après je suis d'accord pour faire ce genre de choses java n'est pas forcement le plus intelligent
Minecraft n'est pas à lent à cause de Java.
Comme la dit Cinematique Minecraft est extremement mal coder !
C'est normal qu'il rame, comme la dit Cinematique encore il y a beaucoup de chose calculer qui ne servent à rien.
Minecraft est très mal optimiser.
J'ai d'ailleurs entendu dire qu'il allez le re-coder intégralement.
Dubro
Ah ça, ce serait une très bonne chose, car sur mon PC, il rame comme pas possible
PommesCarrotes
J'ai vu quelque script en SLD, et je trouve que cela fait beaucoup de ligne pour presque rien ![]()
" Cinematique
J'ai lu des choses à propos, ça a était corrigé depuis l'alpha ça
"
Non.
Ce qui m'étonne c'est Mojang qui considère son jeu comme version finale mais ouvre un public bug tracker à la communauté
AndEngine -> C'est pas une légende... t'as pleins de choses mal faite (boucles infinie dans certains item ...)
Encore ces fameux mythes et légendes sur java et sur minecraft qui ressortent, sérieux passez à autre chose au lieu de balancer à tout va des trucs douteux lus par-ci par-là sans rien y connaitre. :/
Quant au choix C++ ou java, pour de la 2D peu importe, que tu prennes du java avec slick2D, ou C++ avec SFML ou SDL c'est un peu du pareil au même, on s'y retrouve. Du coup autant prendre celui que tu connais le mieux ou celui que tu préfères.
Celeniak : et sur la plupart des bench sérieux, on remarque que Java est aussi rapide que le C et le C++ (voire plus rapide parfois).
Par contre, le C et le C++ sont plus adapté de base pour des jeux, permettant d'être plus près de la machine, un contrôle plus fin de la mémoire, un accès facilité à pas mal de trucs, etc, etc.
Par sérieux, je n'entends pas "en faveur de Java", mais "qui prennent en compte les spécificités du Java, du C et du C++ pour faire des codes comparables et optimisés de la même manière, ainsi que prendre en compte les spécificités de la JVM cible".
" LePigeon
Quand je l'ai dis dans un ancien topic ici même, on m'avait dit le contraire de façon très explicite. Je serais pas dire c'était où, mais on m'avait bien fait comprendre que depuis l'alpha ça avait était corrigé ça
"
Non, minecraft n'affiche pas tout les faces oui mais il affiche toutes les face en contacte avec un bloc transparent (verre, air, etc) donc si t'es a la surface il affiche les faces des blocs dans les grottes par exemple.
Et pour te prouver ça suffit d'utiliser un texture pack ou les blocs sont a moitié transparent ![]()
En C++ t'as la SFML qui est plus adaptée à la POO.
La Java n'est pas un mauvais langage pour faire des jeux en 2D, et même en 3D je pense que jusqu'à un certain point ça reste correct.
Mais si tu es à l'aise en C++, reste en C++, t'emmerdes pas avec ce que tout le monde fait.
Après bon si tu tiens vraiment à employer un moteur déjà fait, que tu ne veux surtout pas développer le tien, et qu'il n'en existe aucun en C++, passe au Java.
Mais ne crois pas que parce que tout le monde emploie Java que c'est mission impossible en C++ ![]()
Et puis le cas Minecraft est particulier en plus
.
Sa lenteur est peut-être en partie due à l'emploi du Java, mais pas que.
Regardez déjà comme est gaulé le jeu : toute la map rendue n'est que cube. Même l'air est considéré par le jeu comme un bloc. Ca en fait, des données, en fonction de la distance de vue.
Genre avec une distance de vue en Far (400 blocs), ça nous fait 400 * 400 * 256 = 40 960 000 blocs en mémoire.
Mais encore de la mémoire on en a, mais dans Minecraft chaque bloc est interactif et doit calculer comment il va se comporter en fonction de son environnement, et ça ça en fait beaucoup des traitements.
Après je ne vois même pas comment le jeu calcule ce qu'il rend à l'écran, ça doit se faire uniquement sur les blocs en contact avec l'air, ou reliés à lui par le biais d'autres blocs transparents (puis détermine ce que le joueur peut en voir).
Alors que dans un jeu en 3D classique, la map est constituée d'un simple relief avec des textures, et des objets pour la plupart "statiques" posés dessus. Puis après y'a le joueur, les ennemis et tout qui eux sont "dynamiques".
VOilà je pense que la lenteur de Minecraft s'explique surtout par le fait que tout est dynamique. Je pense hein. J'ai pas regardé le code du jeu ![]()
Toutouffe
Oui c'est sur
Après, je n'ai vraiment pas envie de crée mon propre moteur pour le moteur
Je préfère quelque truc assez sympa puis voilà, après, dans un futur plus ou moins proche, je compte bien approfondir ![]()
Avec du C et la librairie SDL il y a de quoi s'amuser déjà.
J'ai fais un petit programme en 2D pour un de mes potes.
J'ai mis la photo de sa gueule avec des trucs à éviter et s'il en touche un ça quitte.
Bref j'ai fait ça en 1 jour donc c'est pas énorme mais je pense que tu peux faire pas mal de trucs si t'y passe plus de temps.
LEpigeon-888 Voir le profil de LEpigeon-888
Posté le 25 février 2013 à 00:57:29 Avertir un administrateur
" LePigeon
Quand je l'ai dis dans un ancien topic ici même, on m'avait dit le contraire de façon très explicite. Je serais pas dire c'était où, mais on m'avait bien fait comprendre que depuis l'alpha ça avait était corrigé ça
"
Non, minecraft n'affiche pas tout les faces oui mais il affiche toutes les face en contacte avec un bloc transparent (verre, air, etc) donc si t'es a la surface il affiche les faces des blocs dans les grottes par exemple.
Et pour te prouver ça suffit d'utiliser un texture pack ou les blocs sont a moitié transparent
Merci j'aurais du lire plus haut avant de dire la même chose d'un air docte ![]()