My Quest For AI Individuality

I am not a programmer, I am especially not an AI programmer.  I am a Designer so my job is to have visions and plant them in others….well sort of.  But a game did this to me and I’ve had a hard time shaking the curiosity of what if even after all these years.  I don’t even know if it was a real moment but it felt like one and that’s what’s important.

The game was Unreal.  The first Unreal.  The single player game.  I was running from a Skaarj which was a predator-type creature and common enemy in the game.  I ran into a room and dove under a stairway to at least give me time to collect myself.  The Skaarj ran into the room and stopped.  Crouched under the stairway I was watching him assuming he would spin around and shoot me using his “knows where the player is at all times” AI knowledge, but that’s not what happened.  Instead he stood there, looking around.  Apparently coming to the conclusion that he had lost me he slowly walked out of the room.  This may not seem like a big thing but this was 1998.  Back then AI ran at you and then shot at you, and not much else.  I never saw an example of this happening again in the game and even replaying it I never had it repeat.  What the heck happened at that moment?  Was it a bug? A happy glitch?  Whatever it was it left an imprint on me and my approach to AI scripting. 

When I was on the Quake 3 team I spend several weeks at id Software working as a preliminary production tester at both the beginning and end of the project often focused on game play rather than bugs.  One of the AI programmers there (Mr. Elusive) and I got into a discussion regarding Sarge’s level.  You were in a one on one match with Sarge and when he was being balanced I said it felt like he was cheating.  It felt like he was taking aim on me through the walls and shooting me the very moment I came around the corner.  Mr. Elusive assured me that it wasn’t happening, that’s not the way the AI works.  I said but it feels that way and he again said that’s not what happens.  So I explained, “Whether or not it is happening doesn’t matter.  What I’m saying is it feels like it is.  The players will feel like it’s cheating.”  That is what AI is all about, feeling correct.

In 2001 I worked on Return to Castle Wolfenstein and strove to make each AI feel unique, like they were an individual.  Through the script I was able to make some become more aggressive when their health dropped.  I made some cower and run for cover when their captain died.  I wanted them to feel real like had a sense of self-preservation mixed with a personality.  I’m not sure it was achieved but again things were pretty basic back then.

My next opportunity to put a stamp on AI was on Quake 4 but thing had changed.  Game play structures had become more systemic.  While Quake 4 AI was certainly not systemic there was no room for tinkering in the AI structure.  AI was setup to be predictable.  The guys with green armor always throw grenades, the guys with red armor have more health, etc, etc.  The archetypes were different but the individuals were not.  Once Quake 4 shipped I became a little obsessed with a Quake 4 mod I wanted to create called Grunt Hunt.  In Grunt Hunt it was you against 1 Grunt, but instead of a mindless charging creature he would run from you, pick up health and ammo drops, he would strive to live rather than be mindless fodder essentially following the same rules as the player.  Seek better weapons, ammo for weapons, and health.  However unlike multiplayer bots the pace would be slower, with faster death and higher stakes for sudden moves.  I wanted to AI to experience the world as the player did.  The player doesn’t know a heath pack is in a room until he walks in it, and I wanted the AI to not know either.  A health pack enters their field of vision, they assess their health and determine if they need it or not.  Their health drops dangerously low, they change tactics to a more hyper defensive mode, going cover to cover in search of health over attacking.  At least this was my vision.  I was quickly told by programmers this couldn’t be done.  They said the processing power needed to have an AI running around assessing their environment was too great.  So that sucked.  

On later titles I conceded to simply making the AI appear smart however since coming to Ubisoft they use a fully systemic system that designers have little control over.  I can't really talk too much about the systems Ubisoft uses but I think there is room for improvement that can rise the average AI about the rank of fodder.

AI has become more of a person pursuit at this point.  I have many titles rattling around in my head with unique AI problem to solve.  I would still love a chance to tinker around with AI ideas that go beyond the norm.

No comments:

Post a Comment