Saturday, December 9, 2017

AI Techniques for Game Programming

7:18 PM By



This has been a notoriously tough area to get developers interested in for a number of reasons. Most developers feel that their current techniques are just fine and are easy to debug. The standard finite state machine (FSM) and fuzzy state machine (FuSM) have done a great job of providing robust, easy-to-debug AIs that have led to hit games from Age of Empires to Quake. They work, and with enough code time, they can be built to cover almost any situation. They’re also sadly predictable in so many ways, and that’s where developers are beginning to run into the Law of Diminishing Returns.

Building an FSM to handle the innumerable possibilities inherent in some of the new games can be mind-boggling, the number of choices an AI must evaluate is overwhelming. To the human player, there might be two or three potential decisions which are “obviously” better—but what if the guy who coded the AI the Saturday night before the game’s final version was sent to the publisher didn’t think about those? The player sees the AI faced with a terrific decision upon which the entire fate of the game hangs—and it chooses incorrectly. Or worse than that, it chooses stupidly.

A few instances of that and it’s pop! The CD is out of the drive and the player has moved on to something else. Suppose instead that the player faced a computer opponent that didn’t have a blind spot, that a game didn’t have a special combination of features that would render the AI brain-dead once the player discovered it. Suppose instead that the player faced an AI that might actually adapt to the player’s style over time, one that played better and smarter as the player learned more about the game.

This kind of adaptation, or learning, is something of a Holy Grail for developers and players alike, and players clamber for it whenever they’re asked what they’d most like to see next. Gamers want to be challenged by an AI that actually adapts to their style of play, AIs that might anticipate what the player is most likely to do and then do something about it. In other words, an AI that plays more like another human.

0 comments:

Post a Comment