Pourquoi nous avons choisi Unreal Engine
Image
Écrit par Nicolas Gauville le 22/03/2023

Co-fondateur de VirtualSociety - Docteur en Informatique
Nicolas est à l'origine du projet VirtualSociety, et est chargé du développement et de la communication de VirtualSociety
Après un doctorat en robotique autonome auprès de Safran Electronics & Defense, Nicolas s'est lancé dans la création du studio de jeux vidéos Cats & Foxes.

Pourquoi nous avons choisi Unreal Engine

illustration

Au commencement, sans moteur

À l’époque de VirtualSociety Online, nous avions fait le choix de ne pas utiliser de moteur de jeu. VirtualSociety online étant un jeu web, nous avions quelques choix possibles de moteurs, comme Babylon.js1 où PlayCanvas2, mais nous avions fait le choix de n’utiliser qu’un moteur de rendu, ThreeJS3.

Qu’est-ce qu’un moteur de jeu ?

Contrairement à un moteur de rendu (comme ThreeJS3), un moteur de jeu prend en charge les différentes composantes d'un jeu vidéo, telles que la physique, le mixage du son, les entrées sorties (clavier, souris, manette), etc.

Ne pas utiliser de moteur avait plusieurs avantages. Tout d’abord, cela nous a donné l’occasion de construire notre propre moteur, parfaitement adapté à nos besoins. À l’époque où VirtualSociety online était en 2D, le moteur avait été fait de façon à permettre aux joueurs de créer leurs objets directement depuis le jeu. Lors de la transition de la 2D à la 3D, une partie du code avait pu être conservé, en intégrant ThreeJS pour le rendu, ce qui n’aurait pas été possible si nous avions utilisé un moteur de jeu 2D.

Créer notre propre moteur était également une expérience très enrichissante, en nous confrontant à tout un tas d’aspects différents des jeux vidéos, la gestion des actions, des animations, des caméras, des personnages non-joueurs, ou encore du son.

Lorsque nous avons décidé de développer un jeu à plein temps, et de tout recommencer, nous nous sommes demandé s'il valait mieux créer notre propre moteur où utiliser un moteur existant. Si créer son propre moteur a quelques avantages, comme nous l'avons vu ci-dessus, utiliser un moteur existant reste souvent la meilleure solution, particulièrement pour un petit studio.

Pourquoi utiliser un moteur de jeu ?

De nombreux avantages sont associés à l'utilisation d'un moteur de jeu existant et connu, notamment :

  • Le recrutement est beaucoup plus facile ! En effet, recruter un développeur ou un artiste familiarisé avec Unreal Engine ou Unity par exemple, se fait facilement, car de nombreuses écoles apprennent à utiliser ces moteurs. Apprendre à utiliser un moteur connu et très utilisé permet de pouvoir s'intégrer facilement dans de nombreux projets. À l'inverse, lorsque l'on utilise un moteur créé en interne, les nouveaux membres de l'équipe doivent d'abord se familiariser à la façon de faire du studio, ce qui demande beaucoup de temps et d'investissement. De plus, lorsqu'un studio cherche à lever des fonds pour réaliser un jeu, utiliser un moteur connu augmente la confiance des investisseurs, en partie parce que le recrutement sera plus facile.
  • La plupart des grands moteurs de jeu sont multiplateformes. Porter un jeu sur différentes plateformes est un travail long et difficile, et les moteurs qui prennent nativement plusieurs plateformes en charge facilitent donc grandement ce travail.
  • Utiliser un moteur existant accélère grandement le développement d'un jeu pour de nombreuses raisons. D'une part, une grande partie des calculs complexes est déjà intégrée dans le moteur, ce qui évite de tout refaire en partant de zéro. De plus, les moteurs sont réalisés par des développeurs qui ont une grande expérience et connaissent très bien le développement de jeu vidéo, si bien qu'ils mettent généralement en place une structure qui facilitera le développement, et poussera les développeurs à adopter les meilleures pratiques pour construire leur jeu. Ainsi, cela peut éviter de nombreuses erreurs et pertes de temps.

Pour toutes ces raisons, nous avons fait le choix d'utiliser un moteur existant, plutôt que d'en recréer un nous-mêmes comme nous l'avions fait précédemment. Une question restait en suspens : lequel choisir ?

Les moteurs multiplateformes

De nombreux moteurs de jeux qui répondaient à nos besoins existent. Nous pouvons par exemple citer Unity4, Godot Engine6 et Unreal Engine 5

Nous n'allons pas ici les comparer pour chercher à savoir lequel serait meilleur que les autres. Tous ont leurs avantages et inconvénients, et il est plus avisé de comparer leurs philosophies, leurs points forts où plus simplement les choix qu'ils ont réalisés, et qui les rendront plus ou moins attrayants selon les gouts et objectifs des développeurs. Au lieu de cela, nous allons vous expliquer différentes raisons qui nous ont fait choisir Unreal Engine pour VirtualSociety (et que nous ne vous disons pas qu'il serait meilleur qu'un autre, où que ce soit le choix que nous aurions forcément fait pour un autre jeu).

Notre choix : Unreal Engine

Avant toute chose, disons-le clairement : le choix d'un moteur n'est jamais un choix purement technique. Chaque moteur possède sa philosophie, et conviendra mieux à certains développeurs qu'à d'autres. Bien sûr, certains choix seraient insensés, Fortnite n'aurait pas pu être développé avec GameMaker, mais le choix final d'un moteur de jeu tient toujours, en partie, des préférences personnelles. Nous allons détailler ici quelques critères qui, dans notre cas, nous ont fait choisir Unreal Engine.

Les points forts d'Unreal Engine

  • La pipeline de rendu d'Unreal Engine 7 est sans contexte l'une des meilleures des moteurs de jeux actuels. Elle permet aux graphistes 3D d'avoir des rendus très fidèles et offre des outils puissants et faciles à utiliser.
  • Unreal Engine permet le développement de jeux en C++, et laisse les développeurs accéder au code source du moteur. Ceci apporte de nombreux avantages. Contrairement à d'autres moteurs qui utilisent un langage de scripting séparé, le code d'un jeu fait avec Unreal Engine utilise le même langage que le moteur, ce qui lui permet de mieux s'interfacer avec. De plus, cela permet de mieux comprendre les rouages du moteur, ainsi que de pouvoir corriger facilement d'éventuels bugs du moteur si besoin.
  • Lumen est le nouveau système d'illumination globale d'Unreal Engine 5. Cette technologie permet un éclairage global dynamique, sans précalculs (baked lightning). Dans notre cas, c'est-à-dire un jeu totalement modifiable par les joueurs, nous ne pouvons pas compter sur le précalcul des lumières et ombres. Lumen est alors la technologie idéale, nous permettant d'avoir des rendus sublimes en jeu, tout en maintenant un monde flexible, modifiable par les joueurs.
  • L'utilisation d'Unreal Engine et l'accès au code source sont totalement gratuits. Epic Game prends 5&prct; des bénéfices d'un jeu lorsque les revenus de celui-ci dépassent les 1 million de dollars.
  • Unreal Engine est un moteur éprouvé, et utilisé par de nombreux jeux AAA.

Quelques points faibles

Comme tout moteur, il y a évidemment de bons et mauvais côtés, jusqu'ici, nous notons par exemple :

  • la documentation est assez limitée, particulièrement en C++. Bien souvent, au-delà des cas d'utilisation les plus simples, la meilleure façon de savoir comment faire est de lire directement le code source du moteur pour trouver des cas d'utilisation similaires.
  • la gestion des jeux 2D est très limitée (voire absente sans plugin), Unreal se concentre vraiment sur la 3D.
  • les jeux développés avec Unreal Engine sont rapidement lourds (autant en poids de l'exécutable qu'en ressources demandées), ce qui est particulièrement contraignant sur les plateformes mobiles.

Quelques autres critères

Quelques autres critères nous ont confortés dans notre choix, bien qu'il ne s'agisse pas d'éléments techniques ou de particularités du moteur. Nous pouvons notamment citer :

  • Epic Games soutient les créateurs indépendants, qu'ils utilisent Unreal Engine ou un autre moteur s'ils partagent du savoir ou des ressources à la communauté. Ils proposent notamment l'Epic MegaGrant, une bourse attribuée à des projets autour de la 3D.
  • Epic Games, comme d'autres entreprises, se battent pour réduire les redevances des jeux envers les plateformes de distribution (souvent très élevées, de l'ordre de 30&prct;), et pour permettre aux développeurs de distribuer leurs logiciels et jeux sur des plateformes libres et ouvertes.
  • Nous portons une certaine admiration au créateur d'Unreal Engine, Tim Sweeney9, qui continue de programmer malgrè la gigantesque entreprise qu'il a créée, et qui utilise sa fortune pour préserver des forêts, et espèces animales et végétales rares et menacées.

Références

1 Babylon.js
2 PlayCanvas
3 ThreeJS
4 Unity
5 Unreal Engine
6 Godot Engine
7 Article de Wikipédia sur les pipelines de rendu 3D
8 Article du devblog de Godot Engine Whats missing in godot for AAA
9 Page Wikipédia de Tim Sweeney

J'aime
Image
Écrit par Nicolas Gauville le 22/03/2023

Co-fondateur de VirtualSociety - Docteur en Informatique
Nicolas est à l'origine du projet VirtualSociety, et est chargé du développement et de la communication de VirtualSociety
Après un doctorat en robotique autonome auprès de Safran Electronics & Defense, Nicolas s'est lancé dans la création du studio de jeux vidéos Cats & Foxes.

Aucun commentaire

Tu dois être connecté pour pouvoir commenter
Connexion