Que doit faire un moteur de jeu? [fermé]

20

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?
Maciej Piechotka
la source
Pour les recommandations du livre, cette question devrait vous aider: gamedev.stackexchange.com/questions/455/…
Tetrad

Réponses:

27

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

Ray Dey
la source
1
+1 pour l'article de blog. Il dit exactement ce que je dirais à ce sujet.
Tetrad
5
Oui, personne ne devrait créer un moteur de jeu avant d'avoir créé un jeu. Comment savoir que votre code est réutilisable si vous ne savez pas encore qu'il est utilisable?
Kylotan
@Kylotan Je me rends compte que c'est très tard, mais je voudrais juste vous remercier pour ce commentaire car je l'ai constamment cité à d'autres :)
Ray Dey
@RayDey le lien "écrire des jeux pas des moteurs" est mort, pour info. J'avais hâte de le lire :(
DrewJordan
5

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.

Ramon Zarazua B.
la source
+1 pour la structure, l'évolutivité et le point de flexibilité et j'ai oublié d'ajouter la gestion de la mémoire
Ray Dey
1

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.

Ben Smiley
la source
0

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.

MarkR
la source