id Tech 4

moteur de jeu
(Redirigé depuis Doom III Engine)

L'id Tech 4, plus connu sous le nom de Doom 3 engine est un moteur de jeu vidéo développé par id Software et utilisé pour la première fois dans le jeu Doom 3.

Id Tech 4

Informations
Développé par id Software
Dépôt github.com/id-Software/DOOM-3-BFGVoir et modifier les données sur Wikidata
Écrit en C++
Système d'exploitation Microsoft WindowsVoir et modifier les données sur Wikidata
Environnement Windows, Mac OS X, Linux, Xbox, Xbox 360, PlayStation 3
Type Moteur de jeu
Licence Licence publique générale GNU
Site web github.com/id-Software/DOOM-3-BFGVoir et modifier les données sur Wikidata

Chronologie des versions

Conçu principalement par John Carmack, celui-ci a aussi créé d'autres moteurs par le passé comme le Doom engine et le Quake engine, qui ont été généralement reconnus comme de grandes avancées technologiques dans le domaine.

Historique modifier

L'id Tech 4 a d'abord été conçu comme une amélioration du Quake engine. À l'origine, il était prévu de complètement réécrire le moteur de rendu du Quake Engine, tout en gardant certains sous-systèmes comme l'accès aux fichiers et la gestion de la mémoire. Après que le nouveau moteur de rendu fut fonctionnel, il fut décidé de passer du langage C au C++, ce qui nécessita une réécriture et une restructuration complète du reste du moteur. Le moteur actuel ne contient donc que très peu de code issu du moteur Quake engine, ce qui en fait le premier vrai nouveau moteur d’id Software depuis 1996.

Ajouts par rapport à l'id tech 3 modifier

L'id Tech 4 est sorti avec de nombreuses nouvelles technologies par rapport au Quake 3 engine (id tech 3) qui l'a précédé. Cela inclut le bump mapping, le normal mapping et la lumière spéculaire. D'autres fonctionnalités ont été ajoutées par la suite au moteur, comme la technologie MegaTexture (notamment utilisée dans le jeu Enemy Territory: Quake Wars).

IA et scripting modifier

Les personnages non joueurs ont une intelligence artificielle (IA) rudimentaire (de type pathfinder) et le jeu est enrichi d'un langage de script appelé DoomScript.

Pixel shaders modifier

L'id tech 4 permet divers effets propres à la génération d'effets vidéo en pixel shader : déformation, flou, bump mappingetc.

Réécriture complète en objet modifier

Le moteur a été entièrement réécrit en C++.

Réécriture des formats de fichier modifier

Les fichiers du jeu sont désormais entièrement encodés avec le format ASCII qui était déjà utilisé pour coder les entités dans l'Id Tech 3. Ce format est plus lent à charger mais plus souple, plus adapté à l'objet et plus facile à déboguer.

Les cartes du jeu (maps) ne sont plus codées sur un simple fichier .bsp, mais encodées sous la forme de 4 fichiers différents afin de mieux isoler les différentes partie du programme :

  • le fichier « .map », lu par l'éditeur de niveaux du jeu et par le jeu lui-même, qui contient les entités et autres informations. Il sert à générer 3 autres fichiers  :
    • le fichier « .cm », qui définit une collisionmap pour le moteur physique  ;
    • le fichier « .proc », qui contient toute la géométrie pré calculée par le compilateur  : triangles, portails, volumes de lumière des lampes statiques  ;
    • le fichier « .aas », qui contient des structures pour guider l'IA.

L'occlusion n'est plus approximativement pré-calculée dans des tables, elle est calculée en temps réel à l'aide de portails stockés dans le bsp.

Éclairage et ombres dynamiques en temps réel modifier

La principale innovation de l'id Tech 4 est l'utilisation totale de l'éclairage dynamique. Les volumes d'ombres sont rendus en polygones avec un algorithme appelé Carmack's Reverse. Les volumes d'ombre des lampes statiques sont pré-calculés à la compilation de la map, les volumes d'ombre de lampes mobiles sont calculés en temps réel.

Alors qu’auparavant les moteurs 3D combinaient grossièrement les lumières pré-calculées ou les lightmaps avec des lumières dynamiques dont l'effet changeait la luminosité d'un objet entier, l'approche utilisée par l'id Tech 4 a permis un éclairage et un ombrage plus réaliste qu'auparavant.

Synchronisation des lèvres modifier

Quake 4 offre une technologie de synchronisation des lèvres en temps réel. Un système qui est similaire à celui du Source Engine, avec onze émotions faciales génériques et le support des langues anglaise, française, italienne et espagnole (le Source Engine est indépendant de la langue).

Technologie de rendu MegaTexture modifier

MegaTexture est une technologie apparue avec Enemy Territory: Quake Wars. Elle est conçue pour éliminer les textures répétitives dans un environnement.

La version originale de l'id Tech 4 a été critiquée pour son inaptitude à gérer les paysages et les décors extérieurs. La technologie MegaTexture corrige ce problème en permettant l'utilisation d'une seule texture massive recouvrant tout le niveau.

Il est actuellement nettement plus simple de charger une seule texture de 32000x32000 pixels que seize textures de 4000x4000 pixels. Le résultat est considérablement plus détaillé qu'avec des textures répétitives. De plus, la sous-couche MegaTexture permet aussi d'appliquer une grande variété de paramètres à certaines zones, comme la tenue de route des véhicules, les bruits de pas ou les particules à utiliser pour les explosions. Ce qui limite l'utilisation de polygones supplémentaires.

Futures améliorations prévues modifier

Les ombres gérées par l'id Tech 4 original ont un gros défaut : leurs contours sont tous parfaitement nets. Les jeux suivants basés sur ce moteur permettront l'utilisation de véritables ombres douces par une véritable gestion de la pénombre, calculée par rapport à la distance entre la lumière et le cache[réf. nécessaire].

Liste de jeux utilisant l'id Tech 4 modifier

Notes et références modifier

Article connexe modifier