If we count id Software’s game Quake as the beginning of real-time 3D games, then it can be said that the C programming language is the foundation of modern game design. The original Quake engine was written in C, using an interpreted C-like script language called “QuakeC” for game logic. By the time Doom 3 was in development, id Software had moved over to the C++ programming language, which adds object-oriented features. C++ today remains the foundation of most game engines and performance-intensive code libraries. For example, Unreal Engine now uses C++ exclusively. Unity3D provides a programming framework through the C# programming language, allowing the developer to access the engine’s internals, which are written in C++. Leadwerks Game Engine (my product) provides access to a single API using both C++ and Lua, allowing the developer to write performance-intensive code in C++, while light game logic can be easily scripted in Lua.
For someone starting out in the game industry with the intention of eventually getting a job working for a major studio, what is the best path to learning what you need to know? This article was written in an attempt to quantitatively answer that question.
A sample of all programmer job ads on GamaSutra was taken on July 14th, 2016. Each ad was searched for the terms “C++”, C#”, “Java” or “JS”, and “Lua”. If the term was found, the language was considered a requirement, for the purposes of this analysis.
You can download an Excel file containing the raw data used for this analysis here.