Aller à la page... |
[Moteur de jeu] Comment ca marche ?
Suivre Répondre |
|
Partager | Rechercher |
|
Tentes Unity moi je te dirais.
|
![]() |
|
Meyleen Neoryl |
Voir le profil public |
Trouver plus de messages par Meyleen Neoryl |
|
Bah déjà, 2D ou 3D ?
![]() http://fr.wikipedia.org/wiki/Moteur_de_jeu Je m'y connais pas vraiment, mon moteur graphique permet juste d'afficher des images sur différentes couches et de charger les images de mon jeu en mémoire. Un vrai moteur de jeu n'est pas nécessaire pour programmer un jeu vidéo. Un moteur va gérer tout les jeux de façon générique et utiliser des scripts afin de gérer les comportements. Dans l'idéal, tu ne touches plus à ton moteur une fois celui ci fais même en changeant de jeu. Si tu débutes tu ne va pas créer ton moteur de jeu, tu va programmer ton jeu. Dernière modification par Xotraz ; 28/07/2014 à 02h59. |
![]() |
|
Héros / Héroïne
|
Tu as quasiment tout ce qu'il te faut dans le poste de Xotraz
J'ajouterai juste à "Si tu débutes tu ne va pas créer ton moteur de jeu, tu va programmer ton jeu" : et si tu es un bon programmeur, tu auras déjà quasiment ton moteur de jeu. Si tu appliques les patterns GRASP ( http://en.wikipedia.org/wiki/GRASP_%...nted_design%29 ), tu te retrouveras tout naturellement avec un moteur une fois ton jeu terminé. Tu as d'autres patterns utiles, mais rien qu'en utilisant bien ceux ci tu seras bien meilleur que beaucoup de programmeurs professionnels et tu seras capable de créer un moteur qui tient la route. Petite astuce pour ton projet. Crée deux dossiers gameplay et GameEngine. Quand tu crées une classe, demande toi : - Si elle semble être en bonne adéquation avec les patterns grasp ( en particulier faible couplage et forte cohésion ). - Si elle répond à une logique de gameplay ou si c'est une base pour tout jeu ( réponse 1 direction gameplay, réponse 2 direction gameengine, tout simplement ![]() Ensuite assure toi qu'aucune classe se trouvant dans ton dossier gameEngine ne dépende d'une classe se trouvant dans gameplay. Tu peux même ajouter une troisième granularité en fonction de ton type de jeu. Par exemple, si tu fais un mario, tu peux créer un dossier plateformer dans lequel tu mettras les classes communes entre tous les plateformers. tu dois donc avoir une hiérarchie: gameEngine <= GameType <= game ou <= est une frontière à sens unique, c'est à dire qu'un membre se trouvant à gauche ne peut pas accéder à un membre se trouvant à droite, par contre l'inverse est possible. Et pour ta question, non, le moteur graphique n'est pas un moteur de jeu, mais en est une partie. Un peu comme un écran n'est pas une télévision, mais une partie d'une télévision. |
![]() |
|
|
[...] Dernière modification par Uther ; 28/07/2014 à 22h10. |
![]() |
|
MonsieurChance |
Voir le profil public |
Trouver plus de messages par MonsieurChance |
|
La pertinence y est forcement vu que l'OP pose des questions sur un sujet qu'il ne maîtrise pas... Ou a t on déjà vu quelqu'un poser les bonnes questions et dans les bons termes quand t il ne maîtrise rien du thème ?
J'attendais l'intervention de Neirdan, j'avais pas envisagé ça... Ca se plaint et ca bash non stop quand un mec vient qu'avec des idées et qu'il veut refaire le monde, lui expliquant dans des termes associable qu'il doit d'abords commencer par les bases. Et visiblement ça bash aussi quand quelqu'un pose de simples questions pour un projet tout à fait modeste et sans prétention afin de commencer par (roulement de tambours) : "les bases". Neirdan a prouvé par ses interventions qu'il maîtrise le sujet, qu'il s'y connait etc.. Mais au final le personnage a l'air tellement abject que je peux qu'approuver Keeth, il est pas indispensable quelque soit son savoir. Perso j'y connais pas plus que toi, tout ce que je peux faire c'est te fournir quelques liens que j'ai pu trouvé à une époque concernant la prog de jeu. http://jeux.developpez.com/tutoriels/jeux-video/ http://jeux.developpez.com/tutoriels/ Après je suis du même avis que les autres pour un jeu 2D première main ça serait bien de s'appuyer sur un framework existant pour en comprendre le fonctionnement et la logique, en tout cas c'est comme ça que je ferai. |
![]() |
|
Alpha & Oméga
|
Je savoure ma "mort aux rats", vois-tu.
Le mec n'a pas les bases, il n'a même pas le vocabulaire, il voit une nébuleuse sur laquelle il colle le mot "moteur". De plus, un moteur "graphique" ca n'est pas que de la 2D ou de la 3D, y'a aussi le texte. Tu peux faire un très bon jeu avec uniquement du texte. Ensuite, sur le fait de coder un moteur de jeu vidéo, c'est de la connerie lorsque tu débutes parce que avec le temps ton ancien code devient obsolète. C'est l'une des erreurs typiques que font beaucoup d'indés, qui a déjà été soulignée par des indés connus (entre autres, le mec de world of goo en parle dans une interview si je me souviens bien). Ca ne sert à rien de commencer par faire un moteur de jeu, il faut commencer par faire un prototype où l'on intègre le minimum possible afin de tester le concept "fun" du jeu (cette règle ne vaut pas sur les gros projets, of course). https://www.youtube.com/watch?v=ISutk1mauPM http://www.gamesbrief.com/2013/08/co...die-developer/ http://scientificninja.com/blog/write-games-not-engines Lol le tuto développez, c'est laid, pour plein de raisons que je ne vais pas développer. Sinon, durant mes vacances, j'ai joué à Pong avec les manettes originales au musée des sciences de Londres, c'est une expérience. Dernière modification par Neirdan ; 28/07/2014 à 22h42. |
![]() |
|
MonsieurChance |
Voir le profil public |
Trouver plus de messages par MonsieurChance |
Alpha & Oméga
|
Dernière modification par Gectou4 ; 29/07/2014 à 09h43. |
![]() |
|
Héros / Héroïne
|
Mais tout dépend de ce que recherche la personne. Apprendre à faire un jeu et apprendre à programmer un jeu sont deux choses différentes ! Si le but est d'apprendre à faire un gameplay fun, je suis d'accord avec toi et Neirdan, il faut en faire le max possible, et pas grave si le code est pourri. Si le but est d'apprendre à bien programmer, commencer par un moteur basique n'est pas compliqué et ça peut même être gratifiant. Sinon je ne pensais pas forcément plan = moteur, mais j'avoue ne pas avoir très bien expliqué et mon analogie ne s'adaptait pas trop bien à ma pensée. Pour moi, faire le plan, dans le cas de l'op, c'est déjà réfléchir à la cohérence de ses classes. Se demander si le calcul de la position d'un objet doit être effectué par ce même objet ou par une classe spécialisée par exemple. Ce n'est pas obligatoire pour faire des petits jeux, mais ça l'est si on veut être un bon programmeur. J'ai l'impression que pour toi, faire un moteur de jeu, c'est immédiatement recréer l'unreal engine. Pour moi un moteur, c'est juste avoir une abstraction du code commun à tout jeu. Si il n'a qu'un moteur de sprite et un système de gestion des inputs, il aura déjà un moteur de jeu, certes très incomplet. Faire juste ça, ça ne prend pas beaucoup de temps ( 2 semaines à tout casser pour un débutant ) et il peut le compléter au fur et à mesure qu'il progresse et fait de nouveaux projets. Il peut commencer par faire un tetris dans lequel les blocs tomberont case par case. Il n'aura besoin dans son moteur de jeu que des deux features précitées. Tu avoueras que c'est pas la mort à faire non plus ! Ensuite il peut se dire que son tetris serait plus sympa avec un déplacement plus smooth, dans ce cas il pourra ajouter un moteur physique basique à son moteur. Ensuite il pourra ajouter du son. Maintenant qu'il a tout ca, il peut faire un petit shoot em up en ajoutant des collisions sphere/sphere, puis affiner avec des collisions aabb/aabb, puis ajouter une réaction à la collision ... Ce ne sont a chaque fois que des features pas bien compliquées, facilement faisables de manière modulaire et réutilisables dans d'autres jeux. Ca ne me semble pas insurmontable, même pour un débutant, mais je me trompe peut être. Encore une fois, si son but est de réfléchir à du gameplay, ce que je viens de dire n'a pas un énorme intérêt et il vaudra mieux utiliser des petits moteurs existants qui sont parfaits pour le prototypage. Si il veut apprendre à bien programmer, essayer de faire un moteur de jeu n'est pas une mauvaise idée. |
![]() |
|
MonsieurChance |
Voir le profil public |
Trouver plus de messages par MonsieurChance |
#171333 |
Héros / Héroïne
|
D'ou l’intérêt de faire un code modulaire et donc d'avoir les bases d'un moteur. Si on se plante dans la méthode de calcul du déplacement ou des collisions ou etc ... On a juste à réécrire cette partie du code sans avoir à se retapper nos classes enemiOrc, enemElf, Joueur, fleche, bouleDeFeu ... Qu'on a jamais pensé à abstraire en juste quelques classes plus généralistes puisqu'on s'est dit à la base qu'on pouvait coder à l'arrache. Je pense qu'on a à la fois tous les deux torts et raison. Cela dépend du profil de la personne. Pour ma part, lorsque j'ai affiché mon premier triangle à l'écran, j'étais tout fou. J'adore réfléchir à comment faire le meilleur code possible. Je trouve ça gratifiant, et je côtoie pas mal de personnes qui pensent comme moi. D'autres qui me disent que je suis fou... Évidement qu'un débutant se trompera. J'ai jamais dit qu'il devait tout faire parfaitement du premier coup. Cependant je pense que si on ne se pose pas ce genre de questions dés le début, on risque par se dégoutter. Programmer un pong "à l'arrache", puis un tetris à "l'arrache", c'est facile et à la portée de quasiment n'importe qui. Le problème c'est qu'en faisant les choses à l'arrache, on risque d'en prendre l'habitude et de se lancer sur un gros projet en utilisant la même méthode. Et pourquoi pas puisqu'elle a déjà fait ses preuves. Le problème c'est qu'en procédant ainsi on risque de se lancer sur son gros projet et de se rendre compte au bout d'un an que dés qu'on change un comportement, tout le reste du jeu explose. Et pour le coup, perdre un an de travail, c'est à mon avis extrêmement décourageant. Je ne dis pas qu'il doit immédiatement penser lorsqu'il fera son premier moteur à particule à faire gaffe à l'alignement des données ou que dans ses premiers pools d'objets, il doit faire gaffe à la cache. On s'en fout de ca. Par contre je pense que faire immédiatement attention à la taille de ses classes, à leur cohérence ne peut être qu'une bonne idée et que si on le fait bien, il n'y a même pas à se prendre la tête, un moteur de jeu va émerger tout seul. Pas le meilleur du monde, je l'admet sans problème, mais est ce important ? Et pour ce qui est du fait de ne pas utiliser ce genre d'outils en solo ou en petites équipes. Pour avoir toujours été dans de petites équipes ( seul ou jusqu'à 4 ), j'ai toujours eu à ma disposition un moteur, soit maison soit acheté ( sauf quand je faisais du portage ). Par contre je ne connais pas le monde indie et je veux bien croire que ce ne soit pas la norme pour vous. |
![]() |
|
Suivre Répondre |
Fil d'ariane
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|