Game Development Tips & Tutorials

What is Game Programming and How to Become a Game Programmer

If you want to become a Game Programmer, this is a great place to start! In this guide, we cover the role and responsibilities of a Programmer, salary expectations, and tips to get into game development. You'll also get first-hand insights from our Game Programming course Mentor Firas Hosn, an AI Programmer who worked at Ubisoft on several major franchises including Assassin's Creed, Watch Dogs and Far Cry.

What is Game Programming? 

Game programming refers to the code that brings a video or computer game to life. It sits under the broader field of video game development.

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. 

Spacewar! 1962, First Widely Distributed Video Game, Photo By Joi Ito1962: 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 Design, Art and Animation, 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. 

Firas-Mentor-Blog-Assassins-Creed-500x340While at Ubisoft, Mentor Firas Hosn implemented artificial intelligence for AAA video games such as Assassin's Creed

"A big misconception about Game Programmers is that they don't have much say in the design or direction of a game," says Firas who has been in the industry for over a decade. "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 to be able to 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

battlefield-5-in-game-stillProgrammers 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

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 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 
  • AI Programmer
  • Graphics Programmer
  • Audio Programmer 
  • Engine Programmer
  • Tools Engineer
  • Network Engineer
  • Technical Director

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.

Electronic Arts Office Exterior, Burnaby, Vancouver, CanadaMost 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.

Here are 5 free tools to get started with:

Read more about each of these tools

Game Programmer Salary Expectations

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

We're often asked if you need a diploma or degree to become a Game Programmer. The short answer is no. However, you need some experience or skills and an awesome portfolio to get a job. The industry is very competitive, so a qualification 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 online tutorials are a great place for ongoing learning, but if you want to get your skills to a professional standard and get feedback from an industry expert who knows what employers are looking for, research more formal game programming courses. 

When comparing courses, read through the curriculum and ensure the course 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. 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 may have to take additional subjects. Whereas more specialized courses, such as CG Spectrum's online Game Programming Diploma, offer a more robust career-focused curriculum teaching the job skills studios are hiring for. You can choose private 1-on-1 mentorship, or small group classes (never more than 5 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.

View Programming Course

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, adding a programming diploma 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. 

game-programming-header-02

Your portfolio is your passport to the industry. Learn more about What to Include in Your Game Programming Portfolio

In addition to having an excellent portfolio and resume, Firas Hosn who has worked his way up through the industry and is now responsible for interviewing candidates, offers an additional 3 tips to help you stand out:
 
  1. 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."

  2. 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."

  3. Networking 
    "Join a forum, attend meet-ups, and get your name out there."

Additional Resources

Firas also offers the following links to help you in your quest to become a Video Game Programmer:

Good reference sites: 
 
For industry jobs and posts: 
 
Conferences such as GDC are great for networking and inspiration: 
https://www.gdconf.com (Note: GDC 2020 has been postponed with new dates to be announced)
 

Learn more about Game Development:



Study Game Programming and Work in the Video Game Industry!

CG Spectrum game development school 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!

Learn Game Programming



Tags:

Game Development Tips & Tutorials