19 November 2020
How to start programming for games
If you want to start making games but you don't know how to code it can all seem pretty intimidating at first. Especially with all the different programming languages like Java, C sharp and C++.
The good news is that it doesn't have to be and thanks to a wide range of online tools and resources you can receive a helping hand getting your first project off the ground.
Tiffany Wild, Gameplay Programmer at Ubisoft has put together this practical guide explaining what the most-used languages are, the roles available in the games industry and how to get started making games and showcasing them. Read on to make the exciting jump into programming and kickstart your game-making journey.
First things first: What programming languages are used to make video games?
C++ and C# are the two main languages used in games development.
Developers working with the game engine Unity would have to use C#, and those developing in the game engine Unreal or in-house game engines (developed internally by studios) would mainly use C++.
Other languages used in games...
Java can sometimes be used by Android developers.
JavaScript is also used quite often in web-based games, or to support online code.
PHP or HTML are also needed for some job roles within games but these are more often for backend/server programming.
On top of that, some studios have their game engines and own scripting languages as well.
REMEMBER: it’s completely okay not to know every language, as programming skills are highly transferable and the first step is learning one...
Which one is best to learn first?
It really comes down to how much time you have ahead of you and what route you want to take.
Only want to learn one? Learn C++.
It's the hardest language to learn but it is most universal and teaches you about essential programming skills such as memory management.
Don't have much time? Learn C#.
It doesn't have the complexity of other languages, but it offers a lot of ‘automation’ compared to C++, and not having to deal with memory management issues would save you a lot of time debugging.
Want to build up slow? Learn C then C++ and finally C#.
This route is ideal for anyone looking at games development, especially those aiming at AAA console & PC games. C is not used often, but understanding C makes learning C++ a lot easier, as it provides basics of syntax, structure and memory management.
Other options:
There are also scripting languages like JavaScript, often used for making Indie games.
And lastly, one of the most beginner-friendly languages to learn is Lua, popular in the modding community and for game creation platforms like Core, Roblox, and Minecraft. Check out our blog post about learning Lua here.
How do I know I'm cut out for programming?
Games programming is all about finding a creative, efficient solution to a technical problem, here are top four strengths that I think all good programmers develop over time:
- You must love puzzles.
A big part of the games programming role involved investigating what’s already been done before, what you can re-use or modify and what you need to create from the ground up. - You must love learning.
Programming evolves all the time, so don’t expect to study a few years and then stroll through your career. You need to keep learning to stay on top of your game. - You must love being creative.
One of the biggest misconceptions about programming is that it’s a purely technical discipline. But you need to be able to think creatively, find a solution outside the box. - You must love experimenting.
Things rarely work on the first try in programming. And especially in games, it’s common to build prototypes. And you’ll spend a fair amount of time debugging what isn’t working as intended, keep trying to find out the issue and determine the best solution!
How do I start my first project?
If you already know some programming:
Especially C++ or C#, get Unreal or Unity you can start making small games and prototypes. Learning Unity or Unreal is also essential for landing a job in the industry, even if you apply for a studio with its own engine. And don't worry if you don't know how to make art, there are plenty of assets you can download for free for personal use, on top of the already existing templates in both engines.
Download Unreal Engine
Download Unity
If you don't know any programming yet:
Download Game Maker Studio 2. You can get free licences, and while you might be limited in how big a game you can make, it’s perfectly adapted for beginners. Game Maker has its own programming language but the real advantage is that you can also use their Drag and Drop feature to create a game without the need to know how to code. It’s a great engine to begin your journey and start learning about games development, in parallel to learning a language.
Download Game Maker Studio 2
Get involved in your first Game Jam:
Game jams will help you develop an essential skill for games development, collaboration. Very few people make games alone, it’s important to be able to work with other developers across all roles. Many game jams allow you to form teams with other sign-ups, and you can also find people online ahead of time. It can be daunting to be matched with people you’ve never met, but you’ll learn a lot by doing so.
Check out upcoming jams on our opportunities page.
REMEMBER: games jams are not a competition, everyone learns, and therefore everyone wins.
What kind of different careers exist within programming?
Even outside of games, there are tons of possibilities and there are many roles hidden under the ‘games programmer’ umbrella. Here are some roles you should explore if you're considering a career path in programming:
- Generalist Programmer.
A generalist is like a jack of all trade programmer. They will be doing a bit of everything from gameplay to physics or online. Generalists are quite common in smaller teams, where there’s not always a need to have specialists in each field. If you haven’t decided on a path or if you like the idea of working in a variety of areas, it could be a very good choice.
Find out more - AI Programmer.
AI programmers are responsible for things NPC behaviour, patrols and pathfinding. AI bots are also becoming quite popular in games studios for automated testing.
Find out more - Physics Programmer.
The physics is the simulation of the game world and how objects, being dynamic or not, respond to stimuli. This includes collision and gravity of course, but also details such as how is the car moving if you blow up a tyre. Without physics, nothing would be moving in the world.
Find out more - Online Programmer/Network Programmer.
Online programmers work very closely with gameplay. They are tasked with what is called replication, ensuring that what you do in your game gets reproduced, as fast as possible, on your friend’s game. They also set up matchmaking players with each other, and leader boards to display which one of you is the best.
Find out more - Gameplay Programmer.
Probably the one you heard most about. GPPs are building the rules and mechanics of the game that the player will interact with. They are tasked with implementing the amazing ideas that game designers invent. From small elements like a new type of weapon, inventory, quest system or what is called the 3Cs: character, camera & controls.
Find out more - Graphics Programmer/Rendering Programmer.
Graphics programmers are responsible for about everything you see or don’t see, in a game, including visual effects. However, it’s not limited to ‘show this or don’t’. How objects become more detailed as they get closer to the player is one example of work that they do to balance stunning visual quality with performance.
Find out more - Engine Programmer.
Engine programmers are responsible for building and maintaining the game engine. New game platforms and technologies are being released frequently, and game engines must also evolve to support the future of gaming. A lot of studios develop their own game engine to best suit the technical needs of their games.
Find out more
There are also some support roles, programmers who are essential to games development but aren’t working on the game itself. To name a few, you could have a look into the roles Tools Programmer, Build Engineer or IT Technician.
A huge thank you to Tiffany Wild for putting this guide together. To read more from Tiffany check out her Into Games interview on becoming a Gameplay Programmer here.
And you can stay in touch or ask follow-up questions by: Following Tiffany on Twitter and Connecting with Tiffany on LinkedIn.
Stay up to date
It's time to level up your inbox
Pick which newsletters you're interested in receiving, and customise further by specifying a discipline.
Join our mailing listTell me more