Présentation de Unity

Introduction

Unity technologies, anciennement Over the Edge I/S, est une entreprise de jeu vidéo fondée en 2004 au Danemark. Après un premier jeu sur mac qui ne rencontra pas le succès, les fondateurs David Helgason (CEO), Nicholas Francis (CCO), et Joachim Ante se rendirent compte de l’importance des moteur de jeu et des outils de développement et créèrent ainsi Unity. Unity a été créé dans le but de « démocratiser le développement de jeu vidéo » et pour se faire de rendre unity très accessible même pour les débutants. Unity est compatible avec la plupart des plateformes, dont les produits apples, pour lesquelles, Unity fut l’un des premiers moteurs compatibles avec I-Phone. En 2010, fut lancée le "unity asset store", qui permet aux utilisateur de vendre leur matériel comme des textures, des bouts de codes, de l’audio etc... La question que nous pouvons désormais nous poser est : comment Unity se présente t-il ? Nous verrons tout d’abord ce que nous permet unity pour ensuite voir ses différentes utilisations, qui ne sont pas uniquement liées au jeux vidéos.

Partie 1 : Qu’est ce que nous permet Unity ?

Pour commencer il nous faut savoir ce qu’est la base d’Unity et ce qui le différencie d’autre moteur de jeu comme Unreal Engine. Comme son concurrent, Unity se présente sous une interface comme celle ci-dessous :

(on notera qu’il s’agit la d’une interface vierge, que l’on obtient lorsque que l’on lance Unity pour la première fois). Sur cet écran on peut voir, au centre, la zone d’édition des scène, ce qui correspond à un écran pour un jeu, par exemple, le menu du jeu, il s’agit d’une scène, ou bien les différentes zones d’un jeu, chacun de ces éléments est une scène, basiquement tous les écrans de chargements correspondent à un changement de scène. Unity dispose de la fonctionnalité « Instant game Preview » ce qui signifie qu’il est possible de tester le jeu en même temps qu’on le crée, cette option est présente dans l’onglet « game » juste à coté de l’onglet scène. A gauche de notre écran, il y a l’onglet Hiérarchie, c’est la que tous les objets de la scène courante que ce soit joueur, ennemi, sol, lumière ou autre sera noté, à contrario de l’onglet projet juste en dessous qui contient des éléments dans tous le jeu, c’est éléments sont les assets c’est à dire les modèles des éléments du jeu, leur textures , les audios etc.… Pour simplifier, les assets c’est ce qui est visible. Et enfin à droite, l’inspecteur, c’est ici que l’on peut afficher, donner et modifier les informations d’un objet tel que la position, la collision, le comportement etc…. On a enfin l’asset store, qui permet d’aller télécharger et acheté des assets, on peut considérer cette onglet comme optionnel si on sait comment en créer, en effet Unity permet l’intégration de modèle 3D provenant entre autre de Blender, Maya, ou encore Cinema4D. De plus on peut importer a peu près tous les formats les plus utilisées que ce soit image, son (Unity dispose d’une option de mixage audio intégré), vidéo, pour le texte Unity ne lit pas les fichiers .odt ou .doc/docx respectivement de libre office et de Word, mais lit les fichiers de textes brut comme .txt.

Ce qui est important aussi de savoir c’est que malgré son interface qui à l’air vraiment orienté 3d, il est possible de créer des jeux en 2d, on ne travaillera donc plus avec des modèles 3d mais des sprites, cette compatibilité avec le 2d nous aura donné des jeux à succès comme heartstone ou bien cuphead.

Pour ce qui est des performances d’Unity, celle ci sont très bonne, et avec l’aide de bon nombre d’outils permet à l’utilisateur d’optimiser au mieux sa création, ces outils indiquant entre autre, si le jeu dépend plus du processeur ou du GPU, et donnant des conseils sur comment optimiser le tout. Unity utilise la bibliothèque Direct X 11 et pour ce qui est de la gestion des physique, Unity utilise 2 moteurs physique, Box2D pour la.. 2d et Nvidia PhysX pour la 3d.

Changeons maintenant de sujet pour nous intéressée au IA et au pathfinding, en effet Unity nous met à disposition plusieurs outils pour ce qui est de la création d’intelligence artificielle, dont un outil, encore en beta, de machine learning, qui répond au nom de Unity ML Agent, cette extension d’unity fonctionne via une API Python et permet la formation d’agent intelligents grâce à un apprentissage par renforcement et des méthodes évolutives.

Il est aussi important de dire que même si Unity pourrait nous permettre de créer un jeu sans écrire aucune ligne de code, une personne ayant déjà toucher à la programmation sera avantagé, Unity acceptant que l’on rajoute des script en C#.

On parlera enfin de l’outil Unity Analytics, un programme qui permet à l’utilisateur de récolter des données de jeu des joueurs afin d’améliorer l’expérience des dits joueurs.

Partie 2 : Ces différentes utilisations :

Avant de commencer cette deuxième partie, il serait bien de présenter les différentes version d’unity personnel et professionnel. A l’échelle personnel il existe 2 version d’unity, Unity Personal et Plus, et à l’échelle professionnel, il existe Unity Pro et Entreprise. Tous ce qui à été présenté dans la partie précédente est disponible dans Personal, Plus (obligatoire si nous avons des revenus ou des fonds de 100 000$ minimum), nous donne accès à des cours et une assistance, Pro (obligatoire si nous avons des revenus ou des fonds de 200 000$ minimum) nous met en priorité pour l’assistance, nous donne accès à plus de cours, une interface analytics améliorées, plus d’option pour la collaboration et aussi nous donne accès aux versions bêta d’unity et Entreprise est la même chose que Pro, sauf que nous achetons une licence multiple. Cela était important à noté, car nous pouvons désormais affirmer qu’il y a presque autant de possibilité avec Unity à l’échelle personnel que à l’échelle professionnel, c’est juste une question de fond et de revenus.

Maintenant pour ce qui est des utilisations d’unity, la première chose qui nous vient en tête ce sont les jeux, évidemment c’est son but premier. Et on peut dire qu’avec toutes les plateformes sur lequel Unity est disponible, des jeux il y en a plein, on retrouve ainsi beaucoup de jeu mobile (par exemple pour prendre les plus connus, bad piggies spin off des jeux angry bird, ou encore temple run), et pour ce qui est des consoles et des pc (vu que un jeu sur PS4 et XboxOne est toujours assuré de finir un jour sur pc), on a des jeux qui sont fait par des grandes compagnies comme Heartstone de Blizzard ou par des moins grandes compagnies mais qui ont quand même rencontré le succès avec Kerbal Space Program (abrégé KSP) par SQUAD, et nous allons nous attardé un peu sur ce jeu, car il constitue un bon exemple des possibilités d’unity.

Mise en orbite sur Kerbal Space Program

KSP est un jeu de simulation spatiale, mais mis à part les kerbals (les personnages que l’on doit envoyé dans l’espace, qui ressemble à tous sauf à des humains et sur lesquelles les notions de temps et d’age ne sont que des mots), le jeu reste réaliste, nous demandant de faire attention à un grand nombre de paramètres, tel que le poids, la gestion des carburants, la mise en orbite, l’aérodynamisme et bon nombre d’autre éléments, le jeu fut même remarqué par la NASA et une collaboration fut mis en place pour présenter le projet Asteroid Redirect Mission.

Nous avons, dans la première partie, parler des IA avec ML-agent, il faut savoir que Unity Technologies accorde actuellement beaucoup d’importance à ce projet, faisant plusieurs campagnes d’embauche dans ce secteur et ayant récemment (le 26 septembre 2018) annoncé sur leur blog, un partenariat avec deep mind, l’entreprise qui est à la tête du secteur de l’intelligence artificiel, en effet, le moteur Unity est une excellente plateformes pour tester des agents intelligents, car Unity permet la création d’un environnement parfait pour les simulations, avec une complexité physique importantes, permettant des tests complets de ces agents. Comme exemple concret on peut parler de SpaceY, un projet qui apprends à des agents intelligent à faire décoller, voler et faire atterrir une fusée. Le principe est simple, 2 planètes, possédant toutes deux un champs de gravité, sont positionné aléatoirement, (avec une distance raisonnable quand même), le but est que l’agent fasse partir la fusée de la planète 1 pour la faire atterrir sur la seconde. Quand l’expérience fut considéré comme fini par le développeur, le taux de réussite était de 91 %.

Capture d’écran de Space Y

On peut aussi parler des projets VR/AR créer avec Unity, John Riccitiello, le pdg de Unity Technologies, affirme que 59 % des jeux vr/ar sont fait avec Unity, on pourra noter parmi cela Hitman Go édité par Square Enix (qui prouvent encore une fois l’intérêt de unity auprès des Géants du jeu vidéo) ou en plus expérimental Pixel Ripped, un hybride 2D VR.

Mais Unity, ce n’est pas seulement des jeux. Certaines personnes ont utilisé l’outil Timeline, normalement pour des cinématique, pour faire des films, comme par exemple Sonder, un court métrage de 13 minutes avec une qualité d’animation très propre et des chara-design de très bonne qualité.

Une scène de Sonder

Et enfin, Unity possède une utilisation qui au premier abord parait étrange pour un moteur de jeu, c’est l’automobile. En effet, à l’heure actuelle, 8 des 10 plus grandes entreprises automobiles utilisent Unity, mais de quel manière ? Et bien, il y a plusieurs façons, la première est d’utiliser la réalité virtuelle comme moyen de formations des employés, pour par exemple montrer comment on monte un véhicule et ces différents composants, et aussi pour la présentation de leur produits, toujours en réalité virtuel.

On nuancera cependant la notion de formation via unity, car même si très utile, la réalité virtuelle n’est pas le meilleur moyen pour former au montage avec des petits composants comme dans le cas du montage d’un moteur par exemple, et comme le dit Jens Angerer, patron de l’équipe Human Computer Interface chez Audi, « Il faut trouver le bon équilibre entre l’immersion totale de la réalité virtuelle et la présence humaine qu’induit la réalité augmentée. ».

Conclusion :

En conclusion, Unity est un moteur de jeu, accessible même au débutant, mettant à disposition bon nombre d’outil pour créer ses jeux, et bien plus, que ce soit pour la réalité virtuelle, pour des courts métrages (et qui sait, peut-être bientôt un long métrage), ou bien plus étonnement pour l’industrie de l’automobile. Unity à de beau jour devant lui et n’a rien à envier à ses rivales sur le marché, tel que Unreal Engine ou CryEngine.

Guillaume Gioan B1

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *