Saisir un mot clé:
 
 

moteur_de_jeu

Ce site est un miroir du site http://fr.wikipedia.org/wiki/Accueil
ok

google_ad_height = 15; google_ad_format = "728x15_0ads_al"; google_ad_channel =""; google_color_border = "f9f9f9"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //-->

Un article de Wikipedia.y-project.com.

Image:Joysticksmall.png Cet article est une ébauche à compléter concernant le jeu vidéo, vous pouvez partager vos connaissances en le modifiant.

Un moteur de jeu est une application informatique (dite de type middleware) apportant les fonctionnalités nécessaires à la création d'un jeu.

Sommaire

[] Vue générale

Dans les jeux vidéo moderne, il existe cinq ensembles principaux géré par des moteurs distinct, chacune concernant une fonction spécifique du développement : le graphisme, le son, le réseau (pour les jeux multijoueurs), la physique et l'intelligence artificielle. Mais la définition d'un moteur de jeu reste malgré tout relativement floue en raison de la juxtaposition des notions. Un moteur de jeu est ainsi le regroupement de l'ensemble des moteurs spécialisés nécessaire à la réalisation d'un jeu.

Par exemple la société Valve Software commercialise le Source engine qui est le nom commercial de son moteur de jeu. Le Source engine est une solution de développement « clé en main » regroupant les différents moteurs (graphisme, son...) nécessaires au développement d'un jeu. La gestion de la physique de se moteur de jeu est assuré par le moteur Havok, spécialisé et développé par une société tierce et qui est lui-même utilisé dans d'autres moteur de jeu.

Le choix d'un studio de création de jeu se limite donc généralement à acheter ou développer tout ou partie des moteurs nécessaires au développement de son jeu. Il est en revanche important de signaler que depuis plusieurs années le rôle des moteurs de jeu ne cesse de grandir. L'investissement que représente en effet le développement des moteurs de jeu ne cesse de croître et rend délicat voire impossible l?amortissement de ceux-ci sur une unique production.

Parmi les moteurs de jeu les plus utilisés ou remarqués ces dernières années, on citera (liste non exhaustive) : le Renderware, les différents Unreal engine, Quake engine, le Source engine, le Cryengine, le Torque engine, Reality engine, Havok, Novodex, Antiryad Gx, etc.

[] Application middleware

Certaines compagnies sont maintenant spécialisées dans le développement de logiciel dit de middleware, c'est-à-dire fournissant des fonctions qui restent personnalisables. De tels développements ont pour but de ne plus « réinventer la roue » en développant une suite logicielle robuste qui inclue plusieurs éléments nécessaires à la création d'un jeu. De nombreux logiciels de ce type dans le jeu vidéo fournissent des facilités de développement pour les graphismes, les sons, la physique, et l'implémentation d'intelligence artificielle. Gamebryo et RenderWare sont deux représentants largement répandus.

Certains middleware fournissent exclusivement une seule facilité, comme par exemple la synthèse d'arbres et de plantes, c'est le cas de SpeedTree, cette spécialisation lui permet de générer des images plus convaincantes que des moteurs plus généralistes.

Certains middleware fournissent tout le code source, d'autres publient la spécification de leur interface de programmation pour permettre la liaison avec d'autres logiciels. Certains encore, proposent l'un ou l'autre des arrangements selon le contrat signé et les honoraires.

[] Fonctionnalités

Chaque moteur de jeu est unique, toutefois, certaines fonctionnalités se retrouvent.

[] Les entrées/sorties

Cette partie s'occupe de la lecture des périphériques externes :

  • Joystick (lecture de l'état des boutons et du ou des sticks)
  • Souris (lecture de l'état des boutons, du mouvement relatif, de la position)
  • Clavier

Elle est aussi en charge de la lecture des données du jeu, et de l'écriture des sauvegardes.

  • Lecture/écriture depuis un disque dur.
  • Lecture depuis un DVD, un CD ou un mini disk.
  • Lecture/écriture depuis une carte mémoire.

C'est elle qui se chargera de compresser/décompresser les données du jeu (notamment pour accélérer les chargements). Elle sera aussi en charge de leur éventuel cryptage/décryptage.

[] Les mathématiques

On y trouvera toutes sortes de fonctions mathématiques nécessaires à l'élaboration d'un jeu. Pour un jeu 3D, on y trouvera plus particulièrement :

  • Les Matrices. En générale des matrices 3x4 ou 4x4 pour le stockage de l'orientation des objets (sur les trois axes), de leur scale (sur les trois axes) et parfois aussi de leur position. La signification réelle des lignes et colonnes est directement liée au moteur et n'a pas toujours de base mathématique réelle. Certains stockeront un scale uniforme sur la dernière colonne ou ligne, d'autres la translation, d'autres encore utiliseront des matrices de transformations plus complexes pour éviter les problèmes de scale dans le cas des matrices hiérarchisées.
  • Les Quaternions. Ils servent au stockage des orientations. Ils sont beaucoup plus compactes que les matrices et supportent beaucoup mieux les interpolations. On les retrouve typiquement dans les animations, pour stocker l'orientation de chaque clef d'interpolation.
  • Les Vecteurs. A deux, trois ou quatre dimensions. On parle de composantes x, y, z et w. La composante w n'est en générale pas utilisée, et n'existe qu'à des fins d'optimisation sur les processeurs 128 bits.

[] Concrètement

  • On peut citer comme exemple de calcul très souvent effectué dans un moteur de jeu : la multiplication de matrices, l'inversion de matrices, le produit scalaire ou vectoriel.

[] La physique

Le module de physique calculera le mouvement des objets, la manière dont ils interagissent les uns avec les autres, la manière dont ils glissent sur le sol ou sur les murs, la manière dont ils rebondissent etc. C'est lui aussi qui calculera la déformation des objets mous, des cheveux, poils, vêtements et autres rideaux. On peut distinguer trois grandes catégories de simulation :

  • La physique du point. C'est la plus simple. Un objet est formalisé par un seul point en mouvement avec une vitesse, une accélération, une friction, de la gravité etc. En général, ce genre de physique se contente de déplacer les objets sans agir sur leur orientation.
  • La physique du solide. Chaque entité est formalisée par une ou plusieurs formes mathématiques (boite, sphère, gellule, cylindre) ou même par un mesh convexe. La physique du solide est beaucoup plus réaliste (et donc complexe) que la physique du point puisqu'elle gère aussi l'évolution de l'orientation. Certains éditeurs se sont spécialisés dans la fabrication de modules de physiques du solide pouvant être directement intégrés dans les moteurs existants. On citera par exemple Havok, Novodex, et dans le domaine du libre ODE.
  • La physique de particules. Elle s'apparante à la physique du point. Un volume est constituée d'un ensemble de particules (on parle aussi d'atomes) liés entres eux par des contraintes (le plus souvent des ressorts). Ce type de physique autorise la déformation et la rupture des volumes. Elle est donc particulièrement bien adaptée à la simulation des tissus.

[] La gestion des collisions

La gestion des collisions empêche deux volumes mathématiques (sphère, boite, cylindre...) de se traverser. C'est elle qui, par exemple, fera tenir une voiture sur la route sur laquelle elle se déplace, ou qui empêche une grenade de traverser le mur sur lequel on la lance.

La gestion des collisions fait souvent partie intégrante du module de physique, car l'intersection de deux volumes aura une incidence directe sur leur mouvement futur. On distingue deux grandes catégories de collision :

  • Statique. Si deux volumes intersectent, l'un d'entre eux sera 'déplacé' pour éliminer la collision. On parle alors de recalage. Il s'agit donc ici de traiter une situation figée à un instant t, typiquement une fois que tous les objets ont effectués leurs déplacements. En conséquence, si un objet se déplace très rapidement, rien n'assure qu'une intersection aura lieu à la fin de son mouvement. Il pourra donc traverser d'autres volumes, ce qui constitue le principal inconvénient de cette méthode.
  • Dynamique. On s'attache alors aussi au mouvement des volumes. On traite donc la transition d'une situation t vers une situation t + 1. Les calculs sont plus couteux, mais ont l'avantage d'empêcher un volume en mouvement rapide d'en traverser un autre.

Un moteur de jeu utilisera typiquement un mélange de ces deux méthodes.

[] Concrètement

  • Pour accélérer le calcul des collisions, les moteurs de jeu peuvent utiliser la notion de Volumes englobants et un algorithme dit de Sweep and prune.
  • Un module de collision est typiquement constitué d'un ensemble de fonctions mathématiques pour le calcul des intersections par paire de primitives géométriques : sphère/sphère, sphère/boite, boite/triangle, etc. Chaque fonction calculera entre autre le point d'intersection, le vecteur d'extraction et la normal au point de contact.

[] Le Graphisme

voir Moteur Graphique

[] Le son

voir Moteur Son

[] Les textes et le multilangues

[] Recours au langage de script

Le recours au langage de script est une méthode qui a aujourd'hui fait ses preuves, permettant, du point de vue développeur, de faciliter le paramétrage du moteur de jeu en fonction du gameplay qu'il a été décidé de réaliser. Le recours au script dans un projet de développement a pour conséquence de séparer les métiers, le programmeur du moteur peut s'occuper spécialement de cette tâche, le concepteur de niveaux (level designer) peut améliorer le gameplay sans pour cela être un programmeur chevronné.

Le besoin d'un système de script c'est fait sentir pour les jeux d'aventure nécessitant beaucoup d?interaction, il en a découlé Script Creation Utility for Maniac Mansion (SCUMM), créé initialement et comme son nom l'indique pour le jeu Maniac Mansion (1987) et réutilisé pour chaque nouveau jeu avec un minimum de modification, il a resservi pour le jeu The Curse of Monkey Island (1997) soit 10 ans plus tard. Les autres types de jeu sont aussi devenu à leur tour complexe, leurs moteur de jeu ont alors souvent incorporé un système de script.<ref name="Adding Languages to Game Engines">Robert Huebner, Adding Languages to Game Engines (www.gamasutra.com, 1997)</ref>

Pour le développement de Jedi Knight: Dark Forces II (1997), le moteur de jeu a été adapté pour supporter un langage de script. Robert Huebner, qui a participé a cette évolution, explique qu'il existait avant cela un langage binaire INF qu'il été dur d'assimiler, un livret compté été destiné a cet usage. Le langage de script implémenté : COG est compilé à la volé lors du lancement d'une partie puis exécuté sur une machine virtuelle (un automate à pile) pour assurer la robustesse du jeu. Il n'y a pas eu aucune conséquence négative raportée que se soit sur le développement ou sur le jeu lui même, mais plutôt un accroissement de la créativité des concepteurs.<ref name="Adding Languages to Game Engines" />

[] L'intelligence artificielle

voir Intelligence artificielle

[] Le réseau

voir Moteur Réseau

[] Les menus

[] Les TRC

[] Liens externes

[] Références

<references />


DernierMirror  
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/moteur de jeu
Home

Données
A la une
Articles
Formatons en lignes
Téléchargement
Licence GNU
Encyclopedie
Portail logiciels libres

Partenaires

beyrouthsurseine.com
Sonnerie & Logos
Photos-Video
Ringtones-Sonnerie
Actualite.org
Terrain tennis

  
Aout 2008
L
M
M
J
V
S
D
123
45678910
1112131415 1617
18192021222324
25262728293031
     
Tous les Logos et Marques sont déposés, les commentaires sont sous la responsabilité de ceux qui les ont publiés, le reste © technicmania.com