As a programming instructor I often get asked by students and graduates what the best resources are for learning to write games with C# and Unity. This article is my current best recommendations for learning game development with Unity.
Everything I mention below is something I have tried myself and benefitted from, so keep in mind this list will be biased towards people like me who:
- Already know the C# programming language
- Learn best by accomplishing small projects with guidelines and support but some creative freedom and room for experimentation
- Benefit from having art, music, sounds, and 3D models already provided
- Benefit from timeboxed projects to minimize scope creep
My personal philosophy is that learning game development should be similar to building a LEGO kit. You should have a collection of pre-made pieces and instructions on assembling them, but the freedom to experiment and try different configurations and seeing how those changes affect the end result.
I believe game development is a hands-on activity, so I prioritize courses and projects over books, though I have read most major books on Unity game development to supplement my knowledge.
The first resource I like to push people towards is Unity's free Learning Pathways.
These pathways are a collection of videos and projects built to teach you a series of skills related to a role on a game development team.
At the time of this writing, there are 4 currently available pathways:
- Unity Essentials focusing on the basics of the Unity editor and how you can use it to build things
- Junior Programmer focused on component scripting and working in the gamedev industry
- Creative Core covering the engine's handling of materials and presentation resources
- VR Development focused on building VR applications in Unity
Of these I have completed the Unity Essentials and Junior Programmer pathways and benefitted from both of them, though I found Unity Essentials to be far more beneficial.
Bottom line: My number one recommendation for devs new to Unity is to complete the free Unity Essentials pathway.
If you complete the Unity Essentials pathway, take another pathway or move on to the next section of this article.
Game Design and Development with Unity Specialization
If you're willing to pay for a game development course, I strongly recommend Brian Winn's wonderful Game Design and Development with Unity 2020 specialization via Coursera and Michigan State University.
This specialization is a series of 5 courses with video lectures and downloadable projects. These projects contain pre-made assets you can use to build your own games following the course's structure. You then submit them for review and other people play your game and let you know what they liked about it.
Usually when I take a Coursera course I try to fly through it as quickly as possible, but in this case I found myself taking the maximum amount of time to really explore each project and build a tiny game I was happy with.
As a result, I had a number of working games ready to share after completing the specialization and a digital certificate (with my name misspelled due to some Coursera bugs at the time). More importantly, I had the skills and confidence I needed to try something bigger if I wanted to.
Unity Certified Programmer Specialization
This is another Coursera specialization or series of courses, and the lead instructor is again through Michigan State University. In this case, Jeremy Gibson Bond takes you through a tour of the various features of the Unity game engine with an eye towards taking and passing the Unity Certified Associate: Programmer certification exam.
I declined to take the certification since it did not fit my personal goals, would take time to study for, was expensive, and would require regular renewal. However, I did get a large amount of value from going through the study materials as part of these courses.
Unfortunately, it appears that this specialization is no longer offered by Coursera as of early 2023. However, if it resurfaces or migrates to another platform, I would recommend it.
Complete C# Unity Game Developer 3D Course
My final recommendation is the blandly-named Complete C# Unity Game Developer 3D Course via Udemy and GameDev.tv.
Like most Udemy courses, this one is non-interactive meaning it can be completed just by watching a series of videos without actively applying your knowledge in projects. This makes the course potentially less powerful than the Coursera options listed above unless the learner actively practices skills while watching the course.
While my recommendation will always be something very hands-on with Unity, I find this course to be well-executed. I'm not alone as the course has nearly 200,000 purchasers, a 4.7 star rating, and over 30 hours of content at the time of this writing.
The course is listed at $139.99 at the moment, but a good general rule of thumb for any Unity course is to wait until it goes on sale before buying it (you won't need to wait long).
Those are my current recommendations for the best resources for learning Unity. These things have helped me get deeper into Unity game development and I've gotten real value from each one of them.
A common theme you'll find in these is this:
- Get expert instruction from people passionate about what they do
- There is no substitute for active hands-on learning
- To maximize learning, focus on arranging the content and how it fits together instead of building the content yourself
- Use small timeboxed projects to come up with a good result and move on to the next project to continue learning
People who follow my content will notice that I'm writing more about Unity recently. This is because I want to be a resource for those looking to get into Unity development and because I want to marry my two passions: artificial intelligence and software development.
My hope is that future content will help illustrate AI principles in fun and engaging game settings and that as I share more about Unity more people will benefit from AI, game development, and programming knowledge.