A new kind of Engineer?

I’ve noticed over the years that while specialization has been occurring in the games programming trade, it tends to be technology driven specialization, rather than specialization by game features.

For example, we get shader / renderer writers, we get AI coders, we get Sound guys, we get Physics guys, we get scripters and we get UI guys (to mention a few) – they are all broken up by technology inside the engine (mostly).

But I’ve started to notice a branch off of a new kind of programmer – two different types of the same thing. The Content Collator, or the Game Play programmer. Game play programmers have been around a while, but generally they aren’t the same as what I am about to describe.

I see the current crop of game play engineers to be content collators – they take all the content and assets you get from the content creators and actually create the game around it, using scripting and front end tools. They basically don’t even need to be programmers at all, except they do because of scripting and the need to build the tools that enables them to dump content in real fast. Instead of writing loads of code in C++ to make animations happen, they build a tool that enables them to string them together via a GUI and do it that way. Effectively they make the actual game (as apart from the engine) totally data driven. Obviously tools will need to be changed and extended as games go through iterations, but thats fine; thats what these guys *do*. The cool part is that not only do they write the tools but they also use them – so they are actually building the game play experience.

On The Sims these guys are called Object Engineers – they basically build all of the objects in the Sims which is what the game revolves around – all the behaviors that the Sims perform are actually part of the object. They build scripts, make the animations work, put in the sounds etc.

I see similarities in how level designers in FPS games work – really there are two disciplines at work there, basic architecture design and the actual creation of the game play experience through scripting, object placement and so on. The two work hand in hand, but usually aren’t built by the same person, at least not recently anyway (it used to be that it was, which is why some games have such unbalanced levels, some of which were gorgeous but barren and others that were loaded with game play events but looked blah).

The second guy is the one that actually gives you the game play experience and it’s the new discipline that I see as part engineer and part designer – the guy that actually crafts the experience you have as opposed to the person who crafts the engine it sits in, what it looks like and the environment you are in.

I think this position is really really hard to hire for, but when you get a good one he makes all the difference in the world. I have to believe that people like Valve and Infinity Ward are very cognizant of this kind of personnel requirement.

In terms of the second kind of engineer – it’s kind of similar to the first only it’s a more hard core coder that bashes out very fast prototypes and is used only for the prototyping part of the development process. They build fast and dirty prototypes that really requires them to be half bedroom hacker coder and half game designer, the same kinds of qualities that the afore mentioned programmer requires, except the production coder needs to be doing things with GUI’s that get tested and can be used by everyone rather than writing low down dirty throw away system that are only there to prove a concept.

These guys are never intended to be part of a pure production group, so they don’t have to worry about writing correct systems, only writing them fast to prove a point and move on.

I totally believe that as we move into the last part parts of the naughties, that this kind of engineering position will start to get recognized officially in terms of career paths and hiring requirements.

Food for thought.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>