Pour être efficace en développement de jeu, on doit se concentrer sur un aspect à la fois. D’où la naissance de divers moteurs de jeux qui encapsulent plusieurs traitement et laisse le développeur se concentrer uniquement sur la logique du jeu ou sur l’interface graphique.
Les moteurs de jeu les plus connus sont Ogre, Irrlicht, Panda3D, Blender, Cafu engine, LWJGL, JMonkeyEngine, Crystal Space. Mais la plupart ne sont que des moteurs graphiques.
Description d'un moteur de jeu
Un moteur de jeu est un ensemble de composants logiciels qui effectuent des calculs de géométrie et de physique utilisés dans les jeux vidéo. L'ensemble forme un simulateur en temps réel souple qui reproduit les caractéristiques des mondes imaginaires dans lesquels se déroulent les jeux. Le but visé par un moteur de jeu est de permettre à une équipe de développement de se concentrer sur le contenu et le déroulement du jeu plutôt que la résolution de problèmes informatiques.
Le moteur de jeu produit donc les technologies bas niveau pour
- L’interface graphique
- Le moteur physique
- L’audio
- Le Scripting
- Les animations
- L’intelligence artificielle
- Le réseau
Le moteur de jeu simplifie la procédure de développement et doit être adapté à plusieurs plateformes.
Pourquoi utiliser un moteur de jeu ?
L'utilisation d'un moteur peut être particulièrement utile si par exemple vous désirez développer vous-même certains aspects de votre jeu, mais ne souhaitez pas galérer dans les domaines que vous ne maîtrisez pas.
- Moins de temps de développement
- Moins de test de débogage
- Plusieurs fonctionnalités directement disponibles
- Concentration sur le design du jeu
Pourquoi ne pas utiliser un moteur de jeu ?
- Aucun contrôle de l’implémentation des fonctionnalités
- Addition difficile de fonctionnalités qui ne sont pas personnalisables
- Dépendance d’autres librairies
L'architecture
Finalement l’architecture d’un jeu contiendra de plusieurs modules plus ou moins indépendants. L’objectif étant de rendre possibles l’exécution des différents modules en parallèle sans que cela n’entraine des effets de bords dans les autres modules.