In this series of videos, you’ll learn how to develop a video game project using Unity 5, with Agile development practices in mind.
In Tier 1, we’re going to touch on Unity’s programming fundamentals to quickly deliver a prototype. For that, we’re going to be developing a 2D space shooter. All the sprites, the sounds and other assets are provided, so that we can focus on programming.
This training is for anyone who wants to learn object oriented programming for video games. It has introduction chapters that people familiar with Unity can skip. All the programming basics are covered, and we touch on all major features of Unity. The training focuses on programming, and uses a 2D game project to keep things simple and stay away from fancy graphics features that already are well documented. Whether you know programming or not, whether you’re new to Unity or already have some experience, this training will give you the good practices and help you organise yourself in the chaos of a video game project.
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 Object Oriented Programming. 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.
I started to put this training course together a while back for a Master Class held with Unity, and decided to take it way beyond that, as I realised many developers were self-taught programmers, ex artist or designer, looking for that true programming knowledge.
I wanted to emphasise on Agile practices, while this is not an Agile training in itself, because of the huge demand for Agile programmers. Agile Development really is a mindset that you cannot push. From a programmer’s perspective, it’s mostly about letting go of your desire for completeness and architecture awesomeness, and willing to deliver playable software as early as possible. The responsibility given to programmers brings a lot of stress, with which comes the need to foresee, plan and control development. Then any change in the plan becomes a trouble.
Team confidence is key to Agile Development, and confidence comes with knowledge.
The more you know, the more you trust yourself, and the less you doubt.
The less you fear change, the less complex and overthought you need to make your code, and the sooner you deliver a prototype.
This training aims at empowering programmers with enough knowledge to be confident in their capability to react to design changes and always deliver the most business value in the time they’re given.
Now, Agile Development isn’t just about prototyping, and we’ll also touch on Performances, Scalability and Reusability of the code, which is also key to maintain a project.
I really wanted this training to go beyond the usual academic training course. It does have a good share of theory, but everything is put into practice. Its course is well planned and offers a smooth learning curve, while its delivery is more like a live coding session in which I share what comes to my mind as to why I do things along with tips and tricks.
Information you will get:
- Import sprites, including animated sprite sheets, and putting them together in levels and reusable assets.
- Develop a simple multi-platform controller to control a spaceship with both a keyboard and a touch device.
- Build visible game level components with gismos.
- Use visual debugging and vector maths to control where objects appear.
- Setup 2D physics with colliders and rigid-bodies.
- Use the Animator State Machine to drive conditional sprites animations.
- Use MonoDevelop advanced features, such as Tasks, Code Templates and Debugging.
- Know about all C# and Unity features you need to develop a game.
- Save high-score and options settings.
- Use Unity UI system to make a head’s up display and options dialog.
- Use the Audio Mixer to manage audio channels
- Install Unity 5.x
- (Optional) Install Xcode and/or Android SDK
This course is for:
- Artists and/or Designers willing to learn programming
- Game Programmers willing to learn Unity
- Non Game Programmers willing to learn game development