Unity3D : le moteur idéal pour créer de jeux !

Merci pour le partage...Share on Facebook6Share on Google+0Tweet about this on TwitterShare on LinkedIn0

Lorsque nous développons, nous nous retrouvons souvent à chercher des moyens de ne pas réinventer la roue. On a ainsi vu fleurir des bibliothèques, des outils et des Framework pour accélérer le développement.

 

C’est particulièrement vrai dans les jeux, domaine qui inclut des bases de beaucoup d’autres : graphisme, physique, intelligence artificielle, géométrie 3D… De tous ces besoins sont nés les moteurs de jeu. Parmi les plus célèbres, on notera Unity3D, que je vous propose de découvrir.

J’écris cet article pour motiver les jeunes à se lancer dans les jeux vidéo. En RDC, les communautés sur le Gaming est inexistences. Après avoir lu cet article, j’aimerai entendre un truc du genre Gaming Lab. à Lubumbashi. Pourquoi pas toi Christian ? Aa haha, moi c’est le Dev web et mobile ma spécialité.

 

  1. Unity3D, c’est quoi ?

 

Unity3D est un moteur de jeu et de prototypage. En d’autres termes, c’est un outil complet permettant de réaliser un jeu vidéo. Il inclut toutes les fonctionnalités nécessaires à cet exercice, comme un moteur de rendu 3D, un moteur physique, des outils mathématiques, de gestion de sons, etc.

Unity3D se distingue de la concurrence par sa simplicité d’utilisation. En quelques heures, il est possible de réaliser un prototype fonctionnel d’un projet, permettant son test et des itérations très rapides.

Cette facilité d’utilisation fait qu’il est de plus en plus utilisé hors de son cadre d’origine : on retrouvera des applications Unity utilisées comme maquette de démonstration dans de nombreuses entreprises, avant une réalisation finale. De plus, sa facilité de prise en main se prête tout à fait à une première approche de la programmation ou de la création de jeux, y compris par des jeunes.

 

Unty3D Demo
Unty3D Demo

 

 

  1. Unity3D en bref

 

Lorsqu’on le lance, Unity3D se présente sous la forme d’un éditeur 3D, et présente d’ailleurs quelques similitudes d’ergonomie avec des outils comme 3ds Max. La raison à cela est simple : le moteur est prévu pour être adapté à tous les métiers qui interviennent dans la conception du jeu, y compris les non techniques. Ainsi, la séparation des différentes parties est nette : il est possible pour un level designer de travailler sans voir une seule ligne de code.

On notera d’ailleurs qu’Unity a été pensé pour correspondre au plus grand nombre : l’éditeur tourne actuellement officiellement sous Windows et Mac (Wine permet de le faire tourner sous Linux, bien que la solution ne soit pas officielle). Mais c’est surtout dans les plateformes cibles qu’il se démarque: moyennant parfois l’achat d’un plugin, Unity3d permet de compiler un même projet pour Windows, Mac, Linux (Ubuntu officiellement), Android, iOS, PS3, Wii, Google Native Client, son propre Webplayer, Xbox360, Windows Phone 8, BlackBerry 10, Wii U et le Windows Store !

L’interface principale d’Unity est donc totalement utilisable en point & click, elle permet de prendre en main facilement l’outil et de réaliser immédiatement un premier rendu visuel.

 

  1. Combien ça coûte ?

Un aspect essentiel du choix de technologies en entreprise est le prix. Là encore, Unity3D propose une certaine souplesse, avec différentes licences en fonction des besoins.

Dans la version gratuite d’Unity3D, la majeure partie de ses fonctionnalités sont exploitables y compris pour des applications commerciales. Cela inclut également le support des différentes plates formes mobiles. Néanmoins, certaines limites peuvent être contraignantes dans la version gratuite : ainsi, certains outils avancés (comme les filtres de lumières ou de sons, ou la possibilité de choisir l’écran d’accueil) ne sont pas présents, et la licence gratuite n’est pas utilisable pour des entreprises ayant plus de 100 000$ de chiffre d’affaires.

Pour les personnes ayant besoin d’outils plus complets, il est donc possible d’opter pour la licence «Pro ». Celle-ci est disponible de deux façons différentes. La manière la plus classique est un achat direct : pour 1140 euros (1500 dollars), vous pouvez acquérir la licence Unity3d pro. Cette licence ne concerne que les applications PC classiques : pour avoir les outils pro pour iOS, Android ou BlackBerry, il faudra compter la même somme de 1140 euros en supplément.

Autre possibilité : Unity propose également un abonnement de 57 euros (75 dollars) par mois, avec une durée minimum de 12 mois. Là encore, cet abonnement ne contient que les versions PC, le même prix devant être ajouté pour bénéficier des fonctionnalités pro sur les différents OS portables.

 

  1. Sous le capot

 

En fonction de la plate-forme cible, Unity3D va adapter ses outils techniques de manière à favoriser la compatibilité. Ainsi, une compilation pour Windows utilisera Directx 11, tandis que sous Linux, on se tournera vers OpenGL. Ce choix est fait automatiquement par l’éditeur et ne demande aucune manipulation de la part de l’utilisateur.

Du côté de la programmation, Unity3D propose différents choix. Il est possible de coder ses propres shaders pour personnaliser les matériaux appliqués aux objets 3D, en utilisant du GLSL ou du CG. Pour le reste du développement, il est possible de choisir entre du Boo (un langage exotique à la syntaxe proche de Python), UnityScript (officiellement désigné comme du JavaScript, il s’agit en fait d’un mélange personnalisé basé sur ECMAScript) et du C#.

Dans les trois cas, les développeurs ont accès à la totalité de la plateforme mono (en se basant sur .NET 2.0). Notez que si votre équipe a le choix entre ces trois langages, il est vivement conseillé de se tourner vers le C#. En effet, la souplesse de l’UnityScript le rend plus sensible aux erreurs (de casse en particulier). De plus, pour obtenir des performances équivalentes entre UnityScript et C#, vous devez impérativement ajouter une notion de typage à tout votre code, ce qui fait disparaître une grande partie de son intérêt.

Pour travailler, Unity3D inclut MonoDevelop. L’avantage de cet éditeur est de proposer nativement le support des différents langages proposés par Unity, y compris les outils de création de shader. Néanmoins, une alternative intéressante peut être de se tourner vers Visual Studio (particulièrement si on a choisi de développer en C#).

Enfin, pour ce qui est du travail en équipe, plusieurs solutions s’offrent à nous. Pour les utilisateurs de la version Pro d’Unity qui auraient également choisi la licence équipe, l’éditeur intègre son propre gestionnaire de version, l’Asset Server, qui utilise PostgreSQL comme backend. Pour les autres, quelques configurations permettent d’utiliser les projets Unity3D avec n’importe quel outil de gestion de version, comme git ou svn.

 

  1. Comment ça marche ?

 

Un projet Unity3D est composé uniquement de deux dossiers : Assets et ProjectSettings (d’autres sont créés automatiquement par l’éditeur mais ne contiennent que des fichiers de cache). Tous vos fichiers seront centralisés dans le répertoire Assets, ProjectSettings contenant les paramètres de l’éditeur.

Il n’y a aucune structure imposée pour le répertoire Assets, bien que certains sous-dossiers aient un but particulier. En revanche, il est toujours conseillé de modifier les fichiers à l’intérieur de l’éditeur pour éviter des problèmes de liaisons. A l’intérieur d’un projet, l’élément de base est la Scène.

Une scène Unity va correspondre à un niveau de jeu, ou plus généralement à un état complet de votre projet. D’une scène à l’autre, peu d’informations seront conservées. Chaque scène doit donc correspondre à une unité d’évènements de votre projet. Une scène contient des GameObject. Ces GameObject sont des instances regroupant plusieurs classes ayant des caractéristiques communes. Ils peuvent être tirés de vos assets (ce sera par exemple le cas pour les modèles 3D, qui placés sur la scène vont devenir des GameObject).

Les GameObject contiennent un certain nombre de composants. Chaque composant est un script (une classe, dans le cas de scripts C#) qui détermine un comportement de l’objet.  On peut ainsi créer des GameObject en assemblant une liste de composants prédéterminés : à partir d’un GameObject vide, on ajoutera ainsi un Mesh Filter et un Rigidbody pour en faire une sphère affectée par la gravité.

Une grosse partie du travail du programmeur Unity3D consiste donc à créer de nouveaux composants pour répondre aux demandes du level designer, qui n’aura plus qu’à l’appliquer aux objets qui l’intéressent pour composer sa scène. En utilisant les mêmes outils et les mêmes principes de développement, il est même possible de modifier l’éditeur Unity3D lui-même !

On peut ainsi simplifier encore plus le travail des membres non-techniques de l’équipe en adaptant l’interface aux outils qui sont créés pour eux.

 

 

  1. Conclusion

 

Le développement avec Unity3D est rapide et simple. Son intérêt pour le prototypage est très sensible, dès les premières utilisations. De plus, la simplicité et l’ergonomie de l’éditeur permettent d’utiliser le même environnement pour les équipes techniques et non-techniques, simplifiant le processus de création.

J’ai lu ce livre quand même pour ma culture web, c’est quand même une reference qui peut vous aider. Je vous signale que vous devez avoir des notions avancées en C#.

 

Christian Kas

Spécialiste de la réussite et du bien-être.

Laisser un commentaire

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