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 development, including 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 keyboard, 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)
Game programming job opportunities
Today, the industry is strong and continues to grow with an estimated 2.5 billion gamers worldwide. Market research firm Newzoo, estimates that global market revenue is expected to total $196 billion by 2022. 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), so job prospects are strong. 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.
Other types of game programmer jobs include:
User Interface (UI) Programmer
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. 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 to 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 studios may hire remote workers or freelancers. Photo: EA office, Vancouver Canada
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, Unreal Engine, and Unity 3D. This can lessen your learning curve and increase your chances of getting hired.
The average programmer makes USD $59,010/year which is 16% above the national average according to Glassdoor. A Lead can earn in excess of USD $100,000 per year.
Salaries depend on experience, location, size of 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.
Where to study game programming
Do you need a diploma or degree to become a game programmer? The short answer is no. However, you do need some experience or skills and an awesome portfolio to get a job. The industry is very competitive, so a course 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. Someone actively working in the industry will have their finger on the pulse and be able to teach you the latest techniques and professional workflows. They will know what employers are looking for and help you get those skills.
You want to be sure that the time and money you invest into your education results in you graduating with the confidence to hit the ground running at your first job.
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 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.
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 skillset. 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, 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 the 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!