This training is the first of a series of training on Unity, focusing on team work between designers, artists and programmers.
Every training in this series will touch on a specific subject of the game industry.
This course will touch on design patterns, and especially the model-view-controller pattern and how to implement it with Unity.
We're going to start from scratch to build a Guitar Hero, or Tap Tap Revenge like game.
We'll touch on data structure and gameplay mechanics, which overlap design and programming, and data-gameplay graphics, which overlaps art and programming.
We'll begin with a quick overview of the known patterns (MVC, MVVM, MVP)
Then, we'll mock up the view with Unity UI tools, before we work on the game architecture.
We'll design the Track Data structure (Model), then we'll display and edit it with a Custom Inspector, and randomly generate sample data to work with. We'll touch on reusable data with the ScriptableObject class.
We'll then work on the Track View, populate it with prefabs UI objects, and animate it.
We'll then work on the GamePlay Controller, that'll handle inputs from the Player and all Game Play mechanics, and update the view so the Player knows how he's doing.
At the end of the course, artists will know better what they can do with UI components, and programmers and designers will know how they can author custom game data, right from the editor, for use at runtime.
In this video, we're mocking up the 3D Track View using Unity UI Tools.
In this video, we're saving UI objects as Prefabs to populate the view with later.
Let's work on the Model, the shape of the data.
We need to separate the data (the music) from the component (the music player).
We can now create a new custom asset type to store our music tracks.
To work on other components we need some sample data. Before we can author the data, let's generate some randomly.
To generate and author custom data within the Editor, let's implement a Custom Inspector for the Track class.
We now need to create a new TrackView component.
Now that we have sample data and a Track View mockup, we can populate the view with the Prefabs.
Before working on the Controller, let's add some motion to the Track View.
We're now going to create our Controller class, and use custom inputs using Keycodes.
We need to implement some tempo mechanics for this rhythm based game.
It's now time to make the game "playable", matching the inputs with the track data.
For the game to be playable, the Track View must sync' with the Controller.
Reading in the console to know how we're doing isn't so rewarding. Let's add some visual feedback to the View.
It was brought to my attention that beatsPerSecond and secondsPerBeat were carrying the opposite meaning.
In this video, I'm showing how to refactor (rename) a member throughout the solution, along with another quick update I added since I recorded the videos.
Coach and Consultant - Design & Development, Business, Training
[ English ]
With a strong technical expertise and a taste for design, I've had the opportunity to lead teams of creative people through development of innovative projects.
I'm passionate about learning and training, I started giving training early and have been involved in training certification programs. When you work in this industry, sharing your knowledge is not only a duty, it's the opportunity to learn even more.
I'm a self-taught developer myself. I work with Unity since 2011, and was very lucky to meet with mentors who taught me a great deal about OOP. That's a lot to learn about when your background is not in engineering, though, I figured that if I could do it, anyone can.
[ Français ]
Je suis passionné par l’apprentissage et l’enseignement. J’ai donné mes premières formations très tôt et me suis impliqué dans les programmes de certifications de grands éditeurs. Quand on travaille dans cette industrie, partager ses connaissances est plus qu’un devoir, c’est aussi le meilleur moyen d’apprendre d’avantage.
Je suis développeur autodidacte. Je travaille avec Unity depuis 2011 et j’ai eu la chance de rencontrer d’excellents mentors qui m’ont beaucoup appris sur la programmation objet.
C’est beaucoup de choses à apprendre lorsque vous n’avez pas un parcours d’ingénieur. Cependant, si j’y suis parvenu, n’importe qui peut en faire autant.