Moteur de jeu

Transcription

Moteur de jeu
Éleve 1
Éleve 2
Éleve 3
Éleve 4
Éleve 5
Éleve 6
Moteur de jeu
Nous allons faire des recherches et tester plusieurs moteurs de jeu afin de trouver celui qui répondra le
mieux à nos besoins. Pour ce faire, nous allons examiner les quatre engins de jeu suivants:
● ShiVa3D (édition Web)
● Torque 3D
● Unity 3D
● Unreal Engine 4
selon les besoins de notre type de jeu, les compétences requises en matière de programmation, les platesformes que supporte chaque moteur et les caractéristiques spécifiques à chacun.
Type de jeu
Notre jeu, est de type course à obstacles, puisque Travis, le protagoniste, doit
éviter les obstacles qui vont se dresser sur son chemin, et de type collecte, puisque Travis doit récupérer
des pièces de train afin de pouvoir passer au niveau suivant. La caméra, qui suit un train, avance à une
vitesse qui est définie par le jeu selon divers paramètres (nombre de pièces ramassées, quota atteint,
etc.), donc il nous faut un moteur de jeu qui ait une caméra flexible et dont les paramètres soient
facilement programmables.
ShiVa3D (édition Web): ShiVa a été utilisé pour des jeux de tir à la première personne, ainsi que des jeux
de tablettes. L’ «IA» des caméras dans ShiVa est basée presque entièrement sur le scripting, puisqu’il s’agit
de caméras préprogrammées soit pour un jeu à la première personne soit pour un jeu à la troisième
personne que l’on ne fait qu’ajouter à la scène. Pour avoir une caméra comme nous le voudrions, il
faudrait donc changer beaucoup de paramètres à même le code; ce qui n’est pas idéal.
Torque 3D: Torque 3D était initialement plus orienté vers le jeu de tir à la première personne et est assez
performant pour les jeux de course. Cependant, dans les plus récentes versions de Torque 3D, il existe
plus de modes de caméra, dont le mode «OrbitObject», qui ressemble au type de caméra dont nous avons
besoin en ce que la caméra regarde toujours vers un objet particulier sans que le joueur puisse y faire quoi
que ce soit. La caméra reste néanmoins assez difficile à manipuler comparée à d'autres moteurs qu’on a
testés.
Unity 3D: Unity 3D nous laisse libres avec la caméra: il donne l'occasion aux développeurs de la positionner
comme bon leur semble, un peu comme dans Maya et avec quelques lignes de script, il est rapidement
possible de l’assigner à n’importe quel objet dans la scène pour que cette dernière suive l’élément (par
exemple, un personnage). De plus, certains jeux qui ressemblent à ce que nous voulons faire ont été faits
dans Unity, donc nous avons la certitude que c’est possible.
Unreal Engine 4: Unreal Engine 4 offre des modèles («templates») de jeu, dont un qui ressemble à ce
qu’on voudrait avoir (vue d’en haut vers le bas). Ces modèles sont compatibles avec les «blueprints»
(expliqués plus tard dans la section Programmation) et grâce à ce système qui nous permet de modifier
des paramètres sans avoir à écrire de code, nous pourrions modifier la caméra pour avoir exactement ce
qu’on veut assez facilement.
Programmation
Il n’y a personne dans notre équipe qui connaisse beaucoup la programmation. Il nous faut donc un
moteur de jeu qui ne nécessite pas des lignes et des lignes de code pour réaliser une simple action.
ShiVa3D (édition Web): ShiVa3D utilise le langage script Lua (très utilisé dans l’industrie du jeu vidéo:
World of Warcraft, Minecraft, Garry’s Mod), mais offre également la possibilité de programmer ou de
compiler le Lua en C++. Le scripting est utilisé de manière assez extensive, ce qui n’est pas l’idéal pour
nous.
Torque 3D: Torque 3D utilise le C++, ce qui implique qu’il serait plus difficile de programmer les fonctions
de notre jeu. On n’a pas trouvé de méthode visuelle (comme dans Unity et Unreal Engine 4) pour
programmer.
Unity 3D: Unity 3D supporte le Javascript, le C# (C-Sharp), l’Unityscript (semblable au JavaScript) et le Boo.
Unity 3D est doté d’un plugin nommé «playMaker» qui est une autre forme de programmation. PlayMaker
est une forme de programmation plus visuelle et rapide qui peut être beaucoup plus simple à utiliser pour
des débutants comme nous. La programmation ne consistera donc pas en des lignes et des lignes de code.
Cependant, ce plugin est payant, mais il reste abordable à seulement 45 dollars.
Unreal Engine 4: Unreal Engine 4 serait une option intéressante parce que, bien qu’il utilise le langage de
programmation C++, on peut aussi utiliser le nouveau «Blueprint visual scripting». Celui-ci consiste, en
gros, en une interface dans laquelle nous pouvons créer, modifier et ajuster les éléments de jouabilité (les
comportements du niveau et des objets, l’UI, les entrées-sorties, etc.) à l’aide de nodes. Cela veut dire
que nous pouvons créer notre jeu sans avoir à toucher une ligne de code. De plus, cette interface nous
rappelle le «Work Area» dans Maya que nous avons déjà vu lorsque nous avons créé un rig la session
passée en Animation III.
Plate-forme
Comme nous l’avons écrit dans le document de design du jeu, nous voulons dans un premier temps
distribuer notre jeu sur PC et si notre jeu reçoit de bonnes critiques, nous aimerions plus tard le rendre
disponible pour iOS et Android.
ShiVa3D (édition Web): Malheureusement, les options de plate-forme pour ShiVa3D (édition Web) sont
très limitées, puisque ce moteur ne permet de publier les jeux qu’on y fait que sur navigateur Internet.
Torque 3D: Torque 3D offre d’exporter nos jeux sur PC et navigateur Web. Donc, nous ne pourrions pas
le rendre disponible pour iOS ni pour Android.
Unity 3D : Unity 3D est très attrayant en ce qui a trait aux plates-formes. En effet, Unity 3D est capable de
supporter les plates-formes suivantes: iOS, Android, Windows Phone 8, Blackberry 10, Windows,
Windows Store Apps, Mac, Linux, Web Player, PS3, PS4, PlayStation Vita, PlayStation Mobile, Xbox One,
Xbox 360 et Wii U. Donc, non seulement Unity 3D comble nos besoins, si jamais nous voulons publier
notre jeu sur encore plus de plates-formes que celles que nous avions prévues (PC, iOS et Android), Unity
3D nous laisserait le faire facilement.
Unreal Engine 4: Unreal Engine 4 répond également à nos besoins, puisqu’il supporte les trois platesformes que «Train hors de contrôle!» risque d’utiliser (Windows PC, iOS et Android).
Les caractéristiques du moteur
À part les caractéristiques dont nous avons déjà parlé, il y en a plusieurs autres qui sont d’une grande
importance pour nous. Cela inclut, entre autres:
● les coûts
● les droits de publication
● la facilité à trouver de l’information sur le moteur
● la compatibilité avec les fichiers que nous risquons d’utiliser
● la possibilité d’avoir le visuel désiré (nous voulons que les éléments dans notre jeu aient
l’air «cartoon»)
ShiVa3D (édition Web): Tout d’abord, ce moteur de jeu est offert gratuitement sur le site de ShiVa3D
pour une période non-limitée. Malgré la disponibilité de nombreux tutoriels et du forum sur le site web,
la communauté de ShiVa est assez limitée en termes d’information accessible. Au moins ShiVa3D est
compatible avec Maya, il suffit d’exporter la sélection en utilisant le fichier COLLADA (.dae). Finalement,
cet engin de jeu permet d’avoir des graphiques à l’air «cartoon».
Torque 3D: Garage Games offre une version gratuite du moteur Torque 3D. De plus, il est possible
d’utiliser le logiciel sans avoir besoin de l’installer, ce qui est pratique si l’on doit travailler sur différents
ordinateurs. Par contre, l’information est plus ou moins facilement accessible, ce qui peut rendre son
utilisation plus difficile, sans compter que la majorité des tutoriels concernent les jeux de tir à la première
personne. Du côté de la compatibilité, Torque 3D permet l’importation de fichiers .fbx, mais il faut installer
une extension au moteur. Sinon, le moteur permet l’importation de fichiers .dae et .dts. Idéalement, si
nous choisissons le moteur Torque 3D, nous devrions utiliser COLLADA (comme pour ShiVa3D). Enfin, il
est possible de suivre des tutoriels pour avoir du «cel shading» et/ou des contours sur les objets de la
scène afin d’avoir un rendu qui s’approche de l’effet «cartoon» que nous recherchons.
Unity 3D: Un des points forts d’Unity, c’est qu’on nous offre une version gratuite qu’on peut installer chez
nous et qui est déjà installée dans les ordinateurs du collège. De plus, nous avons la chance de distribuer
et vendre notre jeu. Un autre avantage d’utiliser Unity, c’est qu’il est très connu et utilisé. Ceci est
avantageux pour nous, puisque cela signifie qu’il existe une grande communauté active d’utilisateurs sur
laquelle on peut compter en cas de besoin. De ce fait, il existe de nombreux tutoriels sur YouTube qui
peuvent nous être très utiles pour faire notre jeu, sans compter le site d’Unity 3D qui offre plusieurs
tutoriels et énormément de documentation sur le logiciel. Un autre avantage non négligeable d’Unity,
c’est qu’il est capable de lire les types de fichiers qui sortent de Maya (.mb et .ma) directement en plus
de prendre également d’autres types de fichier (.fbx, .obj, etc.). Avec Unity 3D, il est possible d’avoir le
visuel désiré pour notre jeu qui est «cartoon» grâce au «toonshading». Finalement, Unity 3D est doté de
plusieurs plugins qui facilitent l’utilisation de l’engin de jeu et sa compréhension.
Unreal Engine 4: Récemment, Unreal Engine 4 est devenu gratuit pour les institutions académiques. De
plus, nous pouvons commercialiser notre jeu et nous ne devons payer à Epic 5% de nos revenus que si
notre jeu fait plus de 3000$ par trimestre. Si nous avons besoin d’information, il y a pas mal d’options qui
s’offrent à nous: de la documentation officielle, des tutoriels, une section questions et réponses dans
AnswerHub, un wiki et des forums. UE4 est compatible avec Maya grâce au type de fichier FBX; cependant
le FBX qu'utilise l’importateur d’UE4 est FBX 2013 et utiliser une version différente peut causer des
incompatibilités (si on possède une version ultérieure de Maya, il est possible d’avoir la version FBX 2013
en changeant les options d’export FBX). Il existe plusieurs tutoriels (dont un par Epic) qui permettent
d’avoir des graphiques stylisés, de type «cartoon», donc c’est certain que nous pouvons avoir le visuel
désiré avec ce moteur.
Conclusion
Après nous être renseignés sur plusieurs moteurs de jeu (ceux présentés ici et d’autres) et après les avoir
testés nous-mêmes, en pesant le pour et le contre de chaque moteur, nous avons décidé que la meilleure
option pour nous et notre jeu serait de prendre Unity. En effet, ShiVa et Torque ne satisfont pas à tous
nos besoins (difficulté en termes de programmation, absence de support pour les plates-formes désirées,
rareté de l’information, etc.). Unity et Unreal Engine 4 semblent combler à nos besoins tous les deux et
étant donné que UE4 est récemment devenu gratuit pour nous, les deux moteurs semblaient des aussi
bons choix l’un que l’autre. Ce qui nous a fait préférer Unity à UE4, c’est le fait que parmi les quatre
moteurs dont on a parlé, UE4 est le seul qu’on n’ait pas pu essayer réellement puisqu’au moment d’écrire
ces lignes, il n’était toujours pas installé à l’école et on ne nous avait pas donné le code nécessaire à
l’installation chez nous, alors que Unity, on l’a essayé à fond (il y a même un d’entre nous qui a fait un
mini jeu) et nous sommes donc sûrs qu’il nous convient. Voilà donc pourquoi nous avons choisi Unity.

Documents pareils