All Game Designers Should Learn to Code
Since starting my journey in the games industry, I felt like one cog of a bigger machine. I had it in my mind that I needed a team to make a game, similar to how it usually goes with movies, and I spent years without challenging this thought. I took this belief as an absolute truth and ran with it.
Because of this, I spent years believing I didn’t need to learn programming. After all, that’s what programmers are for.
What changed my mind
With time, I started to get frustrated by my small impact on game design. Sure, I wrote a lot of documentation and presentations, conducted playtests, wrote down feedback, did some QA, helped manage the project, did a lot of business-related tasks, and even worked directly inside Unity to implement and balance gameplay content (without any coding). Still, something was missing.
It was tough to explain to programmers in detail how I wanted some mechanics to work, especially since I didn’t know how to code myself. Also, I could see the number of small design decisions programmers were making while writing code, and it frustrated me that I had no impact on those.
So, one day, around 2018, I decided to take time to learn how to program games.
Of course, programming wasn’t alien to me. I used Unity daily, but only superficially. I struggled at the beginning, but I eventually got there. It was one of the best professional decisions I ever made.
This article aims to convince you to learn it (if you haven’t already) and give you some tips on how to start.
Let’s start with a few reasons why it’s important to learn programming:
All game developers should know how to code
Programming is useful for almost everyone working in game development.
If you’re a game designer like me, it helps you understand your game’s systems and mechanics in detail and enables you to prototype your ideas or tweak the game’s code directly when necessary.
For artists, animators, composers, or sound designers, knowing how to code helps you implement assets or even build tools to create them.
Producers with hands-on game development experience (including programming) have a much clearer vision of the project, like what tasks are necessary and how long each takes.
Also, coding knowledge helps everybody communicate and collaborate better with programmers. It makes you a much more complete professional.
Building your portfolio is harder when you don’t know how to code
To break into the games industry, you need to build your portfolio. This means developing and releasing several (usually small) games to gain work experience and prove to potential employers that you have what it takes to work for them.
Video games are multi-disciplinary. You need at least game design, art, programming, and audio skills to create a simple game. If you don’t have one of those skills, you’ll depend on at least one other person to finish a game.
Finding other students/beginners to team up and make games together is often difficult when you’re just starting. It is not impossible, but it is very unreliable.
As a beginner, I was part of many unfinished projects because my teammates abandoned them mid-development. I didn’t have programming or art skills to finish them, so I had to move on and look for new teammates and projects.
That process slowed me down. Looking back, I could’ve built a good portfolio quicker if I had the basic skills. I could’ve made several small games and prototypes with the time and energy I put into “making a team work.”
“But I’m a creative person. I can’t/shouldn’t code.”
Learning how to code will unleash your creativity, not limit it.
I often see a similar argument with musicians and sheet music. Some people believe that learning to read sheet music somehow harms creativity. I’ve met tons of people who believe this. Curiously enough, none of them knew how to do it. I’ve never met a person who can read sheet music recommending not to learn it or saying it harmed their creativity. Yeah, you don’t need it to become a successful musician. That’s a fact. But if you are a professional musician or intend to become one, if music is your job, your main source of income, and, most importantly, your passion, why would you not learn how to read sheet music? It’s not hard. You can learn the basics in a week or so. Granted, it takes some time to get good at it, but just learning the basics opens up an entire universe of knowledge. I see no reason not to do it.
It’s the same situation with code. If you’re making video games for a living, how can you justify not taking the time to learn a bit of programming?
Also, people overrate how hard it is. I’m not saying it’s easy, but it’s not that complicated, either. It’s super hard to become a great programmer. It takes a lifetime. But knowing the basics–enough to build prototypes and small games, especially with all the modern tools and engines–is doable for almost everyone.
Now, let’s move on to some tips based on my learning experience. But first, remember that everybody is different. What worked for me won’t necessarily work for you.
Beware of learning paralysis
My first instinct was to buy and watch a few online courses, and I did just that. My plan was to watch them, “learn the basics,” and then apply what I learned by making my own game.
That’s basically how it went, but there was one big problem: the “I now know the basics” feeling never really hit me, and I suspect that happens with many people.
So, my tip is: don’t get stuck in an infinite loop where you never start making your first game because you don’t feel confident enough, and you just keep watching courses indefinitely. Studying a bit before you start programming is good, but eventually, you must apply what you’ve learned in a “real-life” project.
Watch one or two courses, read a book, or maybe try one of those interactive courses. Then, just get out there and try to make a simple game you designed, even if you don’t feel confident enough.
It’s hard to evaluate if you know the basics without trying to code yourself. And when I say trying to code, I mean doing it on your own, and not one of those courses where you follow along with the teacher, repeating what they are doing. In my opinion, this type of course takes almost the problem-solving out of the equation. You’re not thinking for yourself. You’re just repeating what another person is doing.
I’m not saying you should never try one of those courses. They are fine and help you get used to coding, the programming language, and the engine. I’m just saying that you shouldn’t confuse it with actually sitting down, designing a small game, and trying to program it entirely by yourself.
Google everything!
It is ok to look for help online! Everybody does it all the time. Do you want to make your character jump? Google it. It’s always a great starting point.
I used to feel guilty whenever I did it. I thought that “real programmers” never did it. I thought they knew everything by heart. However, I realized it was normal after talking to some experienced programmers. Even experienced programmers use the internet to help with even the simplest problems. You should also do it without feeling guilty!
But where to start?
The number one question I see on the internet. “Should I learn X or Y first?”
Honestly, I don’t think it matters as much as people think it does.
By now, I’ve developed games using several different engines and programming languages, including proprietary ones. There are differences between them. Each has its pros and cons. But learning new stuff is much easier once you reach a certain programming and game development knowledge level. You already know the basics of how to make games. It’s just a matter of learning the specifics of each technology.
There are industry considerations, though. You might want to learn the most popular engines first to get a job quicker. When I wrote this article (end of 2023), most game design job postings I saw online required Unreal or Unity experience. I personally like Godot better, but it’s undeniable that there are far fewer Godot opportunities compared to the two most popular engines.
But then again, that’s not a big deal. It’s okay to start with a less popular engine (for whatever reason, maybe you think it’s easier) and then learn one of the popular ones.
If you are already familiar with an engine, I’d start with that one. For example, if you’re an artist working at a company that uses GameMaker. Maybe you already know how to navigate it, import assets, and tweak variables, but you don’t know how to write code for it. That’s already a great start! It will be a lot easier for you to learn how to program using it.
Practice, practice, practice
Like most things in life, it’s essential to practice programming. You get rusty if you spend a long time without doing it. Also, there are a lot of ideas and techniques that I only actually learned with practice.
In my day-to-day job as a game designer, I’m not always programming. Sometimes, I go through extended periods where I just don’t need to. That’s why I always have a small side project I’m working on by myself, to keep practicing and learning new things. The trick with these side projects is to be patient and consistent. If you can dedicate even 30 minutes of work per day, you’ll see some cool results after a few months of work.
Documentation is your friend
When learning a new engine or programming language, the documentation is my best friend, along with the occasional forum/Reddit post or YouTube video. Getting familiar with an engine’s documentation is super helpful and will save you a lot of time.
That’s one of the reasons why I like Godot so much–I just love its documentation. It’s so comprehensive and easy to browse.
Cheatsheets, wikis, and other reference guides are also useful. I can’t do anything in Pico-8 without an open tab with a cheatsheet.
I still love books
Lastly, I really enjoy studying through books. There are great books on programming, engines, and programming languages.
I know it’s hard (for the majority of people) to take the time to read books in this crazy dopamine-rich era we live in, but it’s an incredible way to learn.
The trick is to be patient and understand that books are long-term commitments. Each will take you days, weeks, or months to complete. But it is such a rich learning experience that the time invested is worth it.
Just do it
Again, I really recommend learning it. It was a game-changer for me, and I believe it will be helpful for anyone who works or wishes to work in the games industry. Just get out there and start!