Hi everyone, this is Karim the tech hermit!
Last time we talked about a pretty heated subject which is Unity vs Unreal. Today, we are going to talk about the different types of programmers in the game industry in terms of their roles, responsibilities, and salaries. We’re also going to talk about how to be one of those types yourself. So let’s jump right in, shall we?
The game industry is considered to be one of the hardest software fields in the world and the main reason for that is because it merges between so many other fields to produce the best media form possible; Interactive media (a.k.a, video games). You’ve got Music, Art, 3D, Cinematography, networking, physics, graphics computing, system design, voice-over, sound effects, animations, video making, and many more fields that go into making a successful video game today. You might think that Programming is just one field, but that’s not true. In fact, programming has so many fields and a lot of them are essential for game making.
Starting off with the most direct and commonly practiced role, the gameplay programmer. This role, as the name suggests, handles all gameplay mechanics. A gameplay programmer will handle player controls, camera controls, enemy logic, vehicle controls, puzzles’ logic, applying physics to the game world, applying networking to game actions, applying rendering techniques, controlling animation, and a lot more. Gameplay programmers work closely with technical artists to give birth to the game. This is considered an entry-level role as it is the most straightforward one, but by no means is it considered trivial. Big and small studios that work on innovative gameplay mechanics will always require senior gameplay programmers to lead their teams into developing such complicated mechanics.
To become a good gameplay programmer, it’s better to learn the basics of how physics engines, rendering engines, AI Development, art integration, animation control, Performance optimization, and UI programming all work. You also need to have a level of excellence in math, especially linear algebra. As a gameplay programmer, you’re not going to work in all of these fields, but understanding the basics of these fields will make you a better gameplay programmer who can design flexible solutions that can deal with various requirements involving these fields.
This might seem overwhelming but fear not; There’s an easy way to do it and it’s called step-by-step hands-on training. And by that, I mean doing mini-games that implement one feature that requires and involves one of these fields. For example, a mini RTS game that requires AI programming, or a mini-RPG game that requires networking features. The important thing is to keep making new games whose mechanics you’re not familiar with and make them simple. This will enrich your knowledge and this knowledge will kick in when you actually need to develop a game that sells.
This is probably the most obscure field. There isn’t much support online and very few offline courses. That’s because a network programmer is not originally a network engineer for games only. They work as network engineers to set up servers and handle the backend side for websites and applications. The thing is, a good network engineer is always secured in bigger companies and is almost always busy. To become a good network programmer, you need a strong knowledge of data structures and algorithms, and you need to be a sharp problem solver and that is because straightforward solutions are not often optimized enough for applications or websites that need seamless interactions, let alone a real-time video game. The best way to become a network programmer, in my opinion, is to start out by NOT working in the game industry because that is, like, the boss level. Instead, work in setting up servers and backend logic for different websites and applications with different requirements. And once you are comfortable designing optimized servers, you have the option to enter the game industry, and believe me, you will land a very rewarding job.
If you thought being a network programmer is hard, then you should brace for impact. Being an engine programmer is the hardest task so far and often it’s not a direct path like network programmers and gameplay programmers. Engine programmers are the ones responsible for building graphic libraries and physics engines to support the game-making process. They don’t directly make a game, but they make the essential tools needed for making a game. In the early days of the game industry, it was probably easier to become an engine programmer and that was mainly because every game programmer had to be an engine programmer and build their own engine for each game. But now, with the advancement in game engines, most programmers are disconnected from the actual processes of rendering and physics calculation due to their dependency on the ready-to-use tools offered by modern game engines. Here’s a funny scenario that I like to think is how a new engine programmer is born. It all starts with a gameplay programmer doing his mundane tasks when suddenly he faces a problem that he strives so hard to solve but ultimately fails because the solution is not supported by the engine. Being the ever-stubborn problem solver he is, he wants to learn why the engine cannot support such a feature. He digs deep online, contacts veterans, goes to events, listens to talks, reads books, and with every new little piece of information he gets even more excited and curious. One day he says “that’s it, I’m going to build MY OWN ENGINE”. He invests so much time in his engine and he actually does a great job. But after a while, he understands that making an engine on his own that matches what is already in the market is nearly impossible. However, he finds a job in a big AAA studio looking for engine programmers and offering a F.A.T salary in addition to other awesome perks. He applies and gets the job and that’s how an engine programmer is born.
Now, this scenario might not be completely accurate, but I think the reality isn’t far from that. Engine programmers are often divided into graphic-programmer, physics-programmer, and sound-programmer.
TLDR, becoming an engine programmer is about investing time building your own engine which will ultimately fail but will help you land the best paying job in the game industry.
This field is hard, but it’s very well-known as well. Being an AI programmer isn’t hard in the sense that you can’t find books, courses, and tutorials for it, quite the contrary as there’s a lot of educational material to help you become one, unlike engine and network programming.
As the name suggests, this programmer will handle everything related to AI from designing open-world systems to the logic behind in-game characters and dynamic quest systems. Sometimes, AI can be as simple as a Finite-state machine (FSM) or as complicated as path-finding algorithms. Nowadays, it’s rare to see a game without some sort of AI, a boss fight with multiple patterns is considered AI, enemy soldiers finding covers and flanking your battalion is AI, opponent cars in a race beating you by mastering that drift are applications for different pathfinding algorithms, and of course, enemy building an army, raising an economy and racing you to secure resources in an RTS is one of the hardest applications of various AI algorithms. Becoming an AI programmer in the game industry needs you to excel, again, in data structures and algorithms, problem-solving, and math, especially probability, statistics, and linear algebra.
Finally, the last type of programmers in the game industry. Tools programmers are the furthest from the actual development of the game. They have only one role, provide the development team with ANY tool needed to boost their productivity or solve a problem. One example would be all the MMOs clients you see, those are done by tools programmers. Tools programmers usually work on internal tools and systems that contribute to the development of the game but isn’t necessarily a part of it
Here you have it. Entering the game industry is hard, but it isn't impossible and I think knowing exactly what the industry needs and focusing on one field is the key to becoming one of the world-wide game devs. Have a good day, and I'll see ya next time. Don't forget to subscribe to our newsletter.