Quelles sont les bonnes ressources sur la conception de moteurs de jeux 2D?
Je suis de déconner avec le développement de jeux 2D en C++ et DirectX dans mon temps libre. Je trouve que le enterprisey problème de domaine de l'approche de modélisation n'aide pas autant que je le souhaiterais 😉
Je suis plus ou moins à la recherche de "bonnes pratiques" est équivalent à jeu de base de la conception des moteurs. Comment les entités doivent interagir les uns avec les autres, comment les animations et les sons doivent être représentées dans un monde idéal, et ainsi de suite.
Quelqu'un a de bonnes ressources qu'ils peuvent recommander?
source d'informationauteur Gabriel Isenberg
Vous devez vous connecter pour publier un commentaire.
Gamedev.net est généralement de là que je tourne pour se faire une idée de ce que d'autres personnes dans le jeu de la communauté de développement sont en train de faire.
Cela dit, je crains que vous trouverez que l'idée de "meilleures pratiques" dans le développement de jeux est plus volatile que la plupart. Les jeux ont tendance à être de ces applications spécialisées que c'est quasi impossible de donner des "one size fits all" réponses. Ce qui fonctionne très bien pour Tetris va être inutile avec des Astéroïdes, et un modèle qui fonctionne parfaitement pour Halo est susceptible d'échouer lamentablement pour Mario.
Vous trouverez aussi rapidement qu'il n'y a pas une telle chose comme un "standard de l'industrie" pour la texture, de la maille, du niveau, du son, ou des formats d'animation. Tout le monde roule leur propre ou utilise tout ce qui est pratique pour la plate-forme. Vous arrive de voir des choses comme COLLADAce qui est agréable, mais il est encore juste un format intermédiaire conçu pour rendre l'écriture exportateurs plus facile.
Si vous êtes nouveau dans le développement de jeux, mon conseil serait celui-ci: Ne tuez pas vous-même sur votre structure de code sur votre premier aller. Essayez un jeu simple, comme les astéroïdes, et juste bidouiller jusqu'à ce qu'il fonctionne, n'importe comment "laid" le code est. Utiliser les formats simples que vous êtes familier avec, sans se soucier de comment ils vont tenir jusqu'à des projets d'envergure. Ne vous inquiétez pas à propos de plugins, skins, des éditeurs, ou toutes autres peluches. Juste le faire fonctionner! Ensuite, lorsque vous avez terminé avec la première, tous les match important, en prendre une autre, et cette fois autour de nettoyer un ou deux aspects de votre code (mais il ne faut pas exagérer!) À partir de là, itérer!
Je vous promets que cela vous obtiendrez plus loin plus rapidement que n'importe quelle quantité de fouiller en ligne pour le "droit chemin" pourrait jamais (venant de quelqu'un qui a fait BEAUCOUP de piquer).
Et une dernière pensée pour vous: Si vous vous sentez plus à l'aise de travailler dans un espace défini, jetez un oeil à XNA ou une bibliothèque semblable. Ils pré-définir les "meilleures" formats à utiliser et vous donner des outils pour travailler avec eux, ce qui prend un certain initiale de la conjecture hors.
Bonne chance et surtout n'oubliez pas: les Jeux (et de leur développement) sont censés être AMUSANT! Ne soyez pas trop pris place sur les petites choses!
Faire un jeu. Après vous avez terminé, faire un autre. Regardez ce que vous avez aimé et ce que vous n'aimez pas et puis faire un autre.
Sérieusement, vous pouvez lire tous les "meilleures pratiques" des guides pour la conception de jeu vous le souhaitez, mais en fin de compte, il revient à l'expérience. La seule façon d'obtenir de l'expérience est de s'asseoir et d'écrire un jeu. Après avoir fait cela quelques fois, vous aurez un beaucoup meilleure idée de comment écrire un jeu.
Assez nettement n'importe quel livre qui a André Lamothe comme l'un des contributeurs.
GameDev a des tonnes d'articles aussi bien.
Je ne peux pas d'accord avec vous: les applications d'entreprise de ne pas vous préparer pour les jeux de programmation.
J'ai créé quelques petits jeux en python, java, html/php et perl. La structure de base d'un jeu, comme vous le savez sans doute, est:
Boucle Principale : Le
handleInput()
updateGameLogic()
renderImages()
Maintenant, c'est bien beau tout ça pour un seul écran, mono-thread des jeux, comme quoi que ce soit à partir des années 70 ou des années 80. Mais je ne trouve pas cette structure particulièrement adaptée pour le multi-écran des jeux (comme les Rpg) ou quelque chose de plus exotique. Il n'est pas thread très bien. Le code est assez funky que vous devez gérer une variété d'entrées. Il n'est pas à l'échelle.
Cependant, avant que je bash cette métaphore trop, veuillez noter que c'est un EXCELLENT endroit pour commencer. J'irais même jusqu'à recommander l'apprentissage de Python/Pygame et de commencer à construire des jeux avec cet outil plutôt qu'en C++, ce qui complique la conception et la mise en œuvre du processus. Lorsque vous prototype en python, vous verrez le jeu à prendre forme beaucoup plus rapidement et d'exécuter dans un langage indépendant de questions.
Pour moi, le plus dur, la plupart de temps les aspects de la programmation de jeu sont les graphiques et sonores et des actifs. Alors que je suis un peu d'un audio nerd et musicien amateur, la création de crédible et de la musique et SFX est un projet à lui tout seul. Je n'ai pas de graphistes de talent, je dois donc compter sur la modification existant images ou d'utiliser librement disponibles. Heureusement, il y a largement disponible polices libres qui peuvent être utilisés pour les jeux (et rien d'autre, car ils sont presque universellement mauvais).
Enfin, il n'y a rien comme l'open source pour voir comment d'autres projets gérer cela. Bataille de Westnoth est de la maturité, de taille moyenne, jeu. Vous pourriez vouloir voir ce qui s y passe. De nouveau, des jeux en python font souvent leur code source disponible, de sorte que vous pouvez regarder à travers des centaines de projets. Vous pouvez également décompiler atari 2600 Rom, mais qui ne sera pas vous en dire beaucoup sur la programmation d'aujourd'hui. L'ancien VCS est un dispositif dédié qui s'occupait de ses applications dans un très dépendant du système. 😀
Enfin, j'aime aussi André LaMothe. J'ai son olde 1993 livre qui est à un million de pages d'épaisseur. Même si c'est encore une belle référence sur certains génériques des idées de jeux, beaucoup d'elle est suspendue par la disponibilité de la libre disposition des bibliothèques et des structures qui n'existait pas encore.
Bonne chance avec votre projet.
Car il n'a pas encore été mentionnés, pourquoi ne pas commencer par regarder un moteur existant qui a été publié pour la communauté? Puisque vous parlez de la 2D, je voudrais aller chemin du retour et de recommander quelque chose comme de l'Abus. Oui, c'est l'ancienne et la plus intéressante: les bits sont en Lisp, mais le jeu est devenu très populaire pour un certain temps ce qui signifie qu'ils faisaient quelque chose de bien.
Comme il arrive, je pense que le fait que beaucoup de le jeu original était en Lisp est un très utile leçon. Choisissez le plus solide de la langue ou de l'outil et ne vous inquiétez pas à propos de la performance. Vous pouvez toujours optimiser les parties lentes en C plus tard.