Programming For Games
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 better
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
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.
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
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
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
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.
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.
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.
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. Physics
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.
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.
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
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.
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 Object
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
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.
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.
If you want to develop browser-
Python
Python is an increasingly popular object-based programming language similar to Java and C++. One of the main things that
Due to its easy
UnrealScript
UnrealScript is an object-based programming language created by Epic Games to go alongside their
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.