Creative Chronicles: Programming
November 18 2021 | Legacy Project
Creative Chronicles brings together key insights, information and statistics from the experts at Creative Assembly. We hope this will inspire students and those considering a career in game development.
This edition of Creative Chronicles focuses on programming.
Programming is where maths meets art, there is beauty in it and it's important that programmers are given the freedom to explore that.
SKILLS OF A GAME PROGRAMMER
There are many different disciplines and specialisms within games programming and they all require a slightly different skillset. Specialisms include Engine Programmers, Gameplay programmers, AI programmers, Audio Programmers and Graphics Programmers.
The responsibilities and skills required of an engine programmer or software engineer will be vastly different to that of an AI programmer. But broadly, programmers are the ones to take ideas and write the code required to make a playable game, or system.
Skills broadly include analytical and mathematical problem solving, geometry, linear algebra and calculus, C++ or languages such as Python and Erlang for certain roles, abstraction and modelling, unit testing and for some disciplines UX awareness and GUI skills. Enthusiasm to read, practice and experiment with code is equally important as these skills.
Software used does vary across the industry although there are some industry standard software including Visual Studio, DirectX, Unreal and Perforce.
PROGRAMMING AT CREATIVE ASSEMBLY
Whether you are creating innovative AI for large armies in Total War, character-driven villains, implementing game UI, creating tools for our designers, artists, and musicians, or building the services powering millions of players' online experiences, Creative Assembly has opportunities for you to work with incredible materials and embrace both expected and unexpected results.
Innovation comes from mistakes and rallying together as a team to solve complex problems, all aimed at getting the best performance possible for the game.
We have multiple large codebases across the studio, written in C++ and C# with both in-studio and third-party game engines, and a rich service suite written in Erlang and Python.
We keep everything up to date with our industry experts leading research and development across our projects and engaging with external industry and academia. We write our code in C++ and use everything the language has to offer. Surrounding our games there are Tools and Infrastructure made from a diverse set of languages and skills including Lua, Python, C# and HSL for our Runtime GPU programming.
PROGRAMMING IN C++
C++ is a standard language with a solid process for standardisation and improvement at an international scale. C++ comprises a combination of both high-level and low-level language features and is the only industrial programming language that is built around this concept. It is also one of the most popular programming languages ever created.
Our Head of Engineering Practice, Guy Davidson, is our industry expert for the British Standards Institute (BSI) and is part of the ISO C++ Standards Committee. Creative Assembly is the first AAA studio to be a part of this.
The language is growing to meet the emerging needs of the modern world and the committee is essential in standardising its use. Over 200 people meet two or three times a year in locations around the world to form the committee, as well as meeting online in weekly subgroups. They review new ideas and put them forward for standardisation, sending other ideas back for improvement. These ideas come from the community of users (which exceeds 5 million).
- Rendering Project Technical Director, Tamas Rabel, shares a series on the Anatomy of the Total War Engine in GPUOpen.
- Project Technical Director, Duygu Cakmak and Head of Engineering Practice, Guy Davidson, look at how AI can deliver entertainment in Total War at ACCU 2018.
- Animation Programmer, Hubert Mohr-Daurat, shares a poster presentation on 'Automated Regression Tests For Character Animation Systems'.
- Project Technical Director, Duygu Cakmak, spoke to GamesIndustry.Biz about her journey into the industry.