"I work with at least two different languages in my current studio, but more and more I am feeling I would need to learn more to make the next step in my career."
If creativity is the beating heart of the games industry, then technology is its lifeblood and the ability to code continues to be a mainstay of the most desirable skills when a games studio is looking to hire. Without the contribution of the programmers there is no game, so from the array of software options what are some of the most desirable languages game developers choose and why?
Even as we move through the fourth decade of games software development, the number one skill continues to be the 35+ year old language of C++. The majority of console and PC games still fundamentally rely on C++ and critically it underpins the most complex and demanding game engines available, such as Unreal. “Basically, nothing that can handle complexity runs as fast as C++” says Bjarne Stroustrup creator of C++ back in 1979. Why has it not been usurped since then? Arguably the results that can be achieved with C++ have never been bettered.
One of the beauties of C++ is that it is flexible, enabling you to write additional features in to an existing engine, game or toolset at the lowest level, providing the flexibility of a high level language with the power, efficiency and level of control more associated with low level languages such as assembly. As a core object oriented language C++ has the power to apply hugely complex programming demands balanced with more efficiency and speed than other high level OOP languages out there. It’s a win-win and these features make C++ skills enormously attractive for developers to hire.
The power of C++ is not without price and mastery is highly aspirational
If you’re not familiar with it, getting started in C++ can seem like an uphill climb, the power of C++ is not without price and mastery is highly aspirational. When making career choices it’s worth bearing in mind that some languages are easier than others. Being so intricate it’s challenging, no low level systems are handled for you and the kaleidoscope of possibilities means precision is key. One benefit of learning C++ however is that many other languages follow similar principles so once these skills are mastered, transferring skills to other languages can feel much easier.
C++ is not alone however, C# has continued to rise in demand from employers. Born of the same object oriented principles inspired by the C and C++ family tree, C# began as Microsoft’s simple, modern, general purpose language for the .Net framework. When it comes to online and cloud technology, the presence of C++ and C# are pretty evenly matched, with the likes of Microsoft Azure utilising the agility and speed of its home language C#.
Over the last 3-5 years demand for C# has grown exponentially as the basis of the Unity game engine. Unity combines the power to create games and critically, to take them cross platform uniting game development for PC, consoles, mobile devices and websites alike. You can play, preview, edit, test and debug your game with rapid iteration, and this comprehensive list of features makes Unity very attractive to game developers. It is capable of creating physically based visual features with rich and immersive visual content and although it is yet to match the full power of C++, C# within Unity has become extremely attractive when hiring today, not least because it is still relatively new so experienced developers are harder to find.
Python has gained momentum because of its universality across staple tools and packages such as Max, Maya and Blender. It’s lighter and more readable syntax makes it much easier to pick up than the deeper languages and nimble scalability increases its usefulness further for large and small scale development.
Different developers will be attracted to different skills depending on their choices of mobile strategy
Alongside the demand for cross platform skills we also see studios opting for native mobile development specific to a given mobile platform, primarily Objective C for iOS and Java for Android. Native development requires unique expertise for that device and the benefit is that the full potential of the platform can be reached driving greater user experience through larger, faster capabilities. On the non-native side also attractive in mobile are HTML5 skills for apps using standard web technologies which creates cross-platform mobile applications that work on multiple devices. These hybrid apps and games using an SDK are typically cheaper and faster to create than native. Different developers will be attracted to different skills depending on their choices of mobile strategy, so there isn’t a one size fits all. As you might expect from the aforementioned, C++ can also be utilised for mobile development. This is a common denominator enabling reuse of core code to port across platforms.
Due to the high skills demand necessary within the industry getting in at entry level can be a challenge and it’s no secret that software development requires a rigorous set of competencies. Most developers look for graduates with at least a 2:1 or a 1st Class degree and the deeper and more mathematical the computing aspect the higher the demand. However a good piece of advice is to keep focussed on your capabilities and play not only to your strengths, but also what you enjoy. Experience and demonstration is always of huge value to the industry with or without a degree and cross training in to new languages can make you more widely desirable, in particular within a smaller studio where the variety of tasks can be greater than those in larger teams. The alternative to generalist skills is to consider not only your languages of choice but also a programming specialism.
If you are already working with one of the most in demand programming languages in your current role our advice is to keep evolving techniques, share your ideas and learn from other devs in the games community. Nothing will stop you from learning other languages in your spare time and knowing the emerging languages in the industry will help to keep you current. If you’re worried about not having the most desirable skills then it’s over to you to ask for some training, to learn what you can and produce personal projects to demonstrate you can cross into other languages with ease.
The key is to always stay open-minded to learning new things and to keep in touch with what’s going on in the wider industry as well as what’s happening within your own studio.