The Best Programming Languages for Games (According to Employers)
If you’re planning a career as a video game developer, your first step is to learn to code in a language that professional developers use to make the greatest games in the world. But which one of the many game programming languages should you learn first?
It’s a big decision. Programming languages take a long time to learn, and you don’t want to waste time learning to code in a language that’s just the “flavor of the month.”
Instead, you want to learn a language that’s valued by top game companies like Valve, Riot, Blizzard, or Nintendo. Which programming languages will help you get hired at a top game company?
What’s the best programming language for games?
To answer this question, I researched 70 job postings from 16 of the top game developers worldwide, to find out what programming languages they require from engineering job applicants. The results are summarized below. And the answer couldn’t be more clear!
Best programming language for games: C/C++
C++ (pronounced “see and see plus plus”) is known for its ability to create high-performance and highly detailed games, which is why it’s a popular choice for game development in any game genre. Some famous games created using C++ include the Halo first-person shooter series, the racing game Forza Motorsport, and the action-adventure game Assassin’s Creed.
As you can tell from the chart above, C/C++ is by far the best programming language for games, according to the top game companies in the world. Over half of job postings listed C/C++ as a requirement.
And it’s not just low-level “close to the metal” programming jobs that require C/C++. The language appeared as a requirement on a wide range of job titles including Tools Programmer, Graphics Engineer, AI Programmer, Backend Programmer, Gameplay Programmer, and dozens more.
So if you’re looking for a language to learn first, you simply can’t go wrong with C/C++. Clearly, it will open up many, many doors for you in the game development profession.
2nd-best game programming language for games: C#
Another popular language used to create all sorts of software, including video games, is C# (pronounced “see sharp”). It’s a popular choice among game developers because it’s easy to learn, and can be used to create games for multiple platforms like Windows, Xbox, and PlayStation.
It also has a lot of built-in features that make it great for games, like its ability to handle graphics, sound, and player input. Some famous games created with C# include the sandbox game Minecraft, the strategy game Age of Empires, and the role-playing game The Elder Scrolls V: Skyrim.
While C/C++ is firmly in first place as the most in-demand language for game development, C# ranks as a close second. Over time, C# is becoming more and more popular for game development, especially when using commercial game engines such as Unity 3D.
But it’s still in second place, behind C/C++. In fact, out of 25 job postings that mentioned C#, only 5 of them listed it as a standalone requirement. The other 20 postings actually required C/C++, and simply listed C# as a “nice to have.”
So while learning C# can certainly be helpful for your job search, your options may be limited unless you also know C/C++.
“Or equivalent”
It’s undoubtedly important to be familiar with the top programming languages. That said, it’s a fact that once you know one programming language, it’s much easier to learn others quickly. That’s why 14% of the job postings gave a language requirement, but then hedged by saying “or equivalent.”
For example, one posting from Valve for a Steam Software Engineer called for “Proven experience building and releasing commercial software in C++ or similar language.” Another job posting from Rockstar Games for a Build Engineer required “Programming and/or scripting skills” with “C++, C# or Python” as examples.
These companies realize that any good programmer can learn new languages as needed. That’s why they’re open to applications from candidates who have programming experience in other languages.
What about all the other languages?
While C/C++ and C# were the obvious standouts, there were 9 other languages mentioned including Python, PHP, Java, JavaScript, Assembly, Lua, Ruby, Go, and Erlang.
In most cases, the less-used languages are specific to a given studio, which probably indicates that some studios have highly-specific game development tools and technology built on nonstandard programming languages.
For example, Take-Two Interactive was the only company that mentioned Erlang, and only Riot Games’ postings mentioned Go. Note that neither studio mentioned those languages as a hard requirement.
In other cases, certain languages were preferred for specific types of jobs. For example, Assembly language was required for an engine programming job, which makes sense because Assembly is almost exclusively used in ultra-high performance areas of a game engine. And Java was mentioned by several game companies, but mainly for back-end and networking programming jobs.
Summary
If you want to start a successful career as a video game programmer, it’s pretty clear that learning C/C++ will be an important step in your journey. As coding languages go, it’s been at the top of the pack for a few decades now, thanks to its high performance compared to other languages, and that’s not likely to change anytime soon.
That said, it doesn’t necessarily mean you need to learn C/C++ first. Learning any programming language will help you become a software developer, and there are many languages that are easier to learn — even professional game companies know that once you learn to code in one language, it’s easier to learn “equivalent” languages as needed.
So if you’d prefer to start out with something that’s less popular for games but a little easier to learn, go for it! Many programming courses start out by teaching a “high level” language like Lua or Python, so don’t shy away from starting there if you have the opportunity.
You can always start learning C/C++ after you’ve wrapped your head around the basic concepts that apply to all programming languages. Before you know it, you’ll be picking up new programming languages like a pro.
Research methods
To compile this data, I searched the job postings from 16 top game companies for software development jobs in a variety experience levels and sub-specialties. For each job posting, I noted the programming languages that were listed as “required” or otherwise mentioned as being desired for job candidates to have experience with.
Jobs in web development were not included. Jobs in data engineering were not included.
Companies assessed: Bioware, Blizzard, Bungie, EA Criterion, EA Sports, Epic Games, Naughty Dog, Nintendo, Respawn, Riot Games, Rockstar, SEGA, Sony Interactive PlayStation, Take-Two Interactive, Ubisoft, and Valve.
Engineering job types assessed: Animation, Anti-cheat, Artificial Intelligence (AI), Backend, Build, Engine, Gameplay, Generalist, Graphics, Integration, Mobile, Networking, Physics, Platform, Rendering, SDET, Systems, Tools, User Interface (UI), VR & Hardware
Image credit: Danial Igdery/Unsplash
Read my new book!
Making games for a living is an incredibly rewarding career, but it’s hard to break in unless you have insider knowledge. This book levels the playing field.
Leave a Reply