Advice for self-learning game development
I started learning game development in a dorm room, as an economics major. As an avid gamer, I felt that video games was a powerful medium to tell stories, no matter the genre of game. For example, I was immersed in the lore of Overwatch (multiplayer first person shooter), but also that of Bayonetta (hack and slash).
Later on, I discovered narrative-driven games like Life is Strange, which exist to tell a story (no fighting mechanisms), and visual novels such as Analogue: A Hate Story, which I read for hours and hours, getting lost in its dystopian sci-fi world.
All of these experiences felt like I was living other lives as if they were my own, seeing and layering them with the lens of my own history.
I was inspired to create something of my own.
I started coding in Python with the Ren’Py engine at the time, since it was very beginner friendly, and Analogue: A Hate Story, as well as many other games I was inspired by, used it.
The result was several prototypes, both incomplete and complete. Many years later, I shipped A Summer with the Shiba Inu, my first commercial (for sale) game.
Since the beginning, I had been making the game as a hobby, since I have a full time career in data science. I would have been completely happy if only my friends and family purchased any copies.
However, the game ended up selling ~10k copies when it came out on consoles, which is actually very lucky for someone like me with her first commercial game.
- How I built a game studio from the ground up - lessons on product ownership, development, and creative writing
- How I made a video game and sold 5k+ copies: Introduction to visual novel game engine, Ren’Py
The journey wasn’t easy - for the several summers that I worked on the game, it sometimes felt like I couldn’t get it done. Scope creep and subsequent content cuts happened in cycles, many times over. I scrapped and rewrote many thousands of words of the story script.
But eventually I made it out on the other side, and learned so much during the process of being a self-taught game developer, that I’d like to share.
- 1. Start small
- 2. Experiment with low stakes
- 3. Targeted learning via building prototypes
1. Start small
From the very beginning, reading articles about how people self-learned game development, this piece of advice appeared frequently.
If I had to learn game development all over again, using the following game scope template is what I would recommend to myself.
Scope guide for your very first game dev project
- Make a single level, or scenario/scene. Keep the setting limited to one location (ideally one single room, or room sized environment).
- Make one single gameplay mechanic, such as if a player picks up something, they get 1 point. Creating a “win” condition is welcome, but optional for your first project.
You can then build up from this scope to games with more locations and more mechanics, and eventually your first commercial game (if you want to!) But I’d still keep that first commercial game reasonably scoped… smaller scope is better than not shipped!
While I might have gone a bit overboard with my first commercial (for sale) project, it was still relatively small scope, since it was entirely in 2D, with no fighting mechanisms. I didn’t want to get distracted by other components of game development, such as 3D rigging and complex animation, which I knew would be an entire can of worms.
So it was doable for a studio’s first project, as someone without former experience. Also note: while it was my first commercial game, it was not my first game, by far.
2. Experiment with low stakes
With the scope outlined in the previous section, you can even try out different technologies - think of it as your “hello world” project (but a bit more advanced).
Game jams (hackathons but game dev focused) are a fantastic way to dip your toes in, even if you have no prior experience with an engine or technology at all.
Some well-known game jams:
- Ludum Dare - happens twice a year, online. Participants can submit their games and have others play it.
- TOJam - has been run for 15 years, Toronto based but virtually held. I participated in 2020 and made a game with Unreal engine over the weekend. Here’s how I did it!
Mechanic to pick up items in Unreal engine (TOJam 2020)
Thanks to game jams, I’ve made several playable prototypes with Unreal engine and would be comfortable enough now to use it for a commercial game. However, financially I was not ready to drop money on custom 3D assets, so I used cookie cutter, mostly free, assets.
This is why experimenting in low stakes environments before pushing too far into your “auteur game dev magnum opus” is important, kind of like iterating on an MVP and seeing if it sticks (e.g. you like the engine, it suits your style) before throwing money and time at it.
The creator of A Short Hike, which won the Independent Games Festival 2020 grand prize, had built many experimental game prototypes throughout his game development journey - 20+ games the last time I checked!
Other examples I’ve encountered of successful independent developers having tried many low stakes experiments and prototypes are mentioned in this article about more lessons I learned from game development.
This is why I recommend game jams and low-stakes early projects for a new game developer.
3. Targeted learning via building prototypes
I found that when I only watched online course videos of how to make a game in Unreal engine or Ren’Py, the information got lost very quickly.
This is what I suggest: once you have covered some fundamentals, for example, spent 5~10 hours on a cookie cutter “hello world” type of online course or YouTube playlist, pause for a moment and think of a game design of your own. Then, try to make it.
Iterate on small projects to fill in the gaps with targeted learning instead of passively consuming then forgetting hundreds of hours of content. This is similar to what I always recommend to job seekers in Data Science.
This saves a massive amount of time, since if you want your first game prototype to be of a specific genre (2D platformer), you don’t have to sit through 30 hours of videos on a 3D shooter “just in case”.
If you want your main game mechanic to be using a sword to deduct health points from a stationary enemy, then you can look that up specifically, maybe spending 10 hours learning about that mechanic, instead of sitting through 50 hours of videos on how to implement a chess game, and immediately forgetting it afterwards.
To sum up:
Steps for targeted learning and building your own game
- Follow tutorials until comfortable you can make a small game, then do a project of your own design, as soon as possible. Use the scope I mentioned in the “Start small” section.
- From the parts you struggled with the small game, do lots of targeted research to fill in the gaps. Your next game will then be better, and you’re retaining the information that is truly relevant with targeted learning.
If I had to start all over again, I wish I could have followed the above recommendations. While I have now shipped a commercial game that exceeded all expectations, during my self-learning journey I had gone down some detours, and forgotten a lot of passively consumed information, that barely benefitted me in the long run.
After I became more mindful of project scope, and targeted my learning to specific game mechanics for a game of my own design, my progress sped up significantly.
This is why I share these lessons, in the hopes that it can help you in your self-learning journey as a video game developer!