In short, game programmers write code to create the rules in which a game operates and ensure the experience is both fun and smooth for players. Programmers will work closely with the gameplay designer(s), level designer(s) and lead designer(s) to understand the individual elements that will make up the game, and then figure out how to make that work.
“At its most fundamental level, programming is really all about making the game work. It is all of the functionality that goes into taking a concept and a bunch of assets and turning it into something playable. With that comes a lot of interdisciplinary communication, so there's a lot of interaction with other departments and making sure that everything they want is realised. But fundamentally, if it's broken, or if it doesn't exist, we go in and do that.”
- James Vigor, Programmer at Ground Shatter
Graduate level programmers will typically join a studio as a junior programmer, where they will work across all manner of tasks on a given project. As programmers build experience and progress through the ranks, they will move away from the jack-of-all-trades nature of working and specialise in an area that they enjoy and excel in most. Below are just some of the specialisms you could work in:
Gameplay programmer - Another way of saying game programmer in some circles, the gameplay programmer is responsible for writing the code that directly informs how the game interactions work, the rules that govern the objects within a level, the combat systems received from the designers etc.
Artificial Intelligence (AI) Programmer - AI programmers will focus on creating the ‘minds’ and behaviour of the NPCs (non-playable characters) in the game, so that the player’s interactions with them feel natural and they react in a believable way to the player’s actions.
Physics Programmer - Essential to provide either realism or a unique aspect to a game, physics programmers will develop software that determines how characters, vehicles and objects interact when they meet, e.g. a vehicle colliding with a wall, elemental physics such as water and fire, etc.
Network Programmer - One of the most complex specialisms within programming, network programmers dedicate themselves to developing seamless multiplayer experiences; ensuring that each player is seeing the same thing on their respective device at more or less the same time.
Engine Programmer - A role typically associated with larger studios, an engine programmer develops a bespoke engine that is the best fit for a game, while also bug squashing and troubleshooting technical issues.
Senior / Lead Programmer - These roles see programmers take on greater responsibility, both with the overall coding and also managing the team. The main distinction is that the lead programmer has the final say and will make the key decisions around the code base.
Game programmers will typically work 9am - 5pm, Monday - Friday. Like many jobs, upcoming deadlines may see later finishes and potentially some weekend work. In larger studios there’s always the chance of crunch (excessive overtime), but smaller studios have a better reputation for respecting their employees' work / life balance.
Game programmers can work in the office - if the respective studio has a space - but they are also free to work remotely or hybrid. It’s very common to see people working fully remote or hybrid in the industry today, with some members of the team not even being based in the same country as the studio. Employees that work hybrid or remote will usually be provided with equipment by their company, from suitable office chairs to headphones and even computers.
Programmers will start their day by meeting with the entire development team. Each department checks in with their progress, current tasks and any roadblocks they’ve encountered and additional support needed from other teams. Often, the programming team will then meet together to discuss things on a more technical level and discuss the best ways to action that day’s tasks.
Due to the nature of the development cycle of games, the day-to-day for a game programmer is always changing. In the early stages of a project, programmers will be developing the initial codebase on which to implement the various design elements. During production and testing, their focus will be on things like playtesting and bug squashing. Post-launch, all teams will be working on optimisations so that any new bugs, gameplay tweaks, additional systems, etc. can be implemented through patch releases.
“What I am at heart is a storyteller, and that might seem a strange thing for a programmer to say, but I think that the real drive to go into game development, for me, was the idea of building worlds, of having a concept and realising it, and watching it come to life. And that was something that always really inspired me from the get go.” - James Vigor, Programmer at Ground Shatter
“I would say it’s the complex problem solving… especially at Virtex where there’s the flexibility to try out new things… I really thrive in that environment.” - Mathew Hill, Unreal Developer at Virtex
“I love being part of a bigger project. I could easily be in computer science or cyber security, but I would find that boring. I get to tell people that I work in games and enjoy my work. I get to log on to program, test and fix games; and eventually my name is associated with that finished project. Being creative in my industry is amazing.” - Connor Kearney, Junior Programmer at Lively Studio
We’ll start with the obvious route: the games industry! Everyone’s preference is different, but working as a game programmer could see you working with small independent studios all the way up to AAA studios; working on console, PC and mobile games. Work can come in the form of permanent contracts and freelance opportunities, though the former is generally more desirable and therefore more competitive. There’s no hard and fast rule as to which type of studio is more likely to hire permanent programmers or hire freelance, however we will say that the nature of much larger studios, both AA and AAA, will see them operate with a core team that is then fleshed out with freelance / temporary employees to take on the greater workload.
Outside of games, the skills you will have developed to get into programming will mean you’re well-suited to work in software development. There are a myriad of applications for this area of work, from healthcare and R&D, to retail and business.
Video game development is a highly-competitive industry, and it’s important to keep that in mind when applying for roles. That being said, many of the programmers we spoke with while researching this feature had found work in the games industry within one year of graduating from university.
“One of the most invaluable things to getting a job in the industry was feedback from employers. I went through the interview process with several companies, all the way to programming tests, and they provided feedback as to why I didn’t get the role and it was amazing, because I could see where I was missing some experience, which I could then improve before the next interview.” - Connor Kearney, Junior Programmer at Lively Studio
Some employers place a lot of value on experience in the game industry, particularly professional work with a studio. For students or even graduates, it can seem almost impossible to find a position with an established studio and gain the experience required. That being said, this is not the default position of the industry and many studios are actively looking for new, entry-level talent. If you are in higher education, we highly recommend using the time to apply for as many studio internships as possible, as you’ll likely never have as much free time again!
If you’re considering pursuing a career as a freelancer, the above considerations all apply, but it’s key to remember that what you gain in flexibility, you lose in stability. You won’t be able to utilise holiday or sick pay, you’re solely responsible for the work you take on, which can mean long hours and working weekends to meet deadlines, and it will take time to build your client base. However, once you’ve made a name for yourself and regularly receive work, freelance can be an amazing way to work on a multitude of projects.
Game programmers tend to have distinct personalities, interests and skill sets. You may be cut out for this role if…
Analytical – Your tasks as a programmer will be highly technical and involve complex systems. By approaching them with an analytical mind, you will be able to effectively and efficiently find solutions and develop better systems.
Adaptable - There’s no single best approach to programming, and every studio will have a different way that they do things. To be a successful programmer, you will need to adapt accordingly and not fixated on working ‘your way’.
Proficient with programming languages and game engines – Unity (C#) and Unreal Engine (C++) are the premier engines for game development, and you will be expected to have a strong understanding of at least one of these engines/languages.
Problem-solving – You’ll encounter bugs, glitches and technical hiccups at every stage of development, so approaching these problems with enthusiasm and a desire to solve them is really important.
Working independently or as part of a team – Game programmers frequently alternate between working solo and with others in their team, so it’s key that you are proactive and can self-manage while also being able to collaborate with others.
Learning new skills - Regardless of the size, any game studio will be packed with a myriad of expertise and knowledge, and if you’re eager to learn, you’ll quickly find your skill set growing thanks to those around you.
Communication - Strong communication skills are a must, as you will be talking to various departments as well as other programmers, and need to communicate your ideas clearly and confidently.
Mathematics – While the application of maths when programming games is relative to the complexity of the project, it’s fundamental to possess good mathematical skills if you want to become a programmer.
Taking criticism - There will be times when what you create isn’t right, and it’s important that you’re able to take this criticism, learn from it and not take it personally.
While it is competitive, the video game industry is very inclusive and is filled with passionate people that are eager to usher in new professionals. For many, video games are a social activity and one of the best ways to start your path towards a career is meeting people who are passionate about games.
Look into the local events happening in your city. They don’t operate everywhere, but most major cities - in the UK, at least - have an active local games hub, which will organise meetups and events throughout the year. If such a hub doesn’t exist or you’re not confident enough to meet people in person just yet, there are so many online communities through Discord, Twitch and Reddit that can help you grow your network.
We highly recommend collaborating in game jams. These are public events that bring artists, animators, designers, programmers, composers and sound designers together to create a full game in a short period of time, usually 48 or 72 hours. Game jams are a really fun way to not only flex your skills within a small team, but grow your interpersonal skills working alongside others. You’ll also be expanding your network of passionate creatives and potentially future employers, who frequently attend to scope out new talent.
Internships are a great way to build professional experience within the industry, but they are very competitive. However, internships at game studios are usually paid and coalesce into full-time roles.
Formalised education is a great way to progress into the video game industry, particularly because the prevalence of the industry now means you can study game-related courses at diploma, undergraduate and postgraduate level. Not only will this streamline your skills within programming, you’ll produce work in an environment that mimics professional studios.
“University really gave me the time and experience to then pursue my own projects in my free time, and that's really what propelled my career early on. Being able to have that mindset of games being a product and not a little thing for my friends to play… I'm going to make something that other people are going to play, and I'm going to be really proud of. Education in general in the gaming space, it definitely helped point me in the right direction.” - Mathew Hill, Unreal Developer at Virtex
“I'm a big believer in work-life balance and also just looking after yourself. It might be really exciting to push and push and push, especially if you're a freelancer, and you're working really long hours, because you're really excited. But those energy levels don't last forever. Being able to spend time with friends and family; to exercise, eat well and get a lot of sleep; it makes a massive difference to both normal life and your work life.” - Mathew Hill, Unreal Developer at Virtex
“Having some experience in design and in art helps you understand those disciplines a little better. I think in any kind of industry, and I would say this for game development, is that when you're working in a particular area, it can get quite tribalistic… and there are these conflicts between departments where you can't quite align on certain things. I think it's really important to understand as much as you can, what those kinds of departments are working with, and what their needs are, and why they're doing things differently.” - James Vigor, Programmer at Ground Shatter
“Specialising is great later on because when you advance from being a junior programmer, you can begin to choose where you want to go, e.g. gameplay, UI, etc. But at the start, being a bit more open will definitely help with the job hunt, because just searching for one specific programming type is going to limit your search. If you know you want to be a games programmer, the best thing is having your foot in the door as a junior programmer and knowing, ‘Okay, now I can advance from here and ask for specific tasks.” - Connor Kearney, Junior Programmer at Lively Studio
Building a portfolio as a programmer is a little trickier compared to a more visual medium, however it’s by no means impossible. When reviewing your portfolio, an employer will want to be able to see your code, so they can assess your skill and see that everything makes sense, but also that it works practically. This could be a short video demo of the game you have coded, or you could upload the project to GitHub so they can download and play the project.
An invaluable tool for growing your skills and portfolio is Discord. It’s the perfect way to meet new people with like minded interests, especially if you’re not ready for in-person networking. We can’t overstate how big a difference face-to-face connections make for your networking, but this can be daunting for a lot of people. Somewhere like Discord can help build your confidence before going out into the real world. There’s a server for just about every topic on Discord, so you can easily link up with people who are enthusiastic about sharing ideas and supporting one another.
“I highly recommend one page portfolios. If you do want to show additional stuff, then you can have that accessible as links. When someone comes to your page, they might not have the time to see everything. If you just have a picture of you, a little tagline of your role, and then all of the things that you're really proud of, that's the best thing to do. And that's what I do on mine.” - Mathew Hill, Unreal Developer at Virtex
Once you’ve built that confidence, both in your technical and interpersonal skills, the next step is to try to work on some games. In some ways, this will be dependent on where you live, however, many games are produced by teams who are working from across the globe. Start with some research into any local games hubs in your area - we recommend using Meetup and Fatsoma as a starting point. Game jams are fantastic places to grow your network and get real-world experience in game development. They’re also great to include on your CV, so make sure you mention any game jams that you’re particularly proud of when applying for jobs, as it will give you an opportunity to give real examples of your work.
The people that make up the video game industry are very welcoming and supportive of new talent and the best thing you can do outside of building your skills is getting out there and meeting new people. This can be on a local level with a games hub or travelling further afield to exhibitions and conferences.
“If you've got the time and the energy outside of work, or school, or whatever you're doing, to just give yourself some small projects to work on, to literally just say, I want to make a simple level for a platformer, for example, then that's great. You're fostering that passion and in developing it, you can then use that to apply for a job, but you can also use it to develop your understanding in different areas. Even if it doesn't feel like it's going to break new ground, there's a very good chance it will, because anything that's approached even slightly differently, will provide you with different challenges.” - James Vigor, Programmer at Ground Shatter
Most game programmers now working in the industry will have studied at degree level, be that specifically game programming or a computer science or broad game development degree.
At undergraduate level, our BA (Hons) Game Development: Programming degree will equip you with everything you need to progress into the games industry. You’ll develop a strong understanding of the fundamentals of programming interactive experiences, through extensive learning of languages including C++, C# and Python and practice-based study using key engines such as Unreal Engine and Unity.
Through collaboration with students on the BA (Hons) Game Art degree, you’ll create a large-scale project and build a game world from scratch, working to the same development pipelines you would expect in the industry.
At Level 3, there are two options for study through our educational partner Access Creative College; a two-year Games Technology diploma for 16-18 year olds or the one-year Access to HE: Games Development diploma. Both courses will equip you with a fundamental understanding of creating art and developing games, allowing you to then progress to undergraduate level.
Cormen, T.H. et al. (2022) Introduction to algorithms. Cambridge, MA: The MIT Press.
Jenkyns, T. and Stephenson, B. (2018) Fundamentals of Discrete Math for Computer Science: A problem-solving primer. Cham: Springer.
Martin, R.C. (2009) Clean code: A Handbook of Agile Software Craftsmanship. Upper Saddle River etc.: Prentice Hall.
Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made by Jason Schrier (2017)
Game Programming Patterns by Robert Nystrom (2014) (Free eBook Version)