What is a video game engineer? What do they do, what is their day like, and how do they do it? In this article, we’ll discuss one of the most important members of any professional game development team.
In the games industry, engineers are usually people with backgrounds in computer science or electrical engineering; they are the wizards who transform the vague dreams of designers and artists into concrete mathematical representations. The team may come to them with requests, either for a new type of movement system or special effect, or perhaps an AI system for controlling the enemies, and the engineers will be responsible for turning those descriptions into systems that can be used in the game.
Engineers work in a variety of platforms and languages: C, C++, C#, Java®, Adobe® Flash®. They may also use programs such as Microsoft Visual Studio® or Codewarrior®. While the tools of the trade may change, the core concepts of engineering are universal. Knowing good coding practices, how to think about and organize problems, and how to create systems that interact further with other systems are high level skills that good engineers have mastered.
Furthermore, a video game engineer understands the real world limitations on the game, such as memory management or graphics capabilities of certain systems, and how to build robust and technically effective products anyway. If the lead designer, art director or executive producer comes to engineering with a specific request, it is up to the engineer to fully realize what that request actually means for the game’s under-the-hood systems.
Types of Engineers
Within this discipline, there is a good deal of specialization. We can’t possible discuss every type of engineer at every company, but we can cover the main three. Among different types of video game engineers are gameplay, systems, and tools engineers.
Gameplay Engineers focus on implementing the design of the game provided by the designers, artists, and other members of the team. Designers may approach gameplay engineers with their ideas for a concept or a system. Depending on the feature (and also depending on the team), the concept may be very well fleshed out, or it may be vague, and the designers will rely on the engineers to work collaboratively with them, adding the technical knowledge required to come up with a well defined, working system.
During the period of developing a feature, gameplay engineers will sit down with designers to make sure they fully understand what the desire is. Designers may call over engineers to hear their rough ideas, and get a simple yes/no as to whether or not such and such a feature is reasonable. Is it possible to have a rag doll physics system when you are attacked? Can we have homing missles that intelligently seek out enemies? Game engineers must be able to listen to these requests and think out what that actually would mean in terms of coding and implementation.
Any engineering feature that is seen in the game could be considered a gameplay engineering task. Grabbing power ups, speaking to non-player characters (NPC’s), spawning new enemies, the player’s very movement, all of these are examples of features that gameplay engineers are responsible for.
Systems Engineers deal more with the back-end functioning of the game’s software, which is never seen by players or consumers. This can include things such as frame rate and engine programming, rendering, and memory loading and management. If a particular level looks very choppy or slow, then it is the responsibility of the systems engineer.
Systems engineers usually have a masters in computer science or some related field, since their work takes them deep into hardware systems. They have a fluent understanding of the technology they are developing for, be it a proprietary console system (e.g., PlayStation 3) or a normal PC. They know how these platforms work and how to translate the game the team is developing onto them. While not given much fanfare, the work of systems engineers is invaluable.
The systems team is also responsible for communicating limits and constraints to the rest of the team. For example, because of system constraints, it may be possible to render only five characters on screen at once. Or, there may be a need for a loading screen between worlds. These are concerns that the design and production teams would need to be aware of.
Tools Engineers are responsible for developing and maintaining the software that other members of the team use to implement the game, called middleware. Middleware is never seen by the end consumer (unless they are shipping the game with a level editor of some sort). This might include level creation tools for designers, text or script input tools for producers, or animation and modeling tools for artists.
An effective tools engineering team will always be asking the question, “What can be made to perform faster?” It is their job to look at the situation and see what is slowing the team down the most and then tackling that problem. For example, let’s say the junior designers are spending about 20% of their time drawing out the levels on paper, and about 80% of the time translating from their notes to the actual game. Tools engineers may come and sit with them to analyze their workflow and see what they are doing. If there is a part of the process that can be automated, then they may create a tool which compresses 50 steps into one press of a button. This allows other team members to focus more on their work and less on the implementation, which results in a better game made more quickly and thus less expensively.
Getting into the Games Industry via Engineering
If you want to become a video game engineer, then you’ll definitely need a computer science degree (unless you can convey your genius in some other way). You will want to have experience working on games, and you’ll want to have seen large code bases. Engineering is one of the most hired positions out of college, so it’s definitely a career track worth thinking about.