Not all AI problems are at the coding level. Part of the reason AI doesn't seem to be advancing much is because it takes an incredible amount of animation and voice work to model dynamic AIs who have reactions to large numbers of situations. Take Crusader Kings's AI. It's great. Civilization: pretty good AI. Now go voice, model and animate every interaction that could happen in those games. You're right, no one has the time and money to do that.
So for example in FPS games soldiers are giant, heartless idiots. In real life when you shoot a "bad guy" and they go down, they're probably wounded. That means they will fall and crawl/cry away and one or more of their buddies will probably jump to help them escape the conflict zone. This could be programmed, but it'll take a lot more work to get it into the game, and then you start asking if "it's worth it". Should we give more animations to the AI? or to the player? What makes the game funner? In this example you would need a system that detects injury to specific body parts, animations for each wounded body part, different carry animations for the one helping the victim, and so on and so forth. Lots of work, obviously.
Aside from that there seems to be a rift between what seems like cool AI and what's good AI for a game. Often times I find myself going down a path of "the more human the AI the more interesting for the game" but the problems with that is 1) as humans, we recognize anything that isn't human as just that, and pretty much instantly and 2) much of the fun in many games comes from reliable situations, which humans don't always produce and 3) we spend so much time killing in games I'm not sure I want to be killing the most human enemies possible - an FPS where enemies beg, cry, help each other, run away and die slow painful deaths while crying out to their parents may be an interesting experience, but it's not one we want in most of our games I think.
So other than "AI that moves in real ways and reacts dynamically" and "emotional AI" there's also the problem of "Effective AI", which is both simpler and more complex in my mind. In many games programmers have to "cheat" to make the AI miss - it's pretty easy for a computer to hit a target, as you can imagine, so you could easily have a CoD where the soldiers never miss and always head shot you as soon as that 1 pixel of your pokes over a box - but that ain't fun.
Log in to comment