7 langues de développement de jeux Unity à apprendre: quel est le meilleur?
Added 2019-03-07
Développer des jeux n'a jamais été aussi simple. Les plates-formes de développement de jeux telles que Unity permettent de créer de tout, du simple jeu de plateforme 2D au jeu de tir à la première personne en 3D entièrement détaillé. Unity est gratuit pour les petits développeurs et de nombreux tutoriels expliquent comment utiliser au mieux l'éditeur pour prototyper vos idées.
Apprendre à utiliser le programme Unity ne vous mènera que jusque-là. Le véritable noyau de votre jeu sera le code qui détermine son comportement. Il peut être difficile de savoir quelle langue apprendre pour le développement de jeux - mais dans le cas d’Unity, c’est simple.
1. Le meilleur choix: C #
Pour ceux qui débutent avec Unity ou pour ceux qui ont déjà une connaissance de la programmation orientée objet, C # est le bon langage à apprendre pour Unity. En fait, C # est le seul langage intéressant pour la plate-forme, et à juste titre.
Unity utilise Mono, qui est une implémentation multi-plateforme du framework .NET de Microsoft. C # est la langue principale de .NET et toutes les bibliothèques de Unity sont construites avec du code C #. Dire que C # est le langage de l'Unité ne serait pas une exagération. Unity a clairement indiqué qu’ils considéraient que C # était le seul langage à utiliser avec le moteur.
Avec l'introduction de la Système de travail C # et ECS , Unity pousse de plus en plus loin ce que l'on peut faire avec C #, et le nouveau compilateur Burst le rend plus rapide que jamais.
2. L'alternative actuelle: JavaScript
Unity prend également en charge JavaScript, appelé UnityScript. Depuis sa publication, JavaScript est côte à côte avec C # en tant que langage de développement Unity très complet. La référence de script Unity avait un exemple de code en C # et JavaScript pour la plupart des éléments de la bibliothèque.
Cela était utile pour les développeurs issus de JavaScript, car malgré les différences de structure de code, ils pouvaient utiliser une syntaxe familière. Il y avait cependant un problème.
Bien que UnityScript semble similaire à JavaScript, ce n’est pas le cas. UnityScript a des classes, ce que JavaScript n’a pas. Les fonctionnalités de JavaScript telles que la déclaration de variables multiples et les points-virgules facultatifs ne sont pas disponibles dans UnityScript.
De manière cruciale, la recherche de l’aide JavaScript sur les projets Unity a toujours été source de confusion, car la plupart des gens l’appellent JavaScript plutôt que UnityScript. Les résultats à la fois pour la conception Web et le développement de jeux sont flous, et la différence entre les langages est un sujet de discorde pour les développeurs JavaScript purs.
Peut-être sans surprise, Unity a annoncé son intention de retirer le support de UnityScript, et il existe maintenant un calendrier en place pour le déclasser . Vous pouvez toujours utiliser JavaScript avec Unity, mais sachez que cela va finir, pourquoi voudriez-vous?
3. L'ancien troisième choix: Boo
Dans les premiers jours d'Unity, il était possible d'utiliser Boo, un langage semblable à Python. Ce n’est peut-être pas surprenant que Rodrigo B. De Oliveira, Le designer de Boo , a travaillé pour Unity. Le langage est compatible avec .NET et Mono et serait entièrement implémenté avec le moteur de jeu. Qu'est ce qui ne s'est pas bien passé?
Pas assez de gens l’utilisaient, supposant probablement que c’était simplement pour essayer d’imiter Python. Au fil du temps, Unity a abandonné la prise en charge de Boo et les modifications à venir apportées à UnityScript rendront tous les anciens scripts de Boo inutiles dans Unity. Certains pourraient considérer cela comme une opportunité manquée, Boo étant une excellente tentative de syntaxe de type Python pour la programmation .NET.
Les amoureux de Python ont une autre option, cependant.
4. Le choix étrange: IronPython
En bref, vous devrez télécharger le Bibliothèques IronPython de GitHub et référencez-les dans votre projet C #. Cela vous permettra d’appeler des scripts Python à partir de scripts C #, à l’instar de toute autre bibliothèque. IronPython permet également de appeler des bibliothèques .NET depuis Python . Aussi utile que cela puisse paraître, étant donné que Unity repose sur C #, cette fonctionnalité n’aide en rien.
IronPython - et IronRuby, son projet associé reliant C # au langage de programmation Ruby - sont des projets fantastiques, mais ils ne sont pas pratiques à utiliser avec Unity.
5. Le choix intéressant: Lua
L’une des meilleures implémentations d’un langage externe pour Unity est MoonSharp - un interprète Lua. Ce projet n’est pas conçu pour remplacer le C # en tant que langage, mais plutôt en tant que pont. Le cas d’utilisation idéal de MoonSharp serait d’ajouter de manière à ce que les joueurs de votre jeu créent des mods de jeu dans la langue lua.
Vous pouvez également l'utiliser pour décrire les objets et les niveaux de conception séparément du code de votre jeu principal.
Si vous codez déjà en C # et recherchez un moyen intéressant d’interfacer votre code, MoonSharp mérite d’être examiné. Comme il est disponible gratuitement sur Unity’s Asset Store , vous pouvez l’importer directement dans vos projets.
6. Meilleur langage pour les plugins: C / C ++
Malgré la solide bibliothèque Unity et tous les outils disponibles fournis par C #, vous pouvez parfois vouloir vos propres plugins. Les raisons principales pour lesquelles les gens optent pour les plugins incluent la vitesse ou l'accès à une base de code déjà écrite dans une autre langue. La construction de ces scripts dans des plugins DLL enregistre le remaking code et peut améliorer les performances dans certains cas.
Dans la plupart des cas, C ++ sera le langage utilisé pour la création de plug-in, mais C fonctionnera tout aussi bien. Tant que le code est créé dans une DLL, il peut être placé dans le dossier du plug-in de Unity et référencé dans le code. Cependant, si vous êtes déjà à l'aise avec le codage en C / C ++, il est probable qu'apprendre en C # serait une tâche relativement simple!
7. Nouvelle langue pour les plugins: Rust
La rouille est une langue très animée. Les programmeurs expérimentés adorent cela pour la quantité incroyable de contrôle qu’il leur donne tout en évitant les pièges de l’écriture dans des langages moins sûrs comme C ++. Rust a été créé par Mozilla en 2009 afin de permettre aux développeurs de développer rapidement des logiciels hautes performances.
Bien qu’il ne soit pas possible d’écrire directement Rust dans Unity, vous pouvez accéder aux fonctions et méthodes écrites en Rust à partir de votre code Unity. Jim Fleming explique comment le faire en détail dans son post sur Medium .
Si cela vous semble familier, c’est une autre façon de créer des plug-ins natifs. En exploitant la capacité de Rust à s’interfacer avec d’autres langues, vous pouvez appeler les fonctions de Rust directement à partir de code C # à l’aide du logiciel Unity. DllImport attribut. Naturellement, il y a plusieurs étapes entre lire le post de suivi de Jim en plus de bien comprendre les FFI (interfaces de fonctions étrangères) est conseillé!
Un choix simple
L’attitude de Unity à l’égard de toute langue non C # est claire, et les améliorations constantes apportées à Unity reposent sur cette volonté. Ajoutez à cela l’amélioration continue de C # en tant que langage par Microsoft et l’apprentissage du développement de jeux C # pour Unity est une évidence.