Cette formation est la première d’une série de formation sur Unity, axée sur le travail d’équipe entre designers, graphistes et programmeurs.
Chaque formation de cette série touche à un sujet particulier de l’industrie du jeu. Cette formation porte sur les “design patterns”, les schéma d’architecture logicielle, et en particulier sur le model-view-controller et comment l’implémenter dans Unity.
En partant de rien, nous allons créer un jeu de rythme, tel que Guitar Hero ou Tap Tap Revenge. Nous commencerons par la structure des données et mécanique de jeu, qui concernent le design et la programmation, puis nous verrons l’affichage des données et retours visuels, qui concernent le graphisme et la programmation.
Nous allons commencer par une vue d’ensemble de certains design patterns connus (MVC, MVVM, MVP). Puis nous construirons la représentation graphique avec les outils d’interface de Unity, avant de travailler sur l’architecture du jeu.
Nous allons structurer le modèle de données (Model) du jeu, puis nous l’afficherons et l’éditerons à l’aide d’un inspecteur de propriétés personnalisé. Nous verrons aussi comment enregistrer des données dans l’éditeur à l’aide de la classe ScriptableObject.
Nous travaillerons ensuite sur la vue piste (View), en la remplissant d’objets d’interface enregistrés plus tôt, et nous animerons le défilement de la vue piste.
Nous travaillerons alors sur le contrôleur de jeu, récupérant les entrées (input) du joueur pour les utiliser dans la mécanique de jeu, et mettre à jour l’affichage.
A la fin de cette formation, les graphistes sauront ce qu’il est possible de faire avec les composants d’interface en 3D, les programmeurs et designers sauront créer et manipuler des modèles de données spécifiques à un jeu, depuis l’éditeur pour les utiliser au “runtime”.
Vue d'ensemble.
Fred Moreau, développeur de jeu, instructeur Unity et coach Agile.
Vue d'ensemble de la séries d'ateliers de formation à Unity.
Vue d'ensemble de cette formation.
Vue d'ensemble du contexte du projet de jeu "Beat" et présentation des designs patterns Model-View-Controller, Model-View-ViewModel et Model-View-Presenter.
Construction de l'affichage (Interface 3D).
Dans cette vidéos, nous allons construire la représentation de la vue "piste" à l'aide des outils d'interface (UI) de Unity.
Dans cette vidéo nous allons enregistrer les "vues" sous forme de Prefabs pour les réutiliser par la suite.
Données d'une piste (Model).
Commençons par travailler sur le modèle de données, la forme d'une piste de jeu.
Nous devons à présent séparer les données (la musique) du composant (le lecteur).
Nous pouvons maintenant créer un nouveau type de ressources pour stocker nos pistes de musique de jeu.
Pour travailler sur les composants suivants, nous avons besoin d'échantillons de données. Avant d'en créer dans l'éditeur, commençons par en générer aléatoirement.
Ajoutons à présent un inspecteur personnalisé (CustomInspector) pour afficher et manipuler les données.
Représentation d'une "piste".
Nous allons à présent créer le composant de représentation visuel de la piste (TrackView), et pouvoir remplir la vue avec les modèles d'interface, à partir des données.
Avant de travailler sur le contrôleur, ajoutons un peu d'animation à la vue piste.
Controleur du jeu.
Nous allons maintenant créer le contrôleur de jeu, et utiliser des entrées (input) personnalisées en utilisant des "Keycodes".
Il nous faut ajouter une mécanique de tempo pour ce jeu basé sur le rythme.
Ajoutons à présent une référence à la note courante afin de pouvoir ensuite la comparer à la note jouée.
Il est temps de rendre le jeu "jouable" en liant les entrées avec les données.
Pour que le jeu soit "jouable", il faut que le défilement de la piste soit synchrone avec le contrôleur.
Avoir à lire dans la console pour savoir si l'on a bien joué ou non n'est pas très pratique. Ajoutons un retour visuel directement dans la vue.
Conclusion.
Nous en avons terminé de ce prototype. Passons en revue ce que nous avons appris.
Leçons Bonus
Quelques autres de mes formations en français, pour aller encore plus loin avec Unity.