Game Programmer

In a world that increasingly relies on computers, from supercomputers unraveling the mysteries of the universe to supermarket checkouts allowing a faster exchange for your daily shopping, programming is becoming more and more important and influential in our daily lives. As such, good programmers are increasingly sought after, and because their knowledge can be used to achieve a wide variety of things it allows them to compete for jobs in almost any industry, giving them flexibility if something doesn’t work out. This is especially true for game programmers.

Game Programmers are the backbone of any game project and as such, there are always jobs out there if you have the right skillsets. Whilst all programming requires a certain amount of creativity, games are exceptionally so, getting to work alongside the likes of Designers and Artists to work together to bring the project to life. Certain specializations such as Lighting Programmers and Rendering Programmers have a level of creativity often on par with the Artists.

What Do Game Programmers Do?

Game Programmers are responsible for writing to code that the game is built on. The most obvious parts of this would be things like defining how a game plays, how much damage a weapon does, how many hits an enemy can take, ect. This, however, only scratches the surface of what game coding entails. Everything from how the looks to how the light bounces around the room, from the method of anti-aliasing to getting the game to run on different platforms.

If beginning from scratch, programmers begin by developing the game engine within which the rest of the game will be built and though whose interface most of the rest of the team will interact with the game, meaning programmers have ultimate control over how all other aspects of the game development are handled. That being said, it’s more common these days to use one of the bigger engines like Unreal Engine or Unity or a bigger studio might already have a pre-built custom engine. Engine rewrites are rare as they take a long time and as such are expensive and so custom engines are often improved upon for years or even decades until a full re-write is essential.

Besides this, the team’s programmers will have the hands in pretty much every pie throughout production, from the initial building blocks to last-minute bug fixes. They will also facilitate the other departments in making sure that they can develop the game as smoothly and efficiently as possible. To cover everything a programmer might do could take a lifetime and still not be comprehensive, so a programmer above all needs to be flexible and creative in the work.

Glasses in front of computers showing code.
Photo by Kevin Ku from Pexels

How Are Games Created?

Games are created with a game engine within with objects can be added and paired up with code that tells them how they should react and behave within the game, whether it’s how a gun shoots, how a character moves, or how gravity should affect moveable objects and much more. Most of these settings will be directly set by programmers or they will ‘expose’ the variable to allow others within the game engine to set it for themselves.

From here, objects are added to the game, either physical assets from art or fundamental objects that work beneath the surface of the game, such as code. This is where the majority of development time will be spent, building everything from the ground up slowly over time, adding new elements, fleshing out the world, and polishing it to be the best it can be.

Finally, the game needs to be bug tested, this is something that will be done throughout the development period, otherwise, the number of bugs and the severity of them will become impossible to fix at the end without remaking large parts of the game. However, towards the end of the project will be when the entire team is focused just on bug fixing rather than adding new elements, and this is the final key process that influences the final quality of the game.

Programming on a computer screen.
Photo by Pixabay from Pexels

What Game Programmer Roles Are Available?

The number of different specializations with the game programming space is as deep as game development is complex. Certain games may require specialists that no other game would need. A game series that uses mirrors or features realistic rainy environments, for example, might need a specialist Render Programmer who focuses on reflections, whereas a game with a cartoon-like style might not need many if any, reflections, so they either won’t need anyone to do the work or the work is unimportant enough that a generalist programmer can do the work.

The roles we’ll cover here are the more widely available roles that you are likely to see while browsing for job vacancies which are also those that are more likely to be entry-level jobs. For the more specialist roles, you will need lots of industry experience and may find yourself slowly slipping into one of these roles throughout your career. Although the title would suggest they focus on one aspect of game development there is a lot of overlap between specializations so you may find yourself working on more than one area.

  • Generalist – A Generalist Programmer will be expected to do a little bit of everything. They will work on the majority of the game and work in areas where work is needed but not enough to bring in a specialist. As most of the specialised roles require a lot of expereience and expertise, most beginners roles start of as generalist engineers. That does not mean it’s only a entry level job though, with some of the top roles requiring you to be able to fill any role that’s required.
  • Gameplay Programmer – Gameplay Programmers main focus is on, well, the gameplay. This is what many people think of when it comes to coding. They’ll define how the player interacts with the game, whether that’s player movements and weapon usage or how other game elements work like resources and crafting.
  • AI Programmer – The AI programmer’s main job is to bring a percieved intelligence to the other entities in the game. Most of this is how enemy and friendly NPCs interact with the world, how their line-of-sight works, how they target enemies and how they navigate around the level. However it can also include opponents in games such as strategy games that try their best to play against you in a way that another human will. Often having to put restrictions on what they can do to make them more competative to humans.
  • Graphics/Render Programmer – A Graphics or Rendering Programmer is in charge of how the final image appears on screen. They can determine things such as how materials work, how they work with certain lighting or camera angles. For some obvious examples of the variety you can from this, look at cel-shaded games that mimic cartoons or anime or the defined styles of Borderlands or the Telltale games.
  • Lighting Programmer – Lighting Programmers will work primarily on how the lighting works within a game. Some of this work will overlap with Rendering Programmers as a large amount of it is a combination of how the light shining off of materials works. However there are other aspects such as how light bounces around a room, reflects colors off of objects onto the world around it or defines the general lighting levels are balanced throughout the game.
  • Audio Programmer – An Audio Programmer is in charge of implementing the audio into the game. They’re not in charge of creating the music or sound effects as that is usually handled by an audio team, but things such as how the sound reverbs or echos around a room is the domain of the programmer. Whilst an audio team can create amazing work, it’s the audio programming team that really bring that atmosphere and interactivity to the audio.
  • UI Programmer – The UI programmers main just is to create a functioning user interface, including menus, loading screens and HUDs among other things. This will include most of the interactive functions on games such as strategy games or city builders.
  • Tool Programmer – A Tool Programmer will, for the most part, not work on anything that goes into the game. Their main job is to create tools to help other members of the team achieve their goals quicker and more efficiently. This could include things such as tools that automatically generate collision for objects, or a tool that speeds up the process of moving objects between programs. This will vary entirely by the project and the team’s needs.
  • Engine Programmer – The engine programmer is in charhe of building the game engine within which the entire game sits and runs. Even projects usuing pre-made engines such as Unreal Engine might still utilize Engine Programmer who will edit the engine to work more specifically how they want it to.
  • Build Engineer – Build Engineers, like Tool Programmers, don’t actually work on the final product. Their responibility is setting up the processes around game ‘builds’. This is where all the working game elements are brought together and built into what would be the final product. Due to game complexity it can take many hours or even days for a build to run, so specalist computers and systems need to be set up to do this regularly so other game devs have an up to date version of the game they can test.

For more information on the roles of each position, as well as other information about game programming, you can check out this article.

How Much Are Game Programmers Paid?

As with all salary estimates given on this site, I will caveat this with some points. Pay varies a lot depending on the country you are in, and where in the country you are. They also vary wildly based on the company you work for and your specific role, how specialized you are, and how essential to development. Payment information is usually closely guarded in games companies, often forbidding staff members from even discussing it with each other. As such the best information we have is from Glassdoor which allows people to submit their pay, although there is no promise of accuracy as it is self-reported.

Generally, Programmers are paid more than their more creative counterparts. An average salary in the US for an entry-level position is $67k rising up to an average of $124k for senior positions. As with most roles in games, the pay will start out fairly low for the skills required but will increase quickly as you gain experience. This is partly because it’s easy to find juniors to replace people but they will want to maintain the loyalty of experienced employees as other companies will be interested in tempting them over.

Some roles will pay less than these averages, and the ceiling for something like a Head Of Engineering role will be much higher than that. But these averages help to give a ballpark estimation of the pay you could expect. For more information about game industry pay, check out this article, or if you want to know how well the biggest companies paid, we have you covered. If you are interested in pay outside of the US, we advise looking up companies in your area on Glassdoor and seeing what information they have.

Code.
Photo by Pixabay from Pexels

Is Being A Game Programmer A Good Career?

The games industry is best summed up as a great job working with amazing people but under unpleasant circumstances. The reason for this is the often terrible working practices such as unpaid overtime during crunch periods that can see you working 100 hour work weeks for months on end. Thankfully there are some companies out there with an anti-crunch culture, but you will most likely find yourself working some extra time to get things completed within short time frames. Games are very complicated and expensive to make, so there will always be that pressure.

Now that we’ve covered the scary stuff, we can focus on the positives. Making games can be one of the most creative and rewarding jobs you can work in. Working with a team of like-minded and driven people, creating something complicated that can be enjoyed almost the world over is quite unique, especially for programmers where the jobs are generally more mundane.

One positive of programming, as opposed to something like art or design, is that the skills are easily transferable to another industry if you find it’s not for you. Whilst there’s unlikely to be many jobs looking for render programmers outside of games or possibly movies and TV, knowing coding languages and best practices can mean it’s easier to transition to another industry if you so wish. For more information on what a job in games is like, check out this article.

Do You Need A University Degree To Get A Job?

The regular way to get a job programming in games these days would be either to have programming experience in other industries or to get a degree in a relevant field. This is sometimes a specialist game development degree, a general programming degree, or even something vaguely connected to programming concepts, such as physics or mathematics. These help prove you know what you need for the job and that you can work in a similar environment.

A degree is not required to get a job, however. As mentioned before, previous programming experience will help and actually be more highly prized than a university degree. But even without that, it will be possible to land a job, you will need to put in the extra effort to prove you can do the job though.

A great way to prove that you have the know-how and the skills is to create your own product, something like a simple app or game that you release on the app store. This will go a long way to showing you understand the full process and can be a great way to prove that you have done the work yourself. For more information on if a degree is worth it then check out our article. Or check out our article on if you can drop out of college and still get a job in games.

Game programmer working on a laptop.
Photo by Danny Meneses from Pexels

What Jobs Are Available To Me?

Now that we’ve been through everything there is to cover with being a game programmer it’s time to look at what jobs are available to you. The best way to apply for jobs would be to go direct to the company and apply to them that way. This way you can pick the companies you want to go for, and customize your application to suit them better, giving you the best chance. To find these jobs you will need to manually search company websites for roles, or email them anyway as sometimes you can land a job before it gets publicly advertised.

It can be difficult to know what games companies there are around you though and once you have applied for the few you know of, you might need more options. There’s a useful website called gamedevmap.com which can show you a list of games companies in given areas around the world. Whilst the list is not exhaustive and may miss some smaller development companies, it’s a great resource to search for more possibilities.

There are websites that pool job opportunities together in a useful resource such as indeed.com or, more specifically for games jobs such as gamesjobsdirect.com or gamedevjobs.io. These can make it easy to dig through a large number of open positions to find the right one for you, and you can often find jobs you wouldn’t otherwise have uncovered.

Finally, there are job agencies. This is probably the worst way to do it, as the agency will add a fee to the employer on top of your pay, making you more expensive to high than those that apply themselves. You also have less say over what you are applying for, as someone else is making the initial application on your behalf. But it can bypass the pain of applying for endless jobs and the agency can use their connections to get jobs that might not otherwise be advertised to the public, so there are positives as well as negatives. For a full breakdown on finding your dream job in game dev, check this out.

What Tools Do You Need To Be A Game Programmer?

Thankfully for programmers, tools are not as essential to their workflow as other roles such as art, which requires a vast number of them. The most you might need is a game engine, and only then if what you are planning to do needs a quick framework to work in, otherwise you can build simple engines yourself. Using Unreal Engine or Unity can help with this.

Beyond that, the most you need is a programming language, and whatever tools can help you achieve that, such as Notepad++ that makes it easier to read the code you are writing. When it comes to programming languages that are most useful, C++ is the best, as most game engines will use this in some capacity.

Other useful languages include C#, Java, and Javascript. These can all be used in different environments to build a game within. Other languages that are useful languages such as Python can be used to build tools to help other team members, such as artists using Maya or Max. Another useful language is UnrealScript, for coding things specifically in Unreal Engine. For more information on coding language as well as game programming information, you can check out this article.

If you are still interested in game development but think programming might not be for you, check out some other roles in our Making Games series. Or if you want to know more about how programming works, check out Programming For Games.