J'aimerais améliorer mes compétences / essayer quelque chose de nouveau et je voudrais commencer avec la 3D. J'ai lu Commencer la programmation en 3D avec C ++ mais j'ai une question sur les moteurs:
- Que doit faire le moteur? Je sais que c'est une couche d'abstraction au-dessus de l'API 3D (c'est-à-dire OpenGL ou DirectX) mais que doit-elle faire exactement?
software-engineering
Maciej Piechotka
la source
la source
Réponses:
Vous avez raison de dire qu'un moteur de jeu s'éloigne des API graphiques de bas niveau, mais un moteur de jeu à part entière en fait beaucoup plus.
Les moteurs de jeux sont destinés à faciliter tout ce qui concerne le développement de jeux. Ils ont chacun leurs propres caractéristiques uniques, mais ils fournissent généralement des couches d'abstraction faciles pour les graphiques, l'audio, l'entrée, la gestion des scènes, la détection des collisions, les mathématiques et les utilitaires généraux utiles. Certains fournissent des wrappers et des plugins pour les API de physique et certains ont même une prise en charge de l'IA (principalement limitée aux FSM, au pathfinding et - la tendance actuelle - aux arbres de comportement). Beaucoup d'entre eux prennent en charge et sont fiers de la fonctionnalité multiplateforme.
Le but d'un moteur de jeu est de faciliter la création d'un jeu par l'utilisateur, sans avoir à gérer les petits désagréments liés à la création d'un jeu à partir de zéro ou à installer tout un tas de bibliothèques et à écrire vos propres wrappers pour les adapter à votre Jeu.
Il existe de nombreux moteurs, mais méfiez-vous de la différence entre un moteur graphique et un moteur de jeux (par exemple, Unity serait un moteur de jeux, tandis que Ogre serait un moteur graphique).
J'ai deux livres sur le sujet, mais ils donnent un bon aperçu du sujet:
Architecture du moteur de jeu 3D par David H Eberly
Codage du jeu terminé par Mike McShaffry
Ils ne sont pas trop détaillés car vous auriez besoin de plusieurs livres sur chaque composant pour obtenir les connaissances nécessaires pour créer un moteur de jeu professionnel complet, mais ils expliquent très bien les concepts, je pense.
Si vous commencez à développer des jeux, ne faites pas de moteur. Je vous renvoie à la page suivante: http://geometrian.com/programming/tutorials/write-games-not-engines/
Les moteurs sont une chose difficile à réaliser. Si vous écrivez un tas de jeux, vous constaterez que vous avez beaucoup de code réutilisable après un certain temps que vous pouvez utiliser pour créer votre propre moteur personnel pour vous aider. Et avoir beaucoup de jeux (complets) à votre actif est beaucoup plus impressionnant qu'un seul moteur.
J'espère que cela pourra aider.
Rayon
la source
Ajout à la réponse de Ray: les moteurs (jeu, graphiques, audio, etc ...) permettent non seulement d'interagir plus facilement avec les API sous-jacentes, mais implémentent des fonctionnalités spécifiques au jeu, ex: modèle d'ombrage, son 3D.
Spécifiquement pour les moteurs de jeu: ils gèrent les objets de jeu, les ressources (mémoire, threads, tous les autres moteurs) et la communication inter-modules. Ils donnent au jeu la structure, l'évolutivité et la flexibilité, ce qui est essentiel pour tout projet non trivial.
la source
J'ai écrit un tutoriel détaillé sur ce qu'est un moteur de jeu - en particulier dans le contexte des plateformes iPhone et Android. J'ai inclus des descriptions détaillées avec des exemples des différentes parties d'un moteur de jeu: UI, Graphics, Sound, Physics, Particle effects. Le tutoriel est disponible ici: Qu'est-ce qu'un moteur de jeu? . J'espère que c'est utile.
la source
Chaque moteur de jeu a une idée légèrement différente de ce qu'un moteur de jeu devrait faire.
Mais comme il y a déjà trop de moteurs de jeu, je vous recommande vraiment de faire un JEU et non un MOTEUR.
la source