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.