Programming For Games

What is Programming For Games?

Programming for games is the act of writing the code that tells the game what to do. By following a set of rules set out in the coding language you can let the computer know exactly what it should do. As with computers, everything that happens within a game is controlled through the code. This includes the biggest things like the way your gun fires to the less obvious things like the way the light bounces around a room.

Programming is one of the most highly sought after roles in video games and one of the betterpaid jobs out there. It covers a broad spectrum of work and can be a very rewarding job. The skills are also highly transferable to many other industries if it turns out that game development is not for you.

Game Engines

All of this sounds very intimidating, having to control every 1 and 0 that the computer processes. This is where game engines come in. Game engines take care of a lot of the base coding and gives the user options to change various parts of it by exposing variables that they can change.

Custom code can be added to the game engines to add new functionality and changes can be made to the code provided by the engine developers. This allows programmers to use the game engine as a base and then heavily edit it to be barely recognizable. This is not essential though and an entire game can be made using them without majorly changing the code.

Image result for unreal engine logo
Unreal Engine – Epic Games

At the other end of the spectrum, there is no need to use a pre-existing game engine. It’s possible to code your own engines that achieve exactly what you want much better than adapting one that’s already been made. This is no small feat though, often this is only done in large companies that can afford to hire an entire engine team for a project or series that spans many years. As engines like Unreal become more powerful there has been a trend towards editing and using them for most projects more recently.

Programming Careers in Games

Programming for games is such a vast area of work, as such the roles are often broken down into specialties. These jobs will depend entirely on the needs of the project. A game may utilize light as a major gameplay mechanic so you will want a dedicated lighting programmer, other times you may not need a lighting programmer at all and instead you may have a programmer dedicated to precise foot placement.

Whilst a lot of these are quite a niche, programmers will often spec into a specific type of work. We’re going to run through a few of the big groups here but it is far from the only possibilities out there.

Game Engine Programmer

As mentioned above in the Game Engine section, game engines are all about laying the foundations that the rest of the game is built upon. Not all projects will require a game engine programmer but they are none-the-less essential to bigger projects. Often the game engine programmers will overlap heavily with the other departments so that everything works as it should.

Having the skills to build your own engine, or to edit the engines already out there to use, is one of the most important roles within game development. Without these foundations the rest of the game would not function.

Some of the more famous examples of games that don’t use the more common game engines include Bethesda games such as Skyrim and Fallout, id Software’s Doom and Quake series and Square Enix’s Final Fantasy games.

Gameplay Programmer

A gameplay programmer’s main job is to implement the gameplay designs that have been set out and make sure they are all functioning as best as possible. This role is all about making sure that the feel of the game works and that the gameplay is snappy and flows well depending on the type of experience you have set out to create.

Gameplay programming is a huge and important role in the development of the game, as such there will often be a large number of gameplay programmers on a bigger project and they will often specialize down further into tweaking the parts of the game that need to work best.

A good example of a type of game that requires great gameplay programming is a competitive fighting game. Any small inconsistency between player input and action in-game can become incredibly annoying and one overpowered move could break the entire game experience.

Dragonball FighterZ - A game that requires great gameplay programmers.
Dragonball FighterZ – Bandai Namco

Graphics Programmer

A graphics programmer’s job is all about making the game look as beautiful as possible. This differs from an artist in that the programmer will not be creating the assets that you see such as the character or environments. Instead, the graphics programmer’s job focuses on the technical aspects of the graphics. These include, but are not limited to, things such as the lighting, the way materials look and how reflections work.

Graphics programming is very important to most games and the roles often overlap or work very closely with technical artists. The importance of the role varies greatly depending on the game you are producing.

A strategy game, for example, might not need particularly impressive graphics whereas a game that requires utmost realism may hold the graphics programmer in the highest regard.

Europa Universalis IV, a game which requires little in the way of high end graphics.
Europa Universalis IV – Paradox Interactive

AI Programmer

The AI programmer is there to define how the game thinks. This is most obvious in the games NPCs, whether a friendly quest giver or an enemy combatant. However, they can also be responsible for the way the game reacts to you as a whole, such as Left 4 Dead’s ‘Director’. This can be one of the most challenging roles and one that is rarely praised for their work as it only becomes apparent when it is behaving badly.

Like other roles, the importance of an AI programmer changes wildly based on the game. They do tend to be in quite high demand though, due to the difficulty of the work they produce and the increasing complexity required to improve the realism and depth of games.

Games that require a strong AI programming team are games such as strategy games, especially those with a strong single-player focus. Multiplayer only online shooters, on the other hand, may have no need for any AI at all and their programmers would be better suited to fine-tuning the gameplay.

Dawn of war 3, a game which requires strong AI programming.
Dawn of War 3 – Relic Entertainment

Physics Programmer

A physics programmer’s job is about making and fine-tuning the physics engine within a game. This is a role that has become increasingly important in games recently as they strive to increase realism. Physicsbased games have also become a genre onto themselves.

Physics programmers are important to games, but not essential. This is because there are many pre-built physics engines out there such as Microsoft’s Havok and Unreal’s Chaos. They are still very important in fine-tuning the physics engine if the standard, out of the box model doesn’t work for your project or you need to do something complex with it.

Examples of games that require physics programmers include simulation games and shooting games with destructive environments. Other games like strategy games may involve no physics whatsoever.

Bridge Constructor Portal, a game based all around it's physics engine programming.
Bridge Constructor Portal – Clockstone

Sound Programmer

The sound programmer’s role is to make the game sound as good as possible. Much like the graphics programmer, the sound programmer will not be responsible for directly making the content. Their job is to make sure the sound designers’ work sounds as good as it can. To this end, they will often produce tools for the sound designers to use.

Sound programmers are not always essential to a project. As sound production increases with complexity, such as 3D positioned sound in newer projects, sound programmers are becoming more essential over time.

Small indie side-scrolling platformers, for example, may not need any complex sound effects, simply relying on music and effects being placed on a flat surface. On the other hand, a horror game played in near-total darkness may rely on sound positioning and quality to portray much of its content.

Stifled, a horror game based around sound location.
Stifled – Gattai Games

UI Programmer

The UI programmer is there to make sure the user interface works as smoothly and seamlessly as possible. At first, this can seem like a simple task, simply creating the in-game HUD and the menu system, but it’s an essential role in optimizing the user’s gaming experience.

Difficult, slow or confusing menus can have a big effect on how a game holds the attention of the gamer. This is being viewed with increased importance and so a good UI programmer is highly sought after.

Examples of games that require strong UI programming is information-heavy games like strategy and simulation games. Games such as small side-scrolling platforms may need less of a UI focus, as long as the menu functions well and the HUD shows basic information.

Democracy 3, a game based entirely around it UI programming.
Democracy 3 – Positech Games

Tool Programmer

A tool programmer is essential to the smooth functioning of a team. They will build custom tools based on the needs of the team. This can be anything from a custom UV unwrapping tool for artists, an automatic rigging system for technical animators or optimization tools to work out how to get the game to run better.

Tool programs are essential for bigger projects, where a team will need to repeat many tasks over and over or lots of team members will need to follow a strict set of guidelines to maintain consistency. Smaller game studios or indie ventures may not need a tools programmer though as many free or premium tools are available to download.

Programming Languages For Games

C++

C++ is probably the most famous and widely used programming language when it comes to making games. It’s an object-based programing language known as ObjectOriented Programming (OOP). This means that the language focuses on ‘objects’ or ‘data’ rather than the traditional focus of programming languages on functions and logic.

C++ a language for programming for games

C++ is the best programming language to learn if you want to get into games. It’s one of the most widely used and will be essential knowledge during your career. The only downside is that C++ is viewed as a fairly difficult language to start out with. For this reason opinion is divided on whether it’s best to start with C++ and learn the most important languages first or to start with an easier one to get the grips with coding.

C#

C#, like C++, is a programming language based in C. It is another essential language for game developers to learn. You can create more or less any game imaginable using C# so it’s a powerful tool to have in your arsenal. Whilst not as widely used as C++ it can be great in its own right.

C# a language for programming for games

It’s common for people to begin learning to code in C# rather than C++ as, although it is not as powerful, it is considered slightly easier and quite versatile whilst still being an essential programming language to learn. The game engine Unity relies heavily on C# so it is especially useful when making games in Unity.

Java

Java is a programming language most often used in mobile games. Not to be confused with JavaScript, it’s a powerful object-based programming language like C++ although considered easier to learn. It’s a useful tool to have in your arsenal if you ever intend to work on mobile games which is a large and growing industry.

Java, a language for programming for games

JavaScript

JavaScript is a programming language primarily used for web games. It makes scripting online browser games much easier than many other programming languages. It is also used alongside C# in the very popular Unity game engine.

JavaScript, a language for programming for games

If you want to develop browser-based games then JavaScript is essential. Even if you don’t intend to, Javascript can be another powerful language to have available to you.

Python

Python is an increasingly popular object-based programming language similar to Java and C++. One of the main things that sets it apart from other languages is its straightforward approach and simple syntax. It is still, however, a very powerful language and can be especially useful for tool building as programs like Maya also accept Python.

Python, a language for programming for games

Due to its easy accessibility it is a common first programming language to learn as you can get to grips with the basics of objectoriented programming without tripping up over confusing language conventions.

UnrealScript

UnrealScript is an object-based programming language created by Epic Games to go alongside their Unreal Engine. As it is a custom made language for their specific engine it can be focused on exactly what they need without the complexity of developing a language for a much broader spectrum of use.

As Unreal Engine quickly becomes the biggest and most widely used game engine in the world it is incredibly useful to become well versed in their own programming language. It is, however, very limited in its use so it is better as a supporting language to your base of other languages.

This is part of our Making Games series that covers the basics of many areas of game development. If you are interested in making games then make sure to check out the other articles.

Leave a Reply