In September 2015 I decided I wanted to make a video game. Having no experience with game development, let alone any experience with programming of any kind, I sensed quite a daunting journey ahead of me. So I took to the internet.
After attempting several search queries with varying results–how to learn video games, learn to code 3D games, game programming for beginners, and on and on–I realized that a starting point wasn’t going to be as easy to find as I would have thought. Most of my searches resulted in information that was either 1) more advanced than beginner (what the hell is a “declaration” or a “namespace” I asked myself) or 2) a thin sales pitch that I feared didn’t care if I was truly a beginner or not. I simply could not find a reliable “start here, then go here, then go here” type document; I wanted a classroom syllabus. Well, not wanting to pay for such a class, I decided to go out on my own to forge my own road map. This road map/syllabus is what you see here.
Below I’ve compiled resources that I’ve ACTUALLY USED (capitalized to not understate the importance of personally vetting all resources). This list will evolve and grow as I absorb more material. Check back often. Remember, this is just a list of resources (with some minor context). If you have any comments or suggestions, contact me.
I originally tried GameMaker many years ago, but my ambitions were too high (and misguided) for me to take it seriously. It felt weak, with it’s focus on drag-and-drop functionality. Well, after trying Unity3D for a while, I returned to GameMaker specifically for its simplicity. But don’t let that fool you. GameMaker isn’t simple, especially if you aren’t familiar with coding concepts.
Make an Action RPG in GameMaker Studio
Benjamin Anderson has been teaching GameMaker Studio for many years. His presentation is casual, which is great. This particular course starts out slow and easy (at least for someone like me with an understanding of basic concepts of coding logic). However, it begins to move very quickly about halfway through. I found myself simply typing his code verbatim without fully understanding it. I’ll likely go back and do this course a second time.
Think of this book, by Benjamin Anderson, as an off-line, abbreviated version of the GameMaker Studio GML online documentation. Some make see this as a fault. However, this is exactly what I was looking for when I purchased this book. I found myself, during my normal-day-to-day, away-from-GameMaker time, wishing I had a quick resource I could access in order to fill that downtime with learning opportunities. As someone new to GML, simple language and syntax issues were difficult for me. This book allowed me to make use of otherwise wasted time. For those wanting a printed version of the GameMaker online documentation, this is a suitable, but thin (by comparison) compromise.
Initially, I skipped trying to learn about C#. Instead I dove right into Unity (a 3D game making engine). After a few lectures in the course I was taking I decided to take a step back to learn some fundamental C# before I continued. While I don’t believe this C# knowledge is imperative to learning Unity, my learning style is such that I want to know as much as possible about everything before moving on.
C# Fundamentals for Absolute Beginners by Bob Tabor
A perfect series for absolute beginners (the title isn’t just clever). The instructor, Bob Tabor, speaks slowly and articulately, but never in a condescending way. Also, he is sure to point out concepts that are important to acknowledge, but aren’t important to fully comprehend at the beginner’s stage. I appreciate this, as it allows me to compartmentalize knowledge and focus on what truly constitutes “beginner level.” The course also stays true to its beginner namesake. Many resources attempt to be a full C# course, covering everything from beginner through intermediate to advanced. C# Fundamentals for Absolute Beginners stays firmly at the beginner level, so those with no prior C# (or any computer programming language) knowledge will never feel left behind. Likewise, if you are an intermediate user, you can safely avoid this series.
Pong & Object Oriented Programming
Illustrates what object-oriented programming is by using simple diagrams. This video does require a basic understanding of coding to follow.
Learning the basics of Unity
Introduction to Unity with C# by Steven Nikolic
I’ve started (and stopped) a few different ‘intro to Unity3D with C#’ courses. This is the only one I stayed with to the end (so far; I have a few more on my list that I haven’t started yet). The instructor, Steven Nikolic, is incredibly articulate which is important when communicating something that depends on specific language like, well, a new (computer) language. He also has an amazing way with analogies, too, which may not seem very important, but when coming at foreign information without any context (I have no programming experience) analogies help create a common reference point for both the instructor and the student.
Steven seems to prefer to do as much “in code” (that means via scripts, for other newbs like me, who may be reading this) rather than via the Unity inspector, which I very much appreciate. I want to learn fundamentals and important concepts that will translate to other IEDs and game engines; I don’t just want to learn how a specific piece of software works.
Projectile Physics – How Do Bullets Work In Video Games?
Player Mechanics – Harmony in Good Game Design
Player Mechanics – How Mario’s Mushroom Changes Everything
Enemy Design – What can we learn from Doom?
Level Design – How Mario Makes You a Better Player
Verbs – Super Mario’s Hidden Language
Player Choice – How to Make Choices that Matter
Music – Adaptive Soundtracks
Learning about the gaming industry
Game development isn’t all about typing code and creating assets.
Game Production Basics by Tobiah Marks and Amanda Lange
This short series is a great primer for helping new developers (and even those of us who aren’t even new developers yet) navigate the possibilities of the gaming industry using wide strokes. Don’t expect how-to tutorials or in-depth coding lessons here. Expect instead to learn what the various development team roles are (artist, developer, and designer). Expect very brief overviews of available tools (including a ton of free tools). This series is perfect for someone at the exploratory stage, unsure if they even want to start a game development path. Note: Marks interrupts Lange a LOT, which tends to be very annoying. If you can look past his interruptions, the content is solid.
Game Programming Patterns by Robert Bystrom [WEBSITE/EBOOK]
Initial thoughts: The book seems to be about the importance of organizing code. I anticipate this resource will be very useful as I learn more about coding fundamentals.
Microsoft Visual Studio and MonoDevelop (free) – IDEs (Integrated Development Environments) used for the actual writing and programming of C# (and any other programming language).
Unity 3D (free) – This is used for the actual writing and programming of games.
The resources listed here have been abandoned only because they no longer serve my aims. For example, C# resources have been abandoned because I have shifted (as of September 2017) my game dev focus to GameMaker Studio. For resources I’ve tried and do not recommend, see the Condemned Resources section below.
“Ropes” Game Developer Diary [VIDEO SERIES]
Initial thoughts: Absolutely perfect for new developers trying to come to terms with the intimidation of using an IDE and/or game engine for the first time. Nic, a developer at Delphinium Games, documents his journey as he uses develops a game using Unity for the first time. It’s great to see how a veteran developer looks at Unity, where he is impressed by it, where he feels it’s lacking. This allows me to better understand how Unity fits within the world of other game engines while also allowing me to divorce my step-by-step “tutorial mind” from the larger, conceptual mind of a veteran.
Learn to Code by Making Games – The Complete Unity Developer Course [VIDEO SERIES] Initial thoughts: This seems like a fairly comprehensive course, containing 12 sections with over 51 hours of content. The course nurtures the beginner very well until about section 6 (creating Laser Defender, a Galaga clone), where Brice Fernandez takes over as the primary lecturer. Brice doesn’t break things down as much as Ben, which could deter some people.
Twenty C# Questions Answered [VIDEO SERIES]
As the title suggests, this course answers 20 C# questions culled from various online forums. While this series would likely be great for intermediate to advanced C# users, beginners will be a bit in over their heads.