Unreal Engine 1 :

Création

Fondée en 1991 par le programmeur Tim Sweeney, Epic Games est au départ une jeune startup dont la stratégie marketing est entièrement basée sur le principe du shareware. Fin 1994, James Schmalz crée un prototype rudimentaire de jeu de flipper en trois dimensions afin de développer ses champs de compétences. Fan inconditionnel de Doom, il décide de s’en inspirer et commence à écrire un programme capable d’afficher des textures et de les étirer de façon à simuler un effet 3D1. Début 1995, il parvient finalement à créer un moteur 3D fonctionnel dont il fait une première présentation en créant un niveau représentant un château médiéval. Sweeney se montre alors très intéressé par son projet et se joint à lui pour la programmation du moteur. Il prend notamment l’initiative de créer un éditeur de niveau, afin de simplifier le processus de création des niveaux, d’implémenter un moteur physique et d’optimiser le système de rendu2. À cette époque, Doom représente la référence du jeu de tir à la première personne. Grand admirateur de John Carmack pour sa contribution à la création des moteurs 3D de Wolfenstein 3D et Doom, Tim Sweeney a l’ambition de concurrencer ce grand nom du jeu vidéo3,4. Il décide donc de prendre en main la programmation du moteur graphique et de le pousser au maximum de ses capacités. Dans cette optique, le moteur est modifié afin de gérer une profondeur des couleurs de 16-bit (65 536 couleurs, appelées « couleurs vraies ») en lieu et place des graphismes 8-bit usuels supportés par les standards VGA et SVGA (qui n’affichaient que 256 couleurs). Après 18 mois de travail acharné et sept refontes du code source, il parvient enfin à obtenir une version stable et performante du moteur5. Réalisant les possibilités offertes par cette technologie, Schmalz et Sweeney décident dès 1994 de l’utiliser pour créer un jeu vidéo qu’ils baptisent Unreal et qui donnera son nom au moteur de jeu6. Après la publication d'une première version de démonstration de la technologie utilisée pour celui-ci en 1995, Unreal est publié par GT Interactive le 22 mai 1998, devenant ainsi une vitrine pour le moteur développé par Epic Games7,8.

Améliorations :

Lorsqu’Unreal sort en mai 1998, le jeu est plutôt bien accueilli par la presse spécialisée et les joueurs, mais sa réputation est peu à peu ternie par les lacunes de son mode réseau qui rebutent les joueurs expérimentés. Conscient de ces lacunes, les développeurs se focalisent donc sur la correction des problèmes entachant le mode multijoueur. Epic Games commence alors à réfléchir à une extension officielle destinée à améliorer le code réseau du jeu et son gameplay en multijoueur9,10,11. Dans ce cadre, Tim Sweeney et Steve Polge se focalisent sur l'amélioration du code réseau et du moteur de jeu de l’UnrealEngine 112,13. Les délais étant moins contraignants que ceux imposés pour Unreal, les programmeurs disposent de suffisamment de temps pour exploiter pleinement le potentiel du moteur de jeu. Ils peuvent ainsi utiliser certaines caractéristiques du moteur qu'ils n'avaient encore jamais testées, ce qui leur permet notamment d'améliorer sensiblement le rendu graphique des personnages et des niveaux, permettant par exemple de multiplier par quatre le niveau de détail des apparences disponibles pour les personnages, notamment au niveau des visages14. Devant l’ampleur de la tâche, Epic Games décident finalement de faire de cette extension un jeu à part entière qu’ils baptisent Unreal Tournament10.

Licence :

Comme id Software avec le Quake engine, Epic Games met ensuite l’Unreal Engine à disposition sous licence. Particulièrement populaire dans la communauté des développeurs de mods, celui-ci devient rapidement le principal concurrent du Quake Engine. En plus des titres développés par Epic Games et Digital Extreme, celui-ci a ainsi été utilisé par de nombreux studios de développement pour créer des jeux tels que Deus Ex, Rune ou encore Star Trek: Deep Space Nine: The Fallen16.

Caractéristiques:

L'Unreal Engine est programmé en C++ et dans un langage de script, baptisé « UnrealScript », utilisé pour 90 % du code lié au gameplay d’Unreal Tournament15. Le moteur utilise une conception orientée objet, ce qui lui permet d'être extrêmement modulaire. Les interfaces des différentes sous-parties du code étant clairement définies, les développeurs peuvent travailler sur l'une d'entre elles sans que cela n'affecte le reste du jeu. Cela a également permis d'isoler le code lié aux plates-formes dans des bibliothèques logicielles séparées, facilitant le portage du jeu sur d'autres plates-formes. Enfin, cette modularité se retrouve dans le langage de script du moteur de jeu. Tous les éléments du jeu, comme les armes ou les objets, sont définis de manière indépendante. Les programmeurs peuvent donc ajouter ou modifier ces éléments sans que cela n'affecte le code source. Cette conception orientée objet couplée avec l'éditeur de niveau UnrealEd fait de l'Unreal Engine un système performant pour créer de nouveaux jeux ou des modifications de jeux l'utilisant. Une grande partie du code a en effet été conçue de manière à rendre le jeu attractif pour les programmeurs et les artistes de la communauté des moddeurs13.

La CSG :

L'Unreal Engine est axé sur la CSG (la géométrie de construction de solides) soustractive à l'inverse du quake engine, basé sur la géométrie additive. En résumé, pour construire un univers dans le quake engine, les éléments sont ajoutés au vide (un peu comme l'on construirait une maison en ajoutant des briques). Dans l'unreal engine, le monde est plein au départ et le designer creuse dans celui-ci pour créer son univers. Cela offre la possibilité au designer de l'unreal engine d'utiliser des "portals" pour cloisonner son monde en zones fermées bien distinctes et ainsi offre au moteur la possibilité grâce aux PVS (potential visibility sets) de n'afficher que la partie visible d'un univers.Ainsi, le moteur d'unreal pouvait offrir des intérieurs complexes et des extérieurs riches tout en offrant des performances impressionnantes pour l'époque. Pour le « ciel », Epic adopta le système des Skybox : procédé aujourd'hui courant pour représenter le ciel en 3D temps réel. Unreal Engine est destiné aux consoles de la génération PlayStation, Nintendo 64, PlayStation 2 et Dreamcast ainsi qu'aux PC de la fin des années 1990.