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.