Programmation Orientée Jeux

Moteur de jeu - Intro

Qu'est ce qu'un Jeu ?

Un jeu est un programme, avec des fonctionnalités plus spécifiques. C'est aussi une définition qui peut être abstraite, mais c'est avant tout une source de divertissement pour l'utilisateur (en principe), mais pas pour l'ordinateur... En effet, pour fonctionner correctement, le programme doit faire appel à beaucoup d'éléments qui composent un ordinateur. Pour n'en citer que quelques-uns: clavier, souris, écran, audio, carte graphique...

Diagramme : autour d'un jeu

Notre jeu va donc communiquer avec tous ces périphériques et composants, et ce en permanence. Pour des raisons pratiques, il est préférable d'externaliser toutes les fonctions qui travaillerons en bas-niveau (proches des périphériques).
En d'autres termes on parlera de moteur (fonctions essentielles pour le fonctionnement du jeu). A partir de ce point, nous avons deux entités, à savoir le Moteur, et le Jeu qui utilisera le moteur. Il est évident que plus le Moteur est performant, plus les Jeux qui l'utilisent auront des chances de l'être aussi.


Qu'est ce qu'un moteur de jeu ?

Un Moteur de jeu est un ensemble de fonctions, permettant le développement d'un jeu, avec accès à des fonctions haut-niveau directement (de la sorte, on masque toutes les opérations bas-niveau). De plus, il doit fournir une base, sur laquelle le programme est capable de tourner de manière autonome, jusqu'à ce que son arrêt soit requis. On parlera alors de squelette, qui sera complété par tout jeu utilisant le moteur.

Le Moteur de jeu doit permettre de faire abstraction de toutes les contraintes liées à l'environnement, et ainsi faciliter le développement de jeux par la suite. En résumé, l'utilisateur du moteur doit se contenter de fonctions simples (chargements, rendus, mises à jours...). Cependant, plus le Moteur de jeu rend l'accès haut-niveau, moins l'utilisateur a de contrôle dessus (à moins de modifier directement le moteur).

Attention à ne pas confondre Moteur (2D, 3D, physique, réseau...) et Moteur de jeu.
Un Moteur, de manière générale, se contente d'offrir un lot de fonctionnalité spécifique à son domaine. Par exemple, un Moteur physique se contentera de gérer exclusivement la physique (pouvant être rataché à de la 2D ou de la 3D), tandis qu'un Moteur 2D permettra de manipuler aisément des images.

La différence avec un Moteur de jeu, c'est qu'en plus d'intégrer une API (gestion des images, lecture audio...), on propose une base pour développer un jeu. Entre autre, on rajoute une couche plus haut niveau encore, permettant de s'affranchir de choses répétitives (quelque soit le jeu). On peut penser par exemple à la boucle de rafraichissement, qui gère le nombre d'images par seconde, ou encore la gestion de l'extrapolation (pour compenser le retard ou l'avance). Ces fonctionnalités peuvent être poussées encore plus loin; tout dépend de ce que l'on veut affranchir à l'utilisateur du moteur.

En utilisant ce qui a été décrit précédemment, l'utilisateur dépend alors du Moteur de jeu qu'il utilise. L'avantage est ce que cela accélère le développement, mais l'abus d'abstraction peut nuire aux idées personnelles (ce qui différentie un jeu d'un autre). L'idéal étant de trouver un bon compromis entre contrôle et simplicité.

Diagramme : Moteur

Exemple de ce que peut contenir un moteur de jeu:

Après avoir vu une brève description, nous allons entrer dans les détails, en regardant chaque partie de ce que peut être un moteur.


Lire la suite: Moteur de jeu - Le Coeur

Programmation Orientée Jeux ©2010-2014
Byron 3D Games Studio