When I read Jay Barnson’s review of TGB last week, I made the mistake of not subscribing to his blog feed. Today, I went back to the blog by chance and found some great posts he has made recently on game AI.
The series of three posts began when he was commenting on Raph Koster’s recent posts regarding Ultima Online (here, here and here). In that first post, Jay talks about how perception is reality in games. In the next post, he pontificates on points he picked up at an old GDC session on how to make AI more believable. Finally, the last post on the topic discusses how to fake more believable AI. He makes some great points in all three posts, but it’s the topic of the last post that has my wheels spinning the most.
My current project is a turn-based strategy game in a fantasy setting (I sporadically make posts about implementation details over at my GDNet developer journal). This game has had many false starts over the past few years for one reason or another (which will likely be part of a postmortem on one of my blogs after I finish it), but now development is in full gear. One of the upcoming challenges I will be facing is implementing an AI.
My game design calls for up to 7 AI players in a single player match. While each of the eight factions in the game share the same goals and, for the most part, priorities, they each have different strengths and weaknesses. One is locked and cannot be played until the player defeats it. This faction is very different from the other seven in many ways. My challenge is to come up with a believable AI that takes advantage of a faction’s strengths and weaknesses to achieve the faction’s goals.
While I haven’t come up with a concrete AI implementation yet, I have sketched out what I want to achieve and brainstormed ideas on how to achieve it. There is a wealth of information in game programming books and on the internet on AI techinques, but ultimately what works and doesn’t work depends entirely on the mechanics of the game. I do know, however, that I will be relying on “faking” it where I can. I would love to come up with a complex sytem of interactions that turns into the “best strategy AI ever”. Realistically, I have neither the time nor the resources to do so. What I need is a system that gives the player the perception that the AI is doing a lot of thinking when it really isn’t.
Game AI is a tight rope walk. On the one side, you can make a system that is so realistic that it bogs down the system, limits the number of units (in a strategy game), NPCs (in an RPG), or other game entities you can have running around, and could make the came too difficult to be fun. On the other side, you find yourself with an AI that is predictable, “simple-minded”, and so easy to beat that it’s no fun at all. On both sides, there’s the possibility of the AI being unbelievable and spoiling the player’s experience. Finding that fine line down the middle, where fun, challenge, and believability mesh into a truly entertaining AI is something that some game get close to, but few ever nail.
Technorati Tags: Artificial Intelligence, AI, game development, game programming, game design, Jay Barnson, Raph Koster
Post a Comment