Quelles sont les bonnes ressources sur la conception de moteurs de jeux 2D?

StackOverflow https://stackoverflow.com/questions/179735

  •  05-07-2019
  •  | 
  •  

Question

Pendant mon temps libre, je bricole avec le développement de jeux 2D utilisant C ++ et DirectX. Je trouve que l’approche de modélisation par problèmes d’entreprise n’aide pas autant que je le voudrais;)

Je suis plus ou moins à la recherche de "meilleures pratiques". équivalent à la conception de base du moteur de jeu. Comment les entités devraient interagir les unes avec les autres, comment les animations et les sons devraient être représentés dans un monde idéal, etc.

Quelqu'un at-il de bonnes ressources à recommander?

Était-ce utile?

La solution

Gamedev.net est généralement l'endroit où je me tourne pour avoir une idée de ce que sont les autres membres de la communauté du développement de jeux. faire.

Cela dit, je crains fort que vous ne trouviez l'idée de "meilleures pratiques". dans le développement de jeux est plus volatile que la plupart. Les jeux ont tendance à être des applications tellement spécialisées qu'il est presque impossible de proposer une solution universelle pour tous. réponses. Ce qui fonctionne bien pour Tetris sera inutile avec les astéroïdes et un modèle qui fonctionne parfaitement pour Halo risque d’échouer lamentablement pour Mario.

Vous constaterez également rapidement qu’il n’existe pas de "norme industrielle". pour les formats de texture, de maillage, de niveau, de son ou d'animation. Tout le monde roule ou utilise ce qui convient à la plate-forme. Vous voyez parfois des choses comme COLLADA , ce qui est bien, mais ce n'est qu'un format intermédiaire conçu pour faciliter la rédaction aux exportateurs. .

Si vous débutez dans le développement de jeux, mon conseil est le suivant: ne vous tuez pas au-dessus de la structure de votre code lors de votre première utilisation. Essayez un jeu simple, comme des astéroïdes, et détournez-le jusqu'à ce que tout fonctionne, peu importe la façon dont vous êtes "moche". le code est. Utilisez des formats simples que vous connaissez bien sans vous soucier de leur capacité à tenir dans de grands projets. Ne vous inquiétez pas des plugins, des skins, des éditeurs ou de tout autre de ces fluff. Il suffit de le faire fonctionner! Ensuite, lorsque vous avez terminé avec ce premier jeu important, choisissez-en un autre et nettoyez un ou deux aspects de votre code (mais n'allez pas trop loin!) À partir de là, parcourez-le!

Je vous promets que cela vous permettra d'aller plus vite que n'importe quelle quantité de fouilles en ligne pour la "bonne manière". jamais pu (cela vient de quelqu'un qui a fait beaucoup de farces).

Et une dernière pensée pour vous: si vous vous sentez plus à l'aise dans un espace mieux défini, consultez XNA. ou une bibliothèque similaire. Ils vont prédéfinir certains des "meilleurs" formats à utiliser et vous donner des outils pour les utiliser, ce qui élimine une partie du travail de spéculation initial.

Bonne chance et surtout souvenez-vous: les jeux (et leur développement) sont supposés être FUN! Ne vous laissez pas prendre au dépourvu!

Autres conseils

Faites une partie. Une fois que vous avez terminé, faites-en un autre. Regardez ce que vous avez aimé et ce que vous n’avez pas aimé, puis créez-en un autre.

Sérieusement, vous pouvez lire toutes les "meilleures pratiques". guides de conception de jeu que vous souhaitez, mais finalement, il s'agit d'expérimenter. La seule façon d'acquérir de l'expérience est de s'asseoir et d'écrire un jeu. Après cela, vous obtiendrez beaucoup de meilleures idées pour écrire un jeu.

Pratiquement tous les livres Andre Lamothe parmi les contributeurs.

GameDev contient également des tonnes d'articles.

Je suis tout à fait d'accord avec vous: les applications d'entreprise ne vous préparent pas à la programmation de jeux.

J'ai créé quelques jeux à petite échelle en python, java, html / php et perl. Comme vous le savez probablement, la structure de base d’un jeu est la suivante:

Boucle principale:
& nbsp; & nbsp; handleInput ()
& nbsp; & nbsp; updateGameLogic ()
& nbsp; & nbsp; renderImages ()

Maintenant, tout va bien pour les jeux à un seul écran, à un seul fil, comme dans les années 70 ou 80. Mais je ne trouve pas cette structure particulièrement adaptée aux jeux multi-écrans (comme les jeux de rôle) ou à tout ce qui est plus exotique. Ça ne passe pas très bien. Le code devient assez funky car vous devez gérer une variété d'entrées. Cela ne va pas bien.

Cependant, avant de critiquer trop cette métaphore, veuillez noter qu’il s’agit d’un EXCELLENT endroit pour commencer. J'irais jusqu'à recommander l'apprentissage de Python / Pygame et commencer à construire des jeux avec cet outil plutôt que le C ++, ce qui complique le processus de conception et de mise en œuvre. Lorsque vous réalisez un prototype en python, le jeu se dessine beaucoup plus rapidement et se heurte à des problèmes indépendants de la langue.

Pour moi, les aspects les plus difficiles et les plus fastidieux de la programmation de jeux sont les atouts graphiques et sonores. Bien que je sois un peu audace et musicien amateur, créer de la musique crédible et appropriée et SFX est un projet à part entière. Je n’ai aucun talent graphique, je dois donc modifier des images existantes ou en utiliser d’autres disponibles gratuitement. Heureusement, il existe des polices gratuites largement disponibles que vous pouvez utiliser pour les jeux (et peu d'autres, car elles sont presque universellement mauvaises).

Enfin, rien ne vaut Open Source pour voir comment d’autres projets gèrent cela. Battle of Westnoth est un jeu mature de taille moyenne. Vous voudrez peut-être voir ce qui se passe là-bas. Encore une fois, les jeux en python rendent souvent leur code source disponible, vous pouvez donc y parcourir des centaines de projets. Vous pouvez également décompiler des ROMs Atari 2600, mais cela ne vous en dit pas beaucoup sur la programmation aujourd'hui. L'ancien VCS était un appareil dédié qui gérait ses applications de manière très dépendante du système. :-D

Enfin, j'aime aussi André LaMothe. J'ai son vieux livre de 1993 qui fait un million de pages. Bien que ce soit toujours une bonne référence sur certaines idées de jeux génériques, il est en grande partie évité par la disponibilité de bibliothèques gratuites et de frameworks qui n'existaient pas à l'époque.

Bonne chance dans votre projet.

Comme cela n’a pas encore été mentionné, pourquoi ne pas commencer par examiner un moteur existant qui a été distribué à la communauté? Puisque vous parlez en 2D, je recommanderais une solution du type Abus . Oui, c'est ancien et la plupart des éléments intéressants sont en Lisp - mais le jeu est devenu très populaire pendant un certain temps, ce qui signifie qu'ils faisaient quelque chose de bien.

En l'occurrence, je pense que le fait que le jeu original soit en grande partie basé sur Lisp est une leçon très utile. Choisissez le langage / outil le plus robuste et ne vous inquiétez pas pour la performance. Vous pouvez toujours optimiser les parties lentes de C plus tard.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top