Article
files/assemblyline

Where to Draw the Line Between AI Programmers and Designers?

Alex J. Champandard on January 22, 2008

In the early days of game development, bedroom coders could easily build entire games on their own. Then, when teams started getting bigger, designers would be responsible for coming up with ideas and programmers would implement them. But since the advent of data-driven engines, it’s much less clear what everyone’s responsibility should be.

This week’s developer discussion on AiGameDev.com picks up on a running theme recently on the blog and in the forums. As Dave Mark noticed [1]:

“Where does AI programming end and AI design begin? […] For that matter, where does level design end and AI design begin? As an AI programmer are you relegated to simply writing the equivalent of custom middleware for your team?”

No doubt a safe answer to these questions would be: “It Depends!” But in an attempt to extract something a bit more useful from this discussion, some real-life examples are necessary…

Calling for Industry Experiences!

If you’re working in the games industry on a team that includes at least two people, a programmer and a designer, even if it’s just part-time, then post a comment below. In particular, try to describe the following:

  • How was the engine architecture structured?

  • What were the responsibilities of the designers and the programmers?

  • Did anything work out particularly great, or badly?

Division of Labor

I expect this will be a great discussion topic, but here are some

  1. What do you think is an ideal way to organize the workflow in a team. ignoring current technology?

  2. Should designers get involved with programming at all, or programmers with design?

  3. How do scripters fit into the grand scheme of things?

Join the discussion and post a comment below or in this thread of the forums!

Discussion 6 Comments

Dave Mark on January 22nd, 2008

Aw hell... you may very well open up a can o'worms on this one.

Andrew on January 22nd, 2008

You should post this in a few other AI places to see what response you get if no one answers here ;)

JForce on January 23rd, 2008

“Where does AI programming end and AI design begin? […] For that matter, where does level design end and AI design begin? As an AI programmer are you relegated to simply writing the equivalent of custom middleware for your team?” As a former games industry programmer (of sorts) I ended up working closely with a programmer who introduced "natural stupidity" into a chess mini-game. While the programming is at first based on the design, the design eventually mutates to use what the programming can provide. Anyone who tells you that design is a static process is wrong 99% of the time and distorting the truth the other 1%. As for level design and AI design the two should reflect each other. There's no point having AI that can search lockers if there are no lockers to search. At the same time, having lockers in the level isn't helpful if there's no way that your AI can interact with them - the player would notice something was off and your game world would look tacky, losing all the immersion and wasting a lot of effort. The two disciplines should complement each other, producing an experience greater than the sum of its parts. The next issue is one of software design. A bad AI program is one that requires a different fundamental programming (not just changing standalone settings) depending on it's environment - ideally no level-specific customisation should be required (although I realise that budgets and capabilities are rarely ideal). Take Unreal Tournament for example. A level designer can make a few levels and then the AI spawn and movement points are added. This is a flexible solution that enables the level designer to tailor the AI to the level. It isn't as good as the AI figuring out the best movement points for itself though - play levels often enough and the AI seems repetitive and staid. Hopefully the next generation of consoles will bring us a solution.

Jare on January 25th, 2008

[QUOTE=JForce;767]While the programming is at first based on the design, the design eventually mutates to use what the programming can provide.[/QUOTE] That's a wonderful way to describe it. A programmer must understand the intention of the designers and fill in the blanks where necessary, but designers must also understand the possibilities of the system and make the most out of it. If one of them doesn't really understand or respect the other, then things will not be smooth and any line you draw will necessarily alienate one of them.

Dave Mark on January 27th, 2008

I think it was refreshing to watch the F.E.A.R. behind the scenes video and hear them talk about the fact that NONE of the AI was scripted. That was all Jeff Orkin and the planning architecture. That is a situation where he was not creating middleware for other people... he was creating the whole of the interaction. The level designers would drop the various baddies into the level but then trust that they would act appropriately according to Jeff's design.

jeanbreckman on January 30th, 2009

this one is really hard to discuss here. better put it on the proper forum.

If you'd like to add a comment or question on this page, simply log-in to the site. You can create an account from the sign-up page if necessary... It takes less than a minute!