Unity et le développement de jeux vidéo
Qu’est-ce que Unity ?
1. Introduction
Unity est un moteur de jeu développé par la société Unity Technologies. À son lancement en juin 2005, Unity 1.0 ne prenait en charge que Mac OS X. Un peu plus de dix ans plus tard, Unity 5 permet de créer des jeux ou des applications sur pas moins d’une vingtaine de plateformes différentes. Son adoption auprès des acteurs de l’industrie vidéo ludique a été très forte grâce à la facilité et à la rapidité de création des prototypes. Du côté des indépendants, un très fort pourcentage utilise Unity pour sa facilité de prise en main et la facilité de produire des jeux sur un maximum de plateformes possibles sans avoir à redévelopper entièrement son jeu.
2. Les plateformes supportées
Unity peut se vanter d’avoir l’une des offres les plus conséquentes en termes de plateformes supportées.
-
Pour le bureau :
-
Windows
-
Windows Store Apps
-
Mac
-
Linux/Steam OS
-
Pour les mobiles :
-
iOS
-
Android
-
Windows Phone
-
Tizen
-
Pour les consoles :
-
PlayStation 3
-
PlayStation 4
-
PlayStation Vita
-
Xbox 360
-
Xbox One
-
Wii U
-
Pour le Web :
-
Web Player
-
WebGL
-
Pour la réalité augmentée :
-
Oculus Rift
-
Gear VR
-
Microsoft Hololens
-
Project Morpheus
3. Les licences
Unity propose deux types de licences : une version...
Pour quels projets Unity est-il adapté ?
Unity permet de créer n’importe quel type de jeu vidéo, que ce soit un FPS (First Person Shooter), une simulation de course automobile ou un jeu de plateforme en 2D.
Depuis quelques années, Unity propose de différencier les projets d’application 2D et 3D. L’éditeur offre donc des vues et des actions propres à chacun des types de jeu et le moteur a été modifié, notamment pour tout ce qui touche au moteur physique (collisions entre les différents objets, ajout de force, pesanteur…), pour permettre de meilleures performances.
Pourquoi utiliser Unity ?
Unity s’est fait une place de choix dans le cœur des développeurs grâce à sa rapidité de prise en main. Si l’on regarde du côté de la concurrence, beaucoup de moteurs demandent des compétences poussées dans des langages de programmation natifs comme le C++ ou d’avoir de solides bases en mathématiques.
Dans Unity, il est bien entendu recommandé de savoir ce qu’est une matrice ou un vecteur, mais ce n’est pas indispensable pour pouvoir créer un jeu simple. Grâce à l’éditeur, il suffit parfois de simplement ajouter un objet récupéré dans l’Asset Store (le magasin virtuel de ressources autour d’Unity) et de le paramétrer directement dans l’éditeur, sans une seule ligne de code à écrire, afin de l’animer ou de le personnaliser.
Quels outils utiliser ?
1. MonoDevelop
Unity est configuré pour fonctionner avec MonoDevelop. Cet IDE (Integrated Development Environment) est fourni avec Unity et contient les fonctionnalités principales d’un éditeur de texte et il permet également de déboguer votre jeu.
Pendant l’installation d’Unity, vous pouvez choisir de l’installer ou non si vous êtes sur Windows. Si vous choisissez de l’installer, MonoDevelop sera ouvert automatiquement lorsque vous souhaitez ouvrir un script. Dans Unity, il est possible de désactiver cette association en allant dans le menu Edit - Preferences - External Tools - External Script Editor puis en choisissant l’IDE qui vous convient le mieux.
Pour pouvoir déboguer votre application dans MonoDevelop, l’option Editor Attaching doit être cochée dans la même fenêtre que précédemment. Il faut aussi activer les options Development Build et Script Debugging dans les options de compilation, accessibles grâce au menu File - Build Settings.
2. Visual Studio
Une autre solution est d’utiliser Visual Studio pour remplacer MonoDevelop. Éditée par Microsoft, la version Visual Studio Community 2015 est entièrement gratuite et propose un grand nombre de fonctionnalités et permet aussi l’ajout de plug-ins afin de gagner en productivité. Il est bien entendu possible...
Les bases du fonctionnement du rendu
Unity fournit donc un moteur de jeu ayant sa propre boucle de jeu. Celle-ci est au cœur du moteur et c’est ce qui permet d’afficher des objets à l’écran.
Prenons l’exemple d’un jeu en 3D, comme un RPG (Role Playing Game), ayant un monde riche avec des montagnes, des lacs, des routes mais aussi des personnages, des lumières…
Comment savoir ce qu’il faut afficher à l’écran et comment savoir de quelles couleurs les afficher en prenant en compte les ombres, le champ de vision… ? Cela va donc être le travail du moteur de jeu de créer une frame, ce qui peut s’apparenter à une image, le plus rapidement possible en prenant en compte tous ces paramètres.
La fréquence d’images générée (frame rate), qui se calcule en images par seconde, permet de rendre compte de la fluidité du rendu. Plus ce chiffre est élevé, plus l’animation semble limpide. Le cinéma utilise la norme de 24 images par seconde et la télévision via les deux systèmes PAL (Europe) et NTSC (Japon et États-Unis) utilise respectivement 25 et 30 fps (frames per second).
Un rapide calcul nous permet de comprendre qu’un cycle de rendu est quelque chose de très rapide (40 ms pour le cinéma). Une image doit donc pouvoir être générée...