Vote utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 

 

 

Si vous consultez les tests de jeux vidéos, vous n'avez pas pu passer à côté de ce genre de phrase : "Crysis 3 utilisera le moteur de jeu CryEngine 3", "Dishonnored utilisera le moteur de jeu UnrealEngine 3", "Hitman Absolution sera propulsé par le moteur Glacier 2"...

Mais au fait... C'est quoi un moteur de jeu ?

 

 

Un simulateur prêt à l'emploi

Dans la majeure partie des jeux vidéos auxquels vous avez pu jouer, vous avez sans doute remarqué les spécificités suivantes :

  • on installe le jeu (disque dur, CD/DVD ROM)
  • on joue grâce à l'utilisation d'un clavier, d'une souris ou d'une manette
  • les graphismes sont en 3D
  • il y a une ambiance sonore (bruitages, musiques)
  • il y a une intelligence artificielle (ennemis, personnages non jouables dits PNJ)
  • il y a des effects spéciaux qui tiennent compte de la physique (gravité, collisions...)
  • il est possible d'interagir avec l'environnement (ouvrir une porte, allumer la lumière)
  • vous pouvez sauvegarder votre progression

Hé bien un moteur de jeu, c'est tout cela et un peu plus encore : il s'agit d'un ensemble de composants logiciels qui effectue tous les calculs nécessaires pour créer un simulateur en temps réel qui reproduit les caractéristiques des mondes imaginaires dans lesquels se déroulent les jeux.

Il gère les entrées/sorties (clavier, souris, manette, disque dur, CD/DVD, sauvegardes), les maths (matrices 3D), la physique (collisions, gravité), le son, le scriptage (interactions), l'IA, le réseau et bien sur le graphisme en 3D..

 

 

Pourquoi les développeurs font-ils appel aux moteurs de jeux ?

C'est très simple : pour gagner du temps !

En utilisant un moteur de jeu, l'équipe de conception peut davantage se concentrer sur le contenu et le déroulement du jeu plutôt que de réinventer à chaque fois la roue en re-créant ce qui existe déjà.

Débarrassés des problèmes informatiques, mathématiques et physiques, les concepteurs peuvent ainsi mettre la gomme sur tout le reste

 

 

Quelques moteurs célèbres et jeux les utilisant

Avant d'aller plus loin dans l'explication des moteurs de jeux, voici quelques moteurs très célèbres ainsi que quelques jeux les utilisant.

  • Anvil / Scimitar
    • Assassin's Creed
    • Assassin's Creed II
    • Assassin's Creed Brotherhood
    • Assassin's Creed Revelations
  • Anvil Next
    • Assassin's Creed III
  • Crystal Tools
    • Final Fantasy XIII, XIII-2 et XIV
  • CryENGINE
    • Far Cry
    • Aion
  • CryENGINE2
    • Crysis
    • Entropia Universe
  • CryENGINE3
    • Crysis 2
    • Crysis 3
    • Sniper Ghost Warrior
  • Frostbite Engine 2
    • Battlefiel 3
    • Need for Speed : The Run
    • Medal of Honor Warfighter
  • GoldSrc
    • Half-Life
  • id Tech 4
    • Doom 3
    • Quake 4
    • Return to Castle Wolfenstein
  • Source Engine
    • Half Life 2
    • Team Fortress 2
    • 4 Dead 2
  • UnrealEngine 2.x
    • Unreal Tournament 2004
    • Splinter Cell Conviction
    • Exteel
  • UnrealEngine 3.x
    • Batman Arkham Asylum
    • Batman Arkham City
    • BioShock
    • Dishonnored
    • Mass Effect
    • Mass Effect 2
    • Mass Effect 3

 

Si vous avez déjà joué à certain de ces jeux, vous remarquez peut-être que chaque moteur de jeu est spécialisé dans un type de jeu.

UnrealEngine ou CryENGINE, par exemple, sont des moteurs principalement orientés verts les jeux de tir subjectifs ou des MMORPG.

Frostbite Engine quand à lui, a été élargi pour les jeux de courses et les jeux de stratégie en temps réel.

Il s'agit là d'ailleurs des types de jeux qui font le plus souvent appel à des moteurs de jeux : les jeux de tir subjectifs, les MMORPG, les jeux de courses.

 

 

L'origine des moteurs de jeux

On peut dire que la notion des moteurs de jeux est apparue en 1990 grâce au célèbre Doom.

La manière dont Doom a été architecturé faisait pour la première fois une distinction claire entre les composants propres aux moteurs de jeux et les ressources numériques propres à Doom (graphisme, sons, musique, scènes, règles de déroulement).

Les composants du moteur ont ainsi pu être réutilisés, en y apportant de mineures modifications, dans d'autres jeux.

 

 

Moteurs libres, propritaires, commerciaux...

Comme pour les logiciels, il existe des moteurs de jeux libres (Axiom Engine, Allegro, Blender, Genesis Device, id Tech 3 , Xilon Engine II...), propriétaires gratuits (Adventure Game Studio, dim3, Game Maker Lite, MUGEN, Panda3D, Unity) et commerciaux (CryENGINE, UnrealEngine, GoldScr).

Certaines entreprises sont spécialisées dans le développements de moteurs de jeux dits frameworks, autrement dit, qui restent personnalisables. Les plus connues d'entre-elles sont RenderWare et Gamebryo.

Certains frameworks fournissent uniquement des facilités pour une fonction précise. Par exemple, SpeedTree fournit la synthèse des arbres et des plantes. HardRain, quand à lui, fournit la génération d'effets météo.

Ces spécialisations permettent de générer des images ou des effets plus convaincants que des moteurs plus généralistes.

 

 

Les fonctionnalités des moteurs de jeux

Même si chaque moteur de jeu est unique, on retrouve des similarités dans chacun d'entre eux :

 

Les entrées/sorties

Cette partie du moteur s'occupe de la lecture des périphériques externes (manette de jeu, souris, clavier), mais est également chargée de la lecture des données du jeu et de l'écriture des sauvegardes.

Elle se charge de compresser/décompresser les données du jeu, notamment pour accélérer les temps de chargements.

 

 

Les maths

Cette partie comporte toutes les fonctions mathématiques nécessaires au jeu, en particulier pour les jeux en 3D : les matrices (stockage de l'orientation des objets sur les 3 axes)les quaternions (qui servent au stockage des orientations) et les vecteurs (à 2, 3 ou 4 dimensions).

 

 

La physique

Ce module se charge du calcul des mouvements des objets : que ce soit la manière dont ils intéragissent les uns avec les autres, la manière dont ils glissent sur le sol ou sur les murs, la façon dont ils rebondissent, dont ils volent, etc...

Il calcule aussi la déformation des objets souples ou mous comme les vêtements, les rideaux, les cheveux, les poils, etc...

 

 

Les collisions

Cette couche logicielle permet de détecter lorsque 2 objets se rencontrent et, lorsque cela se produit, génère une action résultant de cette collision.

Elle est constituée d'un ensemble de fonctions mathématiques (sphère contre sphère, sphère contre cube, cube contre triange, etc...) qui vont permettre le calcul des collisions entre divers éléments du jeu (objets, personnages, projectiles, véhicules).

 

 

Le graphisme 3D

Dans les jeux en 3 dimensions, les scènes et les objets du jeu sont enregistrés sous la forme des coordonnées en 3 dimensions de polygones (souvent des triangles).

Chaque suite de polygones forme les contours des différents objets du monde du jeu.

Le moteur de jeu effectue des calculs de synthèse d'image en vue d'obtenir une projection en 2 dimensions du monde du jeu, projection qui sera envoyée à l'écran.

 

 

Le son

Le moteur son combine un lecteur audio avec un logiciel de mixage et un générateur d'effets sonores.

Il gère la compression, les échos ainsi que la spacialisation du son.

Le moteur son effectue en continue des calculs de synthèse et de traitement numérique du signal sur la base d'échantillons numérisés, de partitions musicales et de tables d'ondes.

Certains moteurs son simulent la réverbération, le déphasage et le changement de timbre d'un son émis par une source éloignée et produisent ainsi des illusions auditives.

 

 

Le scriptage

Les langages de scripts sont utilisés pour programmer le comportement des enemis ou des machines et ainsi simuler leur intelligence.

Le recours à un langage de scripts permet ainsi à un designer ou à un scénariste qui a peu ou pas de connaissance en programmation de configurer le comportement des ennemis sans faire appel à un programmeur.

Certaines entreprises ont développé leurs propres langages de scripts (Id Software avec le langage QuakeC ou Epic Game avec le langage UnrealScript).

Aujourd'hui, l'intégration d'un langage de script est devenue très accessible, certaines biobliothèques logicielles étant développées indépendamment et spécialement das ce but.

Citons notamment Lua, qui a été utilisé dans un très grand nombre de jeux vidéos, de genres pourtant très divers (Baldur's Gate, Escape From Monkey Island, Homeworld 2, World of Warcraft, Far Cry..)

 

 

L'intelligence artificielle

Les personnages ou groupes de personnages non jouables (PNJ) sont dotés d'une IA afin de leur donner l'illusion d'un comportement intelligent.

La recherche de chemin, la planification stratégique, tactique et l'animation procédurale de chaque PNJ sont tous gérés par le moteur d'intelligence articificielle.

D'années en années, l'IA a progressé afin de permettre aux PNJ de réagir et de s'adapter de mieux en mieux face au comportement du joueur, que ce soit dans des situations prévisibles ou, plus gros challenge, dans des situations imprévisibles.

 

Si la conception de l'IA dans les jeux vidéos vous intéresse, je vous conseille de lire cet article publié sur le site d'Intel (en français !) : lien

 

 

 

1000 caractères restants