In this Ultimate Guide to Getting Started with Game Programming, you’ll learn what it takes to become a game programmer. You’ll also learn a firm strategy for getting started with game programming by learning basic programming topics, focusing on engines/libraries, and then honing your skills by creating small game projects.
This guide isn’t the end all be all to learning game programming. However, it should provide you with a good starting point for getting started with game programming.
What is Programming?
“Programming is the art and science of translating a set of ideas into a program – a list of instructions a computer can follow.“
Programmers start with a vision of what they want the computer to do and then by giving the computer instructions in a language that it can understand they get the computer to do what they envisioned.
Though programmers, generally, don’t write programs directly in a language that a computer can understand (such as binary). This is why they must use interpreters or compilers inside of development environments.
Below are two resources for understanding interpreters, compilers, and development environments.
What makes Game Programming Different?
Game Programming is both similar and different to other forms of programming. In general, Game Programmers are looking more at the end product and the “feel” of that product (though at larger studios designers may worry more about the “feel” than programmers).
To this end, game programmers work to build functionality rapidly to test an idea and then try to integrate it into the system (this form of development known as agile development has also become popular in other programming fields).
Over the course of their career Game Programmers may learn a broad range of general programming topics in order to build comprehensive products. On larger teams, game programmers may specifically be making tools for designers to use, graphics for artists to implement, artificial intelligence, or networking and security.
Learn About the World
Game Programmers, like app and software developers, get to learn about the world. Depending on the project you may get to learn more about waves in the ocean or how slingshots fire projectiles. This real-world learning combined with digital application helps to understand some of how the world works and opens up you’re thinking.
Getting Started with Game Programming
Before hopping straight into making games it’s vital that you understand the fundamentals of programming. This means actually starting by picking a language (most likely one that is commonly used to make games) and then practicing computer science fundamentals before getting started with game programming.
Below you’ll learn about a few languages commonly used to make games and different computer science fundamental topics you should understand before advancing into general game programming.
What Programming Language to Start With?
This question is often asked by new programmers, however, the answer is simple.
It doesn’t matter because you should be focused on learning programming (which is more about computer science topics) and less about the specifics of a language.
Later once you’re making programs that need to optimized you’ll need an understanding of a language’s nuances, but for now, all that matters is practicing the basics (which can be done in any programming language). Here are several languages that are used to make modern games.
C# is used in a variety of ways and has become a general cross-platform programming language (thanks to Unity and Xamarin). In general, C# has been used to make a lot of recent indie games (most games made with Unity use C#). In the games industry, C# is used for smaller projects or projects with rapid development schedules.
The most popular language in the games industry. Most major studios and mid-tier studios use C++. It is a little harder to learn than the previously mentioned languages, however, C++ also gives the most access to external code (most programming libraries usually have a C++ port or a way to connect with C++).
What to Learn Before Getting Started with Game Programming?
Below are some general programming topics that are good to know before starting to develop games. It’s not mandatory that you know each topic, however, knowing the topics will help cut down on development time and will give you more tools to work with when you’re making games (letting you worry less about programming so you can focus on the game’s design and feel).
Roadmap to Learning Game Engines
After learning the previously listed topics you can begin to specialize into any game engine or library that you want.
Below are a few different resources that you can use to get familiar with Unity before trying to create your own games.
The Unity Learn website is a great starting point for learning all of the basics of Unity. There are specific sections related to scripting that range from beginner to advanced. You can also find Unity courses which are designed to help get a Unity certification (this certification shows proof of your knowledge and makes it easier to get jobs).
Probably the best Unity Youtuber. Brackeys has tutorials for both beginner and advanced Unity developers. Watching some of his single feature videos (such as high scores and movement) as well as his short project videos will give you a good starting point when trying to move onto creating your own games.
Catlike Coding has some of the best intermediate to advanced Unity tutorials. Their tutorials range from creating a clock inside of Unity to doing procedural hexagonal grid generation. These tutorials may be a bit hard for learners new to Unity, but after getting some Unity experience you’ll definitely want to try out these tutorials.
Below are a few resources that you can use to get used to Unreal before making your own project or games.
The main Unreal website features several different tutorials for learning the basics of Unreal. The other resources listed have more in-depth tutorials and videos, however, the main site is still good for getting unfiltered information directly from the creators of the engine.
On the Unreal Youtube channel, you can find different tutorials, event showcases, and sizzle reels. This channel is great if you ever need inspiration for an Unreal project or want to know more about potential events within the Unreal community. There are also in-depth talks on topics related to Unreal development.
The Virtus Learning Hub Youtube channel seems to be the best resource for directly finding Unreal tutorials. They have plenty of tutorials that cover a wide range of topics from beginner to advanced. They also feature a few projects that you can follow along to.
The following are different resources for learning how to use GameMaker.
The main GameMaker website features several beginner tutorials focused on getting started with GameMaker and learning to code in GameMaker. If you go to the marketplace you can also find different types of template/tutorial projects that you can dissect to learn more about that game genre.
The YoYo Games Youtube channel (the channel of the people who create GameMaker) features extra video focused on GameMaker. You can also find videos of games made with GameMaker to help inspire your game creation.
Arguably the best channel on Youtube for learning GameMaker. This channel has been doing GameMaker tutorials for a few years (and still continues making new content). If you want to grow your GameMaker skills beyond what the main site has to offer Shaun Spalding is the Youtube channel to watch.
Roadmap of Projects to Learn Game Programming
After learning basic programming and adjusting to your game engine or library of choice you should begin to make projects. One of the oldest saying the in the games industry is:
So it’s important to always be making games. Try to avoid jumping from project to project as finishing a game shows to employers or potential teammates that you know how to complete a project. When getting started with game programming it’s easy to want to jump around as you learn new things, but again finishing a game is more important.
When getting started with game programming it doesn’t matter which games you start with. Starting with simpler, smaller games will make it easier to complete projects you start, but you can still learn a lot from attempting to create bigger projects (whether you finish them or not). The following roadmaps are to serve as a guide so if you ever feel like you don’t know what to do next you have at least one resource pointing you in a direction.
To start let’s go over a list of different 2D projects that you can start making once you understand basic programming and have adapted to your game engine/library of choice.
Why 2D First?
It’s easier to start with 3D when getting started with game programming as there is less math you need know. There’s no problem with starting with 3D game development, however, 2D should technically be slightly easier. You also will get to work with images instead of models which can be more complicated for beginner developers.
List of Projects
- Space Invaders
- Create your own Game!
Once you’ve gotten used to making 2D games it should be easy to jump over to 3D games. Again there isn’t much of difference other than math and the fact you’ll most likely be working with models and 3D game objects.
List of Projects
- Third Person Auto Runner
- Third Person Shooter
- Third Person Platformer
- First Person Shooter
- First Person Puzzler
- Create Your Own Game
Now you should have a firm roadmap for how to get started with game programming. This guide was full of advice that the DVNC team believes in, however, we cannot guarantee that it’s the “best way” to learn game programming. There are many different types of learners and strategies for learning game programming.
Remember to just keep creating games and learn from each project. By constantly creating and striving to learn you can only improve.