This is a guest post from Phil Carlisle, best known for his work on the Worms series. He appears from time to time in Wolfire IRC and I finally coaxed him into writing a guest blog post! He will introduce himself below.
I was talking to a few people on the Wolfire IRC channel the other day about potential for AI in Overgrowth and Jeff asked me to do a guest blog post. My name is Phil Carlisle and I'm a game programmer/designer/researcher at the University of Bolton in England. I also run a small indie company specialising in "Social AI" based gameplay: MindFlock.
One thing you might not be aware of, is that many in the AAA industry think that we are far more likely to see AI innovation from indie developers. This makes sense, because the cost of production on many AAA games is so huge that experimentation of the kind you need to really add value AI-wise is potentially quite dangerous, both in terms of budget, but more in terms of potential failure to deliver on the promised gameplay features. The fact is, if you are paying 20-40 million in development costs, you have to know 100% that your game is going to ship and with which features. That is not to say that AI innovation doesn't happen in the AAA games, but more that it is fairly rare and often is done as prototypes or during gaps in projects.
I tell you this, because I think that Overgrowth has a huge amount of potential for innovation in the AI of the game. I'll try and highlight some of the possibilities here.
In general, the point of the AI has to be to support the core gameplay. In Overgrowth the core gameplay is clearly the combat, but if you read about combat and its effects on combatants, you'll quickly see that constant combat can be quite tiring. So there are really two directions the AI can head in.
Realizing the world
If you look at the Wolfire Blog, there are plenty of posts that detail the techniques used to realize the world graphically. Normal maps are a good example of this kind of thing, they don't fundamentally affect the gameplay in any way, but make the world more rich, detailed and "realized" than before. I see part of AI as doing exactly this. There are a number of ways AI can help here. The first is to have the AI drive more of the characters in the world. That is to say, the AI should offer models of personality for each of the inhabitants of the world, driving things like facial animations, posture, gesture, intonation and gaze. These are all non-verbal communication cues humans use to determine the intent of others. Imagine approaching a dog and from its body posture and snarl understanding that it will attack you if provoked. Imagine having the actual movement gait (the way the character walks) be affected by its mood, say after a battle it might move very slowly and laboriously, as if sad that its companions have been killed. Each species would have unique aspects to their postures, for instance a rabbit might beat the floor with its feet to alert others of danger, whilst a dog might bark and a wolf might howl. Guys like Ken Perlin (NYU and Actormachine.com) have a lot to offer on this kind of subject.
I remember talking to someone, I think it was about BioShock, who said that the world felt more alive as soon as they added a method for the characters in the world to gaze at things of interest (in their case enemies). Simple things like gaze give us clues as to the importance of objects and characters. Imagine having an "important" character draw everyone's gaze towards them.
So we can model more interesting and more believable individuals. We can add memory for each of them so they can do things like bear a grudge or remember a kindness. We can have them feel both positive and negative emotions towards other characters and objects. For instance a normal bone might have dogs positively straining to interact with it, whereas a bone of another dog might have them disgusted and repulsed. That might form part of a game mechanic (holding a dog bone to move through an antagonistic dog population).
At the level of individual groups, it could be that the player is able to actually interact with some groups more easily. If you consider films for example, often there are individuals in groups who would normally be antagonistic who end up being friends. This would be relatively easy to achieve from the personality and social model perspective and would allow for some interesting interactions. I imagine a situation where in order to progress across a wolf territory, a rabbit might actually befriend a wolf and get it to spray it with scent in order to mask the rabbit scent, thus allowing it to pass by a wolf encampment as long as it is unseen.
This brings us onto the social AI. One of the biggest attractions for the concept of Overgrowth for me, is that it offers the chance to really add some character to the societies of each species. It would be interesting to see for example, the wolves being a more nomadic race, with moving encampments and packs acting almost like bandits. They would have a supreme leader (wolves have a hierarchical society) that would I guess be the Overgrowth equivalent of Genghis Khan. Dogs on the other hand, I can see being far more territorial and socially based. I would envisage dogs having villages and towns with social structures and jobs. Dog guards and dog soldiers would have rigid rules of engagement etc. Rabbits would again have a hierarchical society, but would be far more tribal. I could see rabbits living in largely peaceful societies but with effective guard structures and defenses, although less formally structured than dogs. Rats would be the brigands and thieves of the world. Rats would enjoy games and drinking, living on the edges of other societies. They would probably be found more on the fringes of rabbit society than dogs due to the less domineering rabbit society. Cats would be the loners of the social classes, I can envisage a sort of warrior monk feeling to cats. They would be living in solitude, often in very hard to reach places. I'm sure the Wolfire guys have had lots of thoughts about this kind of thing already.
AI wise, this would all be supported by models of social values. Shared social rules within each society, with the ability to then negate those rules on a per-character basis to allow for rogues and other outcasts. Imagine having a world that is populated by these societies. Instead of simply having combat-enabled agents scattered around a map, the AI would instead populate the areas based on some design input, it would drive the different societies to occasionally get dragged into conflict. For instance a pack of wolves might stray into the territory of another pack, with a small scale skirmish taking place between them, the losers then vacating the territory. It could be that wolves get too close to dog territory and the dogs assert their authority by scrambling the guards to drive off the wolf bandits. Perhaps there are constant skirmishes along the edges of dog territory.
Adding new gameplay
The other side to the potential for AI in Overgrowth follows in the wake of games like Left 4 Dead. I'm talking about the procedural generation of encounters that Valve call the "AI director". In Left 4 Dead which is a very linear game, they use the AI director to drive forward gameplay and to ensure that combat has peaks and troughs in the action. Constant combat can be very fatiguing after all. If Overgrowth had the sort of social models I talked about earlier, then clearly there is room to have non-combat interactions as well as combat. There's actually a good deal of academic research being put into the generation of dynamic narratives, things like Mateas and Stern's "Façade" come to mind. They employ the concept of dramatic "beats" that drive forward reactive behaviours within two characters that you as the player interact with. It would definitely offer some rich ground for organising dynamically generated combat encounters that actually make sense within the greater world (for instance there might be an overall arc that drives the dogs to try and eradicate the wolf threat, but which then draws in the other races and causes them to choose sides). The idea here is to make the world more dynamic and yet still keep it understandable. It could be that you as a player often get joined by AI based helpers to achieve some overall goal generated by the AI director. There's actually a really nice talk about doing this on aiGameDev.com by William Van Der Sterren who worked on Killzone 2, although his system was more a mission generator than a dynamic system.
My main thrust with all this, is that because the Overgrowth world is based on very distinct species, it offers a unique opportunity to experiment with the social boundaries and interactions that we humans have undertaken over the course of thousands of years. We could simulate the drama of many civilisations and how they have interacted in an effort to make the world seem more rich and alive. We could then employ more agent-based personality modeling to create individuals that feel like exactly that. We could have wolves that actually like rabbits, or dogs that are quite frivolous or cats that crave social interaction or rats that are benevolent. The great thing about societies is that the individuals who choose to break away from the norms often end up being far more interesting and entertaining.