FACT FILE: Programming By Fabio Chirico - Creative Assembly The Missing Dead Activity Pack to be used with the Missing Dead Game app What does the Job entail? A Programmer is responsible for implementing systems that are then used by designers/artists to create a game. The sum of all these systems is often referred to as a game engine. These include, but are not limited to, a level editor, gameplay, rendering, sound and networking, an example of such an engine is Unity which offers all these features. Most of a Programmer’s time is spent writing code, but a very important part of their job is to think ahead and design systems and solutions that are efficient and easy to use. To find out more about programming in the games industry, look at Creative Assembly’s Creative Chronicles series. Different areas/specialisms of the role: There are many areas a programmer can specialise in when it comes to games. There are programmers that take care of the low-level systems, like rendering images on screen, managing assets, providing access to sound and input. these are often referred to as System or Engine programmers Gameplay programmers implement and maintain systems like player input, NPC (Non-Player Character) behaviours and AI UI (User Interface) programmers specialise in implementing systems to manage the user interface in the game. They’re responsible for all the things that appear on screen like the health bar of a character, timers, scores and mini maps Audio programmers make the sound in the game possible. They often have a background in music and/or sound There are many more specialisations, too many to describe here but these may include backend, networking, tools, build automation. Main skills required: A programmer needs to be skilled at using at least one programming language and most of their time is spent writing code. The most widely used programming languages in games are C# and C++ C# (“c sharp”) is used by Unity; the game engine that was used to create the experience here at the museum. C++ (“c plus plus”) is used by Unreal Engine and most of the proprietary (bespoke) engines used by many other companies. A good understanding of maths is a big plus for any programmer, especially in games as we often use trigonometry, linear algebra and some calculus. Also, a good understanding of how a computer works is desirable. Interesting Facts: Computer Science was born many centuries ago to study the way to efficiently organise and manipulate information. Ancient Greece, Egypt and other middle eastern countries have a long track record in Computer Science. The word Algorithm (the set of steps needed to achieve a task - think of it as a piece of code a programmer writes) comes from the Latinisation of the name of Muhammad ibn al-Khwarizmi, a mathematician, astronomer and geographer who lived in what is now known as Uzbekistan more than one thousand years ago! He wrote a treatise about the Hindu-Arabic numeral system and became the most widely read mathematician in Europe in the late Middle Ages. Important subjects to do at school: Maths is very important, not only for the actual skills it teaches that a games programmer will end up using frequently, but also because another very important subject is logic and that derives straight from maths. Being skilled at coding is very important. It does not matter what programming panguage you study at school; the important thing is to learn how to design code efficiently.