Next Gen Beautiful But Brainless? 131
Next Generation has up a short piece discussing a Guardian Interview with AI developer Steve Grand. Grand opines that next-gen graphics are deepening the uncanny valley. More than just plastic looks and inhuman faces, the weakness of game AI is increasingly becoming glaring compared to the graphical prowess in games. "AI isn't so much unappreciated as nonexistent. Most of what counts as AI in the games industry is actually a bunch of 'if/then' statements. If a computer character doesn't learn something for itself then the programmer must have told it what to do, and anything that does exactly what it's told and nothing else is not intelligent. This is changing, and neural networks and other learning systems are beginning to creep in. But games programmers tend to devalue the phrase 'artificial intelligence."
Re:AI has never been important (Score:3, Informative)
The goal isn't "create better losers," it's "create characters whose actions are lifelike." In the problem domain you specify (FPS and beat-em-ups), this can mean (among many other things) having computer players with a limited "view" of the game space, the ability to learn, and the ability to initiate actions that aren't directly coupled to the human player's inputs. This isn't easy even in such a limited (read: boring) problem space.
Now, get into RPGs and the like where language and manipulation of abstract concepts are important and you're really into the domain of difficult problems. We're still in an era where "if you bring item X to NPC Y and you've equipped Z then NPC Y smiles and gives you item ß" is hardcoded. Not all games are about shooting or beating up the computer player.
-Isaac
Re:AI has never been important (Score:5, Informative)
That's absolutely true, but is in some ways dependent on the game. In a fighting game, you can always see what your opponent is doing, so if you had perfect reaction time you could counter every move. In this type of a game, a computer could theoretically play "perfectly" and never lose.
In an FPS, this is not necessarily the case. Bots that can aim perfectly are quite potent, to be sure, but sometimes being smart can be just as important to actually winning. For example, if the AI bot has a predictible pattern through the map (as most bots I've played against do), then when you know where the bot's pathing takes them you can have fired a rocket at where they are going to be so it smacks into their feet right as they round the corner. Unless the bot "cheats", and sees your rocket through the wall, it won't be able to avoid it nor will it be able to retaliate because you've moved around the next corner already to line up your next ambush shot. An actual AI that attempted to learn your patterns, and change its own pattterns when it realizes that you've discovered them, would be a truly deadly opponent.
This is where the difference between algorithmic precision and speed vs actual intelligence becomes obvious. Parts of the game that require fast reflexes and precise aiming are where the computer dominates. Parts of the game that require strategy are where the computer lags severely. One can compensate for the other to various degrees depending on the game. Look at chess. Simply by examining as much of the tree of potential moves as possible it can beat a human player even though it has none of the strategy or intuition that makes the human player good. And ridiculously powerful computers can only just barely compete with the top human players by using the massive computation model.
But that's only talking about victory. To make an immersive experience, AI could do a much better job than if/else statements, at least in theory. An enemy character that reacted to your actions in a believable way would be much more immersive than one that only responds to a couple specific stimuli and has only a couple scripted strategies. A lot of FPS AIs I would call blatantly retarded and completely wooden and predictable, and that takes you out of the game regardless of whether you give the AI unnaturally perfect aim or not.
On the other hand, I'm realistic, and AI that really behaves in a believable way without scripting is a long way off. For now, if/else is the most bang for the buck. I'm just saying good AI could make for a much better gaming experience, and much better opponents, ones that are truly vexing to beat without having to make use of perfect aiming/reaction times. And it wouldn't feel as cheap as Akuma to boot.
Re:AI - non-existent (Score:3, Informative)
It's a bit off topic here, but I think the key with online gaming is to merge these two where possible. I think that's one of the things that made Halo 2 so popular on Xbox Live - you could play WITH your friends as a team, and take that team against a team of strangers. And not just random people, but people of approximately the same skill level.
It's an incredibly fun way of doing it that blunts the annoyingness of asshats you meet online - since you're still on a team of friends, and you don't hear the other team much during the game.
Game AI is hard, but not nebulous. (Score:5, Informative)
In the context of this discussion, "AI" means broadening the use of those algorithms (they are already necessary in some situations anyway) and in general producing game AI that's more capable - better able to deal with obstacles in the environment, predict player strategies and determine which of its strategies are most effective against the player. The goal being to create automated opponents which don't need to rely on unfair advantages (such as superior car performance in a racing game) to compete against human players.
In the context of, say, a mech combat game (as an example, racing games are a bit more of a static problem, and flight sims wouldn't require so much obstacle navigation), a capable AI would likely need the following:
- A predefined set of tactics. These would be designed by the people who create the game. The important thing would be that the tactics are effective and that the game AI has sufficient information about when each tactic is useful. Supplying this kind of "playbook" information decreases the demands on the AI program significantly: they no longer need to be able to synthesize these tactics, they can merely choose the right one.
- A system for selecting tactics to use: a good design would include considerations like the state of the AI's mech, the weapon being used against it, and general parameters of the enemy machine. (For instance, a good AI operating a sniper machine should know not to close to close range with a player machine that specializes in close combat... Likewise, if the AI's machine is running out of power, it shouldn't attempt an "overboost" move - unless it is clear that such a move could work sufficiently to win the fight.)
- An adequate navigation system for moving around in the environment. This must be tied in to the tactics being used - so that attempts to dodge a missile, for instance, aren't foiled by collision with an obstacle.
- An adaptive factor - a process that attempts to determine how effective various tactics have been against a particular opponent, and why certain tactics may have failed - so that tactics that are likely to fail again are disregarded.
- A random factor - the AI's next move is randomly selected from among the best candidates.
See, that's not so nebulous, is it? Pretty well-defined, I'd say. It's just, as you say, hard. It's hard to create a system that's dynamic and complex, it's hard to make sure you've got it right when you have created it - and the problem with game development is that there's so many other places that effort could be directed which aren't as easily dispensable as good AI. Most game AIs nowadays have a moderately good playbook (it's one of the easiest elements to add - humans know how to play the game and so they can record sequences the computer can repeat - so it's easy to add a small playbook - though providing good static information about how to choose a tactic from a larger playbook is harder), and a random factor is easy to introduce. Selecting tactics is often reduced to a static problem, and navigation is either made static, or solved by making the AI able to get through the environment in other ways, if necessary. (For instance, an AI that is always shooting and frequently moving forward - but gets caught behind a building - if the building is destroyed when the AI shoots, then moving forward no longer gets the AI stuck.) But navigation often is not tied in to the tactics and adaptive factors usually aren't adequately implemented in a way that makes a real difference.