L'outil principal pour concevoir un jeu vidéo : le moteur de jeu
Commençons tout d’abord par parler de l’élément central de la conception d’un jeu vidéo : le moteur de jeu ou game engine. Ici, je vous présenterai le moteur Unreal Engine 4 ou UE4 développé par Epic. La 5e version est en phase beta et devrait sortir officiellement courant 2022.
Il existe aussi d’autres moteurs accessibles au grand public comme par exemple Unity ou le CryEngine ainsi qu’une multitude de moteurs propriétaires nécessitant l’achat de licences, option réservée aux grands studios professionnels, comme par exemple le moteur id Tech développé par id Software, les papas du célèbre jeu Doom.
Généralités
Un moteur de jeu est un ensemble de composants logiciels qui effectuent des calculs de géométrie et de physique utilisés dans les jeux vidéo. L’ensemble forme un simulateur en temps réel souple qui reproduit les caractéristiques des mondes imaginaires dans lesquels se déroulent les jeux. Le but visé par un moteur de jeu est de permettre à une équipe de développement de se concentrer sur le contenu et le déroulement du jeu plutôt que la résolution de problèmes informatiques.
Le moteur 3D crée des images par des calculs de projection, tandis que le moteur 2D construit l’image du jeu par empilement d’images matricielles. Le moteur effectue le mixage des bruits et de la musique tout au long du jeu. Les possibilités de scriptage des moteurs de jeu permettent de simuler le comportement des personnages non-jouables avec peu ou pas de programmation et le moteur physique sert à appliquer des règles de physique telles que l’inertie ou la pesanteur dans le but d’obtenir des mouvements plus réalistes.
Unreal Engine 4
Le 19 mars 2014, Epic Games annonce que son moteur Unreal Engine 4 sera disponible pour tous au prix de 19 $ par mois, ainsi que 5 % de royalties.
Depuis le 2 mars 2015, Unreal Engine 4 est gratuit, les développeurs l’utilisant pour développer des jeux ou vidéos commerciaux devant toutefois payer une redevance à partir d’un certain chiffre d’affaires. À titre de comparaison, la société exigeait une redevance de 25 % pour Unreal Engine 3. L’Unreal Engine 4 permet de créer pour PS4, PS5, Xbox One, Xbox Series, Nintendo Switch, iOS, Windows, Steam, Linux, HTML 5, PlayStation VR, Android, Oculus, Gear VR, Steam VR, Magic leap et Google VR. Il propose également le C++, et un nouveau langage de programmation graphique appelé Blueprint (visual scripting).
Les blueprints permettent une programmation visuelle à l’aide de blocs de code (node) reliés entre eux dans un ordre précis. C’est surtout dans cette interface que nous passerons le plus clair de notre temps. Nous coderons ici toute la logique de notre jeu comme le contrôle du personnage principal par le joueur ou l’intelligence artificielle (parfois très artificielle) des ennemis grâce aux variables, fonctions et évènements (events).
Les variables servent à stocker des valeurs comme le nombre de points de vie du joueur ou à créer un inventaire. Les fonctions utilisent ces informations pour effectuer des calculs et renvoyer le résultat soit directement à une autre fonction, soit dans une… variable, afin de pouvoir être réutilisé plus tard.
Les évènements dans l’Unreal Engine peuvent être vues aussi comme des fonctions puisqu’on peut lier du code à l’évènement quand celui-ci se déclenche. Ceci dit, le rôle d’un évènement est de prévenir le moteur que quelque chose vient de se produire (un évènement) comme par exemple une collision entre deux objets.
L’autre partie du temps sera consacrée à la réalisation des assets du jeu via différents outils externes comme par exemple Zbrush pour la sculpture numérique, Blender pour la modélisation et l’animation, Substance Painter pour la réalisation des textures utilisées pour créer les matériaux, etc.
Les assets sont tout ce qui constitue un jeu : objets 3d, textures, animations, sons, scripts, etc.
Les autres outils pour concevoir un jeu vidéo
Zbrush
Zbrush est un logiciel de sculpture numérique développé par Pixologic. Il permet de manipuler des dizaines de millions de polygones facilement, bien que cela dépende aussi de la puissance de votre ordinateur. Très répandu à la fois dans le domaine du cinéma et du jeu vidéo, il est utilisé pour créer les détails et micros détails d’objets en haute résolution comme par exemple les pores de la peau d’un personnage ou la texture de pierre d’une statue.
On exportera alors l’objet 3d haute résolution que l’on importera ensuite dans un logiciel comme Substance Painter pour en extraire les détails sous forme de textures. Ces dernières seront ensuite projetées sur une copie basse résolution de l’objet 3d afin de simuler en trompe-l’œil les détails de la version haute résolution, le tout avec beaucoup moins de polygones afin d’alléger les calculs du côté du moteur de jeu (processeur et carte graphique).
Alors qu’une sculpture de personnage peut comporter 10 à 20 millions de polygones (high poly), les versions dites « low poly » comportent entre 20 000 et 40 000 polygones dans les jeux modernes. Certains personnages peuvent monter jusqu’à 80 000 polygones. L’idée est de faire toujours plus avec toujours moins.
Blender
Blender est un logiciel (gratuit) qui permet la modélisation polygonale et depuis les dernières versions la sculpture numérique. Il permet aussi l’animation de tout type d’objets, bien que le travail d’animation dans un jeu soit principalement l’animation de personnages.
Il permet également la création d’un type particulier d’objet, indispensable pour la réalisation de textures et matériaux : le dépliage UV. Cela consiste à découper l’objet 3d de manière à pouvoir le « mettre à plat » afin de pouvoir projeter les textures dessus.
Substance Painter
Substance Painter est un logiciel de création de textures qui offre la particularité de pouvoir peindre directement sur l’objet comme si nous étions en train de peindre une figurine pour un diorama. Il permet aussi d’extraire des informations sous forme de textures depuis un objet 3d haute résolution pour les appliquer sur une version basse résolution.
On utilisera aussi ces informations pour générer des textures dites procédurales afin de, par exemple, créer des effets de rouille ou salissures sur certaines parties de l’objet comme les arêtes ou les creux. Autre possibilité, l’ajout de neige uniquement sur les parties en relief et/ou le haut de l’objet. On pourra également rajouter des détails sous forme de textures comme des rivets ou des coutures, voire même des cicatrices ou des tatouages.