In 'Anger, Sadness & Envy No.4', Narcogen and Trindacut made some comments about scripted NPC behaviour which resonate with an article (or rant) I've been developing for some time.
Let me emphasise that this isn't a witch-hunt, and it's not targeted on any particular individual. Though I use a specific instance from Halo 3 to illustrate my point, I'm not out to pillory the person(s) responsible - we all make mistakes, and the important thing is that we learn from them. The problem I'm describing is one which I believe to be widespread in game development. It's just particularly sad, not to say alarming, to see it manifested at Bungie.
Let me begin by introducing my candidate for most annoying NPC in Halo 3's Campaign. This is the marine who delivers the Gauss Warthog as you emerge from the wall which protects the Ark's Cartographer. For those of you who haven't played through the Campaign as often as I have (no Live membership), see if any of these jog your memory:
Entering pursued by two Ghosts, he seems to find the task of driving around a perfectly ordinary rock severely challenging. He usually spends five to ten seconds edging forward and backward like a timid driver trying to parallel-park, all the while shrugging off a hail of plasma bolts from the Ghosts which would drop you, the player, a mere heavily-armoured super-soldier, in seconds on any respectable difficulty level.
Having started with a random male-marine voicing, when he finally succeeds in reaching his scripted destination and dismounts, he switches to the Australian marine voice... and stands there like an idiot yelling about the urgency of the situation and the need to do something about it quickly - rather than doing something constructive like manning the Gauss gun and taking out the Ghosts, while the poor player sits in the driver's seat watching his shield evaporate.
This whole sorry sequence is a near-perfect example of how not to use scripting within a game. Leaving aside careless errors of execution (like the voice-switch), the fundamental problem here is that rigid scripted behaviour has over-ridden the adaptive behaviour of the normal marine artificial intelligence, resulting in artificial stupidity.
Think about this for a moment. What's the difference between a good and a bad NPC AI? A good AI appears intelligent because it adapts to the player's behaviour and the situation in general. An NPC which fails to do this appears stupid, frustrating the player and undercutting the player's immersion in the game world.
An NPC's illusion of intelligence is inevitably rather fragile, given that we're still a long way from achieving true AI, and we probably couldn't implement it on the 360's hardware in any case. Nonetheless, Halo 3's marines generally do a fair job of simulating intelligent behaviour and cooperating with the player. Why, then, would any competent game-developer subvert this behaviour for no significant gain?
I believe that the answer to this question, and other related mysteries (like the infamous rulebook-busting boss-battles in Halo 2) lies in a deep cultural division in game development. As someone who spent most of a 14-year games industry career uncomfortably straddling this particular cultural chasm, I think I'm in an unusually good position to describe the problem.
The cultural division in question is the one between programmers and artists. How does this relate to the sort of problem I'm describing? Adaptive AI behaviour is created by software engineering, the province of programmers. Many artists (and game/level designers tend to think of themselves as artists, with reason) regard all 'engineering', and the people who do it, with barely-disguised contempt.
To these artists, it's an article of faith that creativity is their exclusive province, and any product or process of engineering is inevitably inferior to what they can produce. This conviction drives them to over-ride AI systems with scripting where it's neither appropriate nor necessary, and subvert the established rules of the game world on a whim. Gameplay and immersion are routinely sacrificed to their bad judgement, arrogance, vanity and insecurity.
Insecurity? To be charitable, some of these artists may see software automation as a threat to their jobs. To be brutally frank, some of them may be right. Any artist needs self-belief or (s)he will never dare expose their creations to public view and criticism, but if this is not tempered with judgement and self-honesty, the result is inevitably bad art and pretentiousness. Or, in this case, inferior gameplay and loss of immersion.
---
Postscript: Having been justly reproved for splashing my long-accumulated bile over people who don't deserve it in the least, I've apologised below, as best I can. Unless I'm asked to, I won't edit this article or take it down. Instead I'll leave it here as a lasting reminder to myself to think and think again before I rant in public.