C# est l’un des langages de programmation les plus populaires qui est utilisé pour créer des jeux dans le moteur de jeu Unity. Les expériences (jeux, apps AR/VR, etc) construites avec Unity ont atteint près de 3 milliards d’appareils dans le monde et ont été installées 24 milliards de fois au cours des 12 derniers mois. Nous nous sommes entretenus avec Harrison Ferrone, ingénieur logiciel, développeur de jeux, technologue créatif et auteur du livre « Learning C# by Developing Games with Unity 2019 ». Nous avons parlé des raisons pour lesquelles C# est utilisé pour la conception de jeux, de la récente version Unity 2019.2 et de quelques conseils et astuces pour ceux qui développent des jeux avec Unity.
Sur C# et le développement de jeux
Pourquoi C# est-il largement utilisé pour créer des jeux ? Comment se compare-t-il à C++ ? Comment C# est-il utilisé dans d’autres domaines tels que le développement mobile et web ?
Je pense qu’Unity a choisi d’aller de l’avant avec C# plutôt que Javascript ou Boo en raison de sa courbe d’apprentissage et de son histoire avec Microsoft. .
Selon mon expérience, C# est plus facile à apprendre que des langages comme C++, et cette accessibilité est un énorme attrait pour les concepteurs de jeux et les programmeurs en général. Avec le développement mobile Xamarin et les applications web ASP.NET dans le mélange, il n’y a vraiment pas de quoi arrêter le langage C# de sitôt.
Qu’est-ce que les scripts C# ? En quoi sont-ils utiles pour créer des jeux avec Unity ?
Les scripts C# sont les fichiers de code qui stockent les comportements dans Unity, alimentant tout ce que fait le moteur. Bien qu’il y ait beaucoup de nouveaux outils qui permettront à un développeur de faire un jeu sans eux, les scripts restent le meilleur moyen de créer des actions et des interactions personnalisées dans un espace de jeu.
Conseil de l’éditeur : Pour commencer à savoir comment créer un script C# dans Unity, vous pouvez parcourir le chapitre 1 du livre Learning C# by Developing Games with Unity 2019 de Harrison Ferrone.
Pourquoi Harrison a écrit son livre, Learning C# by Developing Games with Unity 2019
Dites-nous ce qui vous a motivé à écrire votre livre Learning C# by Developing Games with Unity 2019. Pourquoi le développement de jeux Unity est-il un bon moyen d’apprendre le langage de programmation C# ? Pourquoi préférez-vous Unity à d’autres moteurs de jeu ?
Ma principale motivation pour écrire ce livre était double. Premièrement, j’ai toujours voulu être écrivain, donc marier mon amour pour la technologie avec un rêve de toujours était une évidence. Deuxièmement, je voulais écrire un livre pour débutants qui resterait fidèle à un public de débutants, en les gardant toujours à l’esprit.
En ce qui concerne le choix des jeux comme moyen d’apprentissage, j’ai constaté que faire quelque chose d’intéressant et de nouveau tout en apprenant un nouvel ensemble de compétences conduit à une plus grande absorption du matériel et à plus de plaisir global. Unity a toujours été mon moteur de prédilection car son interface est très intuitive et facile à prendre en main.
Vous avez 3 ans d’expérience dans la création d’applications iOS en Swift. Vous avez également un certain nombre d’articles et de tutoriels sur le même sujet sur le site web de Ray Wenderlich. Récemment, vous avez commencé à bifurquer vers le C++ et Unreal Engine 4. Comment vous êtes-vous lancé dans la conception de jeux et le développement Unity ? Qu’est-ce qui vous a poussé à vous intéresser à la construction de jeux ?
En fait, je me suis d’abord lancé dans la conception de jeux et le développement Unity, avant toute l’expérience d’iOS et de Swift. C’était ma matière principale à l’université, et même si je n’ai pas pu trouver un emploi dans l’industrie du jeu juste après avoir obtenu mon diplôme, je m’y suis accroché comme à une passion.
Sur le développement de jeux
La dernière version d’Unity, Unity 2019.2, comporte un certain nombre de fonctionnalités intéressantes telles que ProBuilder, Shader Graph et effets, Animation 2D, Burst Compiler, etc. Quelles sont les fonctionnalités que vous préférez dans cette version ? Quelles sont vos attentes vis-à-vis d’Unity 2019.3 ?
Je suis vraiment enthousiasmé par ProBuilder dans cette version, car c’est un énorme gain de temps pour quelqu’un d’aussi déficient sur le plan artistique que moi. Je pense que des outils comme celui-ci vont égaliser les chances pour les développeurs indépendants qui n’ont pas forcément accès aux constructeurs d’environnements ou de niveaux.
Quels sont les trucs et astuces essentiels qu’un développeur de jeux doit garder à l’esprit lorsqu’il travaille dans Unity ? Quelles sont les choses à faire et à ne pas faire ?
Je dirais que la plus grande chose à garder à l’esprit en travaillant avec Unity est l’architecture de composants sur laquelle il est construit. Lorsque vous écrivez vos propres scripts, pensez à la façon dont ils peuvent être séparés en leurs fonctions individuelles et structurez-les ainsi – dans un but précis. Il n’y a rien de pire que d’avoir un énorme script C# gonflé qui fait tout sous le soleil et de l’attacher à un seul objet de jeu dans votre projet, puis de réaliser qu’il a vraiment besoin d’être séparé en ses composants.
Quels sont les plus grands défis aujourd’hui dans le domaine du développement de jeux ? Quels sont vos conseils pour ceux qui développent des jeux en utilisant C# ?
Toucher le bon public est toujours le défi numéro un dans toute industrie, et le développement de jeux n’est pas différent. C’est particulièrement vrai pour les développeurs de jeux indé, car ils doivent toujours être conscients de la personne pour laquelle ils font leur jeu et conçoivent et programment délibérément leurs jeux en conséquence. En ce qui concerne les conseils, je dis toujours la même chose – apprenez les design patterns et les méthodologies de développement agiles, ils vous ouvriront de nouvelles voies pour la programmation professionnelle et la gestion de projet.
Rust a été présenté comme l’un des successeurs de la famille des langages C. L’état actuel du développement de jeux en Rust est également assez encourageant. Que pensez-vous de Rust pour le développement de jeux ? Pensez-vous que les principaux moteurs de jeux comme Unity et Unreal prendront en charge Rust pour le développement de jeux à l’avenir ?
Je n’ai aucune expérience avec Rust, mais il est peu probable que les principaux moteurs comme Unity et Unreal adoptent un nouveau langage en raison du coût énorme associé à un changement de cette ampleur. Cependant, cela laisse également la possibilité de développer un autre moteur autour de Rust à l’avenir qui cible les jeux, le mobile, et/ou le développement web.
À propos de l’auteur
Harrison Ferrone est né à Chicago, IL, et a grandi un peu partout. La plupart du temps, vous pouvez le trouver en train de créer du contenu pédagogique pour LinkedIn Learning et Pluralsight, ou de faire de la rédaction technique pour le site Web de Ray Wenderlich. Après quelques années en tant que développeur iOS dans de petites start-ups et dans une entreprise du Fortune 500, il a embrassé la carrière d’enseignant et ne l’a jamais regrettée. Au cours de cette période, il a acheté de nombreux livres, acquis quelques chats, travaillé à l’étranger et s’est toujours demandé pourquoi Neuromancer ne figurait pas sur davantage de programmes de cours. Vous pouvez le suivre sur Linkedin, et GitHub.