If you’ve ever wanted to create a game, you might know that some form of coding is required. Coding is, after all, what essentially makes the magic of games happen behind the scenes. So, becoming a game developer, whether professional or as a hobbyist, does require you to learn how to code.
Right now, though, how much you know about coding video games may vary. Perhaps you’ve already dived into coding and understand the basics, but just don’t have the knowledge of how to turn those skills into games. Or, maybe, you’ve literally no idea how to code games at all. Regardless of what skill level you’re at, though, learning how to code computer games is something everything can do!
Throughout this article, we’ll be looking at some of the key questions learning how to code games involves, such as:
- What is code and coding?
- Which languages should I learn?
- Which game engine should I learn?
Regardless, by the end, we hope to provide you the necessary skills to get started on your coding journey. So if you’re ready to learn how to make games, let’s get started!
What is Code and Coding?
To begin, we need to understand the concept of code. Basically, code is a large list of instructions that we give to the computer to execute. There are a few steps along the way for this to happen. First, we have the programmer which is a person who writes code. They write the code inside of an integrated development environment (IDE), which is basically a specialized text editor. Once the code has been written, we can’t just give it to the computer to run since it has no idea of what it’s looking at. Computers at their core calculate and store information physically with 1’s and 0’s (or on and off values).
So although a set of code may be legible for us as humans, a computer is none the wiser. In order for the computer to understand our code, we need to compile it. Compiling basically means converting the written text, to 1’s and 0’s (machine code). Once at that basic level, the computer can understand and execute the code.
Below is a sample of pseudocode – coding logic that doesn’t necessarily refer to any specific language. This sample executes when a hypothetical player takes damage from an enemy.
subtract damage from health
if health less than or equals to 0
First thing to know, is that code is read from the top down. A computer reads code one line at a time. First, we subtract the damage from the player’s health. Then we check to see if the player’s health is less than or equals to 0, and if so – game over.
In the real world, we have many different types of languages and the same goes for coding. When starting out, you’ll need to choose a language. Something to note, is that once you learn one coding language, others are either already understandable or easy to learn. This is because pretty much all languages share the same core concepts, just with different syntax (coding grammar). Now let’s go over some of the most popular programming languages, which can then be used to create games.
- One of the most used languages in computing. C++ is a powerful language behind many programs, games and game engines.
- Pros: widely used in many game engines such as Unreal and many other AAA ones.
- Cons: generally harder to learn compared to other languages on this list.
void myGame ()
int number = 5;
cout << "How to Code a Game";
- C# is a language generally used for scripting inside of a game engine.
- Pros: used in the Unity and Godot game engines.
- Cons: not as widely used outside of games compared to the other languages on this list.
void myGame ()
int number = 5;
Console.WriteLine("How to Code a Game");
- Python is considered the easiest language to learn, since the syntax is simple and very readable.
- Pros: very readable, dynamically typed and has many learning resources.
- Cons: has disadvantages in speed, mobile and memory.
number = 5
print("How to Code a Game")
- Pros: most used programming language, many learning resources and easy to learn.
- Cons: not used in a lot of game engines.
function myGame ()
var number = 5;
console.log("How to Code a Game");
You may not be able to understand the code examples, but you should be able to notice that they are all relatively similar in structure. C++ and C# look very similar and a programmer who already knows one of those languages can probably understand the other – with only a bit of learning required to begin coding with it.
When making a game, there are two routes. First, you can create your own game engine from scratch. This gives you finer control over the end product but takes quite a lot of time and requires in-depth knowledge about the language your using. If your’re beginning your coding journey by having an interest in creating games, then I highly recommend using a game engine. This is a piece of software or coding framework which gives you the tools to create games. It handles the rendering, physics and overall management of a game. You’ll often hear people asking: what is the best game engine? Well there’s no such thing really as the best game engine. Each has its advantages and disadvantages, so let’s have a look at a few:
- One of the most popular game engines out there for beginners, Unity gives you to tools to create pretty much whatever type of game you want. 3D, 2D, VR, AR, multiplayer, etc.
- Coding Language: C#
- Pros: most popular game engine, large amount of learning resources, very versatile.
- Cons: compared to the other engines, Unity has disadvantaged graphics and 2D.
- Unreal Engine
- Unreal has a focus on graphics and is used by many AAA studios.
- Coding Language: C++
- Pros: graphically amazing, used by AAA studios.
- Cons: large game file sizes.
- Godot is an open-source game engine with a heavy community focus. It’s similar to Unity in what you can create and is constantly growing.
- Coding Languages: GDScript (similar to Python), C#, C++
- Pros: open-source, lightweight, versatile, excels at 2D.
- Cons: less feature rich compared to other engines, not a large amount of learning resources.
- Phaser is an open-source framework for Canvas and WebGL games.
- Cons: limited to what platforms you can build to.
- GameMaker has been around for quite some time and is great for creating 2D games.
- Coding Languages: GML, C++
- Pros: great 2D, large amount of learning resources.
- Cons: uses its own custom language.
- Pygame is a framework for games made with Python.
- Coding Language: Python
- Pros: lightweight Python framework.
- Cons: Python is not generally used for game development.
So there’s a list of various game engines. I’d recommend you do some research on them, try them out and just see what you like. At the end of the day, what you’re most comfortable with is generally the best option.
But if you want a good all-rounder engine that’s beginner-friendly and has an active community, go with Unity.
Begin Your Coding Journey
Now it’s time for you to begin your coding journey. When learning to code/program, the best way to learn… is by coding. Watch videos, read books, and do your research to gain knowledge. Yet in order to gain an understanding of code, you’ll need to jump in and give it a go. Start small with your games and programs. I’d recommend starting with a simple retro game like Pong or Breakout before moving into anything too complex. However, with a go-getter attitude, everyone can learn to code games and create the game of their dreams!
Below is a list of various resources where you can begin your coding journey.
- Intro to Programming Bundle
- Unity Game Development Mini-Degree
- Unreal Game Development Mini-Degree
- Learn Python Programming by Making a Game
- Unity 101 – Game Development and C# Foundations
- Phaser 101 – Introduction to Game Development
- Python 101 – Introduction to Programming
- How to Program in C# – by Brackeys
- How to Program in C++ – by The Cherno
- How to Program in Python – by Microsoft Developer
- How to Program in GDScript (for Godot) – by Godot Tutorials
- How to Program in GML (for GameMaker) – by Let’s Learn This Together
- How to Code a VR Game
- How to Code an AR Application
- A Parent’s Guide to Teaching Coding for Kids
- Coding for Kids: Languages and Project Ideas