Vision du monde d’un moteur :
le cas Unreal Engine 5



Avec les années d’expérience en tant que développeur de jeux 3D et professeur d’informatique, j’ai remarqué que l’apprentissage d’un moteur de jeu comme Unreal Engine reste extrêmement complexe.

Toutefois, il existe pléthore de tutoriaux sur internet, sous forme textuelle ou vidéo, qui peuvent enseigner l’apprentissage technique. Mais, pour ceux qui veulent comprendre un moteur en profondeur, un autre point me semble plus important encore : la philosophie sous-jacente du moteur.

Ayant eu depuis de nombreuses années de l’expérience sur plusieurs moteurs, notamment Panda3D, Irrlicht, OGRE, Unity et Unreal Engine, j’ai constaté des différences en surface avec l’apprentissage standard sur des ouvrages ou vidéos.

Par exemple, j’utilisais Panda3D au milieu des années 2000, un moteur de jeu très orienté code, sans réel outil WYSIWYG (comme on disait dans les années 2000 😅) comme un Level Editor ou un éditeur vraiment complet, contrairement aux moteurs commerciaux de l’époque (Unreal Engine 2 ou 3, RenderWare, Gamebryo…), mais beaucoup plus accessible grâce à Python.

Irrlicht et OGRE sont plutôt des moteurs de rendu, populaires dans les années 2000, spécialisés dans l’affichage de scènes 3D, que des moteurs de jeu. OGRE est réputé plus difficile à utiliser mais puissant, alors qu’Irrlicht est plus accessible mais plus limité.

Aujourd’hui, le marché des moteurs est principalement dominé par Unreal Engine, Unity et Godot. Unity est un moteur orienté AA, et Unreal Engine est plutôt un moteur AAA et pour des Open Worlds. Bien sûr, il s’agit ici d’une simplification gargantuesque, car mon propos est centré sur Unreal et non pas sur un comparatif exhaustif des moteurs.

Toutefois, ce que j’ai constaté avec mes années d’expérience en dev mais aussi en analyses sémiotiques (et donc réflexives) sur le dev de jeux, c’est que chaque moteur possède sa propre définition d’un jeu vidéo, et de ce qu’est in fine un moteur.

Dans ma thèse doctorale, et à l’instar de la célèbre hypothèse de Sapir-Whorf qui prétend que chaque langue est une représentation du monde, j’estime que chaque moteur possède sa propre vision de ce qu’est un jeu vidéo et un moteur. Un moteur n’est jamais neutre ou interchangeable.

De surcroît, chaque nouvelle itération “majeure” d’un moteur, comme le passage d’Unreal Engine 5 à la sixième mouture dans quelques temps, va modifier la définition d’un jeu et d’un moteur.

Et si on dit habituellement qu’il faut environ 10 000 heures pour apprendre à utiliser correctement un moteur de jeu, j’estime que la compréhension des implications et de la philosophie d’un moteur demande plusieurs années, mais aussi une grande curiosité envers les autres moteurs.

Cette philosophie est d’autant plus importante pour comprendre les débats sempiternels (que nous ne ferons qu’effleurer) sur la création de son propre moteur plutôt que l’usage d’un moteur généraliste.

Dans tous les cas, l’objectif de cet article est, comme je l’ai annoncé en filigrane, d’analyser la philosophie d’un moteur de jeu, celui dont je suis spécialiste, Unreal Engine, pour mieux appréhender sa vision du monde.

Pour cela, je vais d’abord partir sur un historique relativement succinct du moteur pour comprendre les linéaments historiques.

Goldanniyatech image

0. Genèse du moteur


Ce qui est intéressant, c’est qu’Unreal Engine 1 est l’un des tout premiers moteurs de jeu en 3D temps réel, avec le Quake Engine et d’autres.