|
|
Fondamentalement, la programmation d'un jeu vidéo se réduit à répéter à intervalle de temps régulier les actions suivantes :
Les phénomènes non directement contrôlés par l'utilisateur sont multiples et varient beaucoup en fonction du jeu. Il peut s'agir de gérer l'intelligence artificielle des agents non contrôlés par l'utilisateur, gérer les collisions entre agents et la physique (pour les jeux les qui utilise un modèle physique réaliste).
Ces deux premières parties font partie du game play (c'est-à-dire, des règles d'interaction) d'un jeu qui est normalement décidé par un game designer et implémenté par le programmeur.
La création de l’image et son affichage devient de plus en plus complexe à mesure que le niveau graphique des jeux s'éléve. Autrefois presque exclusivement en deux dimensions, les environnements de jeu sont dorénavant en grande majorité en 3 dimensions. Dans tous les cas, l'image est construite petit a petit dans un espace mémoire (le frame buffer) et n'est envoyé à l'écran qu'une fois le dessin fini dans son ensemble.
La création d'une image en 2D, commence généralement par l'affichage des dessins les plus éloignés, puis des autres dessins se superposent successivement. Par exemple :
La création d'une image en 3D est bien plus complexe. Contrairement au autre domaine de l'imagerie de synthèse, les jeux vidéo se doivent généralement de créer chaque image en temps réel tout en conservant un taux de rafraîchissement de l'écran convenable. La difficulté est donc de pourvoir créer une image de bonne qualité dans un laps de temps très court (souvent 60 fois par seconde). C'est dans cette optique qu'aujourd'hui la programmation de jeux 3D est de plus en plus liée au matériel informatique qui a pour but d'accélérer un maximum le traitement des objets 3D.
La fréquence de répétition de ces opérations varie fortement en fonction de la plateforme (ordinateur, console, téléphone portable, etc.). Souvent entre 50 et 100 Hz, c'est-à-dire que 50 à 100 images sont créées chaque seconde. Toutes les parties d'un programme n'ont pas forcément besoin d'être traitées à chaque image (sauf bien entendu la création et l'affichage de cette image).