If you want to become a game programmer, this is a great place to start! Learn about the role and responsibilities of a programmer, salary expectations, and tips to get into game programming.
You'll get first-hand insights from our game programming mentor Firas Hosn, an AI programmer who worked at Ubisoft on several major franchises including Assassin's Creed, Watch Dogs, and Far Cry. Firas also helped develop the game programming courses at CG Spectrum, an Unreal Academic Partner.
What is game programming?
Game programming refers to the code that brings a video or computer game to life.
As technology has evolved, so has programming. Early on in video game history, programmers were often responsible for most aspects of game development, including game design. But as hardware and software improved and games became increasingly more complex, dev teams grew dramatically.
1962: Spacewar! was the first widely distributed game, running on the Computer History Museum's PDP-1. (Photo cred: Joi Ito)
Player expectations have also grown and more time is now spent on things like high-end graphics and artificial intelligence to enhance the user experience.
New jobs have been created and are often more specialized, particularly at larger game studios like Ubisoft, Blizzard Entertainment, and Electronic Arts.
What does a game programmer do?
Essentially, a game programmer writes the code that brings a video game to life. They work closely with producers and other departments (e.g. game designers, game artists, Sound, etc) to translate the project's vision into a fully functioning, playable game.
They could be responsible for anything from dictating the speed at which your character runs and how high they jump to how many enemies appear and when and how they react when attacked.
While at Ubisoft, Mentor Firas Hosn implemented artificial intelligence for AAA video games such as Assassin's Creed
Firas, who has been in the industry for a decade, says:
A big misconception about game programmers is that they don't have much say in the design or direction of a game. But that's not true.
"Being the one implementing the core features, you know the limits of the engine and tech being used, and you need to be able to communicate and collaborate with other disciplines. You aren't in your own world just programming for 8 hours a day."
It's important to note that there are many different types of programmers (which we'll cover further down), so depending on the size of the studio and the project's complexity, a programmer may be highly specialized in one area (e.g. an audio programmer who focuses on connecting certain sounds with actions or events, or an AI programmer who dictates how a non-player-character will respond to your next move).
In a smaller studio, the role may require the person to do a little bit of everything.
Besides strong math and computer skills, Firas says:
Problem solving skills are a must! Communication skills are also essential as there needs to be collaboration with design and art to get the most out of tech and implement solutions that meet future needs of the game.
Typical job responsibilities can include:
Translating the project's vision into code to create a playable game
Building a customized base engine for the game
Scripting functions, events, interactions
Creating physics (e.g. gravity differences in a game set in space)
Developing and modifying 3D graphic renders
Simulating artificial intelligence in opponents
Adding sound effects, music and voice-overs
Implementing game logic and mechanics
Creating the User Interface
Writing code specific to keyboards, mice, or joysticks
Making it possible for players to compete or cooperate via LAN or the internet
Developing custom tools
Porting code between platforms
Implementing algorithms, addressing memory requirements, and caching issues
Identifying and fixing bugs
Job requirements will vary, but at a basic level may include:
Solid knowledge of a programming language/s (C++, Java, etc)
Experience with engines (Unreal Engine, Unity, etc)
Excellent communication skills
Strong math, problem-solving and analytical skills
Programmers help create a seamless user experience by displaying critical information on-screen in the right place at the right time. Image: Battlefield V. (Credit: EA, Westie)
Are game programmers in demand?
Today, the industry is strong and continues to grow with an estimated 3 billion active gamers worldwide. Market research firm Newzoo, estimates that global market revenue is expected to total $211.2 billion by 2025. So if you want to get into the industry, it's a good time to do it!
Programmers are critical to making video games (learn more about the game development pipeline), making job prospects strong in this field. However, it is a competitive industry, so it's important to stay on top of trends and know the latest tools and techniques.
Firas, who is responsible for interviewing job candidates at his current studio, adds that:
Being a programmer is a challenging job, especially in game development where the visions and expectations are high and your window of time is often narrow.
If you've just graduated from a game programming course, you'll likely be looking for junior programmer jobs to get your foot in the door.
While most programming jobs will be on-site at a studio (and you may need to consider relocating if your city has limited options), you may be able to find a remote or freelance position.
Make a list of the studios in your area or studios you wish to work at, and monitor their careers page. Do you live in Sothern Hemisphere? Check out the top 20 video game production and VFX studios in Australia. Look through job postings to see what skills you have already and what you need to learn.
Keep in mind that a team of 5-10 employees at an indie studio is going to run very differently from a team of 1,000+ people like at Ubisoft or EA. So think about what kind of environment you are likely to excel in, but in both instances, learning how to adapt quickly and work under pressure will help you succeed.
Most programming jobs are on-site, but some game development studios may hire remote workers or freelancers. (Understand the difference between game programming vs. game development on our blog.) Photo: EA office, Vancouver Canada
A great way to get ahead of the competition is to learn about other video game roles and departments. Not only will this increase your skills as a programmer, but it will also make you a better team player because you will have a solid understanding of what happens before and after you in the video game pipeline. Consider taking a game design course, game design degree or a course in virtual production and real-time 3D.
Best game programming software
There is a range of software to choose from, but if you want to make games professionally, aim to learn industry-standard game programming languages and software that major studios are using, like C++, Java, and Unreal Engine. This can lessen your learning curve and increase your chances of getting hired.
CG Spectrum is proudly an Unreal Authorized Training Center which means we are recognized as a training center committed to providing high-quality educational opportunities through an experienced faculty, proven curricula, and resources.
The average programmer makes USD $86,404/year, according to ZipRecruiter, which is well above the national average wage of $54,132. A Lead can earn in excess of USD $100,000 per year.
Salaries depend on experience, location, and size of the studio and can vary greatly above or below these averages. Lead / senior programmers and technical directors may exceed the top of that range with their years of experience and knowledge.
How to become a game programmer
Do you need a diploma or degree to become a game programmer? There is no definitive answer for this. However, you do need some experience or skills and an impressive portfolio to get a job. The industry is very competitive, so an expert-led course or degree can help you get the skills you need and stand out in the crowd.
While it is possible to be self-taught and get a job, you need to be extremely disciplined and know where to look for the latest tools and techniques used by top studios. Some self-taught Programmers have spent years working on games in their own time and have a strong portfolio to show for it.
Programming books and tutorials are a great place for ongoing learning, but if you want to get your skills to a professional standard, research formal game programming courses.
When comparing courses, ensure it is taught by industry professionals who have worked on AAA games at major studios. All of CG Spectrum's game development courses and game development degrees are led by experts who've worked at some of the biggest studios in the world, including Microsoft, Blizzard, Epic Games, EA Games, and more. These mentors have their finger on the pulse and can teach you the latest techniques and professional workflows. They know what employers are looking for and help you get those skills to ensure you have the confidence to hit the ground running at your first job
You want to be sure that the time and money you invest into your education results in you graduating. Typically, a multi-year degree program will cover a little bit of everything, and you may have to take additional subjects. Whereas more specialized courses, such as CG Spectrum's online game programming courses, offer a more robust career-focused curriculum teaching the job skills studios are hiring for.
As an Unreal Academic Partner, CG Spectrum works closely with Epic Games to provide the latest game development education. You can choose private one-on-one mentorship or small group classes (never more than 4 students) and be mentored by industry experts who have worked at major studios like Ubisoft. Our online course offers flexible scheduling so you can study from anywhere.
The course caters to game programming for beginners as well as advanced, so long as you have good mathematics and computer skills and plenty of patience to work through problems.
For those with a background in computer science, software engineering, math or physics, doing a programming course can be an efficient way to expand your hiring potential and break into the industry.
3 tips to get a game programmer job
You need to have something to show when you're applying for game programming jobs. Spend time working on projects and building up your portfolio. Show off your best work, and showcase your coding skills.
At CG Spectrum, our 9-month courses dedicate a whole term to building your portfolio, with support and feedback from your industry mentor. We also offer career support from our dedicated career development manager to help with job applications and interview preparation, resume/CV assistance, and further portfolio/demo reel reviews. Students also get access to exclusive webinars and workshops with industry guests to ensure they have every chance of success.
In addition to having an excellent portfolio and resume, Firas offers an additional 3 tips to help you stand out:
Confidence "You're going to be doing lots of tests and interviews. In order to get past these, you must be confident in yourself and your skill set. The way to gain that confidence is to practice, work on projects, and push yourself to get out of your comfort zone. Expand your knowledge."
Research "There are plenty of conferences, talks, dev blogs, and job postings out there. Learn what pros are talking about, and find out what companies are looking for in Junior Programmers. Familiarize yourself with the terms and trends of the industry."
Networking "Join a forum, attend meet-ups, and get your name out there."
Firas also offers the following links to help you become a video game programmer:
CG Spectrum is the place to get 1-on-1 mentorship from talented industry mentors. Besides mastering technical skills, you'll learn invaluable industry lessons that can't be found in a book. Enroll now and turn your passion for games into a career!