At Mind Candy we use the Unity game engine for some of our games, especially those on mobile. We love Unity – it’s great for rapid prototyping and allows designers and artists to directly create game content, rather than having to go via programmers. We use it for prototyping, game jams and also to create some of our new mobile games!
Why Learn Unity?
Here at Mind Candy we’re spending a lot of time creating new games and we realised a great way to allow more people to get involved is to teach Unity to anyone who wanted to learn it! So back in October 2013 we set up a lunchtime “Learn Unity Club”. The aim is to teach more people how to make games!
We had a few false starts, but we iterated and hit upon what we think is a winning formula, which we are sharing with the world – more on that later!
We started off by watching various video tutorials on Unity. Whilst the videos from Unity themselves are great, other sources varied in quality. We found that videos tended to be good to teach you how to use the editor, but didn’t have good information on game logic and programming. They could also be hard to follow and could be pretty passive, so it didn’t feel like people were really learning. We noticed after a few weeks that we were losing people (as this was an optional lunchtime club) so decided to change approach.
Game Jam to learn?
We love Game Jams and thought that perhaps a more hands-on project would be a good way to learn practical Unity techniques. So in December 2013 we got a group together, generated some random videogame names and set off! But we found that this approach wasn’t successful either. We were spending too much time getting excited by the game concepts and talking about/prototyping game design (even making up a set of cards to test “Intense Baking – the card game”). So we didn’t spend much time actually doing things in Unity. Also it turned out that December was a really busy month, so people didn’t have any time outside of the lunch hour to work on their games. We even saw quite a drop-off in numbers as folks were just too busy.
A winning format!
As they say, the third time’s a charm – at the start of 2014 we decided to take everything we’d learnt from the previous months and reboot Learn Unity Club to a new format.
The basic pitch is “Give us a lunchtime and you’ll learn how to make a game” – seems like a pretty good deal, right? The idea is that we would start each lunchtime less with a pre-prepared unity project which everyone would have on their laptops. The tutor would then step through, building this up until by the end of lunchtime everyone in the room would have a working game that they could then take away and play with more, if they have the time. Each week is self-contained.
A key point is that if you don’t have the time, that’s ok as well – just come back next week and we’ll have another game to make! We’d realised that people often did not have the time or would miss a session, so we wanted to allow people to easily drop in and not feel lost.
The sessions are intentionally very hands-on – you’re always making changes on your own laptop and learning as you do it. A lot of people learn by doing so this method should be effective.
Because we’re building a game in an hour, we don’t want to try and introduce too many new concepts, so we’re aiming for 1-2 new things each time.
Lastly and very conveniently, Unity 4.3 with official Unity 2D APIs came out just at the right time, so we have focused on doing everything in 2D so far. This is really handy as 2D games are much less complex and easier to understand than 3D. It also makes building art much easier as even terrible “programmer art” will do for teaching purposes. It’s also great to be teaching an official Unity API.
So to sum up, the format is:
build a game
learn 1-2 new things
What’s the downside? It’s more work for the course organisers! We couldn’t find any courses for learning Unity2D that exactly matched our needs – not least because Unity2D was so new. However, we did use this excellent 2D tutorial for the first week as a test. http://pixelnest.io/tutorials/2d-game-unity/
To share the load we have two people running the course, myself (Mark Baker) and Scott Mather. We take alternate weeks so we’ve got (in theory) 2 weeks to prepare each lesson.
We’ve had 7 weeks so far and still have a great number of people coming. So we’re very happy with it so far!
Good news everybody!
Because we’ve only created this ourselves because we couldn’t find it elsewhere, we are sharing it with everyone! If you head over to http://mindcandy.github.io/ you will see we have all the starter Unity projects, asset files and step-by-step instructions for each lesson. We plan on adding videos also if you would rather see someone building it and follow along that way.
At the time of writing we have:
Robot Race – a basic button-bashing mini game
Angry Scrawls – stack physics crates and knock them over
Maze Game – escape a 2d maze with animation loops
Angry Scrawls part 2 – adding destruction and enemies
Quacky Ducks – you too can clone Flappy Birds (but please don’t)
coming soon – space invaders!
All this is being released under the MIT license. This means you are free to use it any way you want, even for commercial purposes. The only restriction is that you need to acknowledge us as authors of the work, and that the work itself must always be distributed under the MIT license.
So if you are a school, university, code club or company that wants to use this for training – please go ahead!
We’d love to hear any feedback you have – neither of us are professional educators so its entirely possible we don’t explain things well. Please get in touch via gitlab or comments on this blog.
In coming weeks we’ll be adding more lessons – as we create them and run them at Mind Candy. We’ll also be adding video and featuring lessons on this blog.
If you wanted to get more information and see a 30 minute sample of training, Scott and I both spoke at a recent London Unity User Group meeting:
You can view the slides from the presentation here.
(there will soon be a collection of video guides available on this Google+ page)