Next Gen Beautiful But Brainless?
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."
If that's what people want, they'll buy it. If they don't the producer will try a different tack. That's how market's work.
I will have a sig when the market demands it.
The problem is that AI in general is "hard". Not just for games. We still don't understand well enough how our own intelligence behaves to model it successfully in games. As a programmer, I can model a process pretty easily. I can model objects fairly well. What I can't model is something that is nebulous and undefined.
Layne
I always get a little miffed when games use "AI" to describe what they do.
OTOH, I do see why true AI doesnt make much of a play in games... how long does the average bad guy live in a FPS anyway? If they learned from one guy to the next it would be more like a 'hive mind' then indviduals learning. For RTS games it could make a little more sence, since the "commanders" wouldnt be amung those slaughtered on the battlefield on each level. MMO's present a whole bucket of issues beyond the life span one... would they learn against EVEYONE or only their current PC opponents? if everyone, would it really be worth it as due to the MASSIVE diversity in player styles the AI would become muddied and non-specific.
the preceding post was not spell checked... suck it.
You already have the suspend your sense of belief to really think that you will actually beat a computer in say a FPS where it can aim perfectly, or a fighting game where they can simply react to any move you might do. For example you can play the training mode in Soul Calibur and you'll quickly realize that the computer can guard counter every move you ever do forever, but of course they don't do that in the real game. Even on the super duper hard setting they give up after a while, even though they can do it forever on the training mode. Shin Akuma in various Street Fighter incarnations counters almost every move perfectly. You throw a fireball, he'll jump kick you. You jump kick him, he'll dragon punch, and the only way to beat him is hit him with moves that he isn't programmed to counter. There's no reason why the computer can't play like that aside from it'd make a very boring game when you repeatedly get owned by a computer.
If by being smart means 'better at a game' the AI is already a super genius. If by smart means 'flailing your hands around while pretending to do something before losing to a human player', then whatever that creates the best sense of illusion works the best. If it's a bunch of if/else statements, why not? There's no reason any fancy technique will get you a fancier loser.
"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."
First, a neural network is more of the same "if/else" logic as any other AI engine. It's only different in how the AI processes it's input. Sounds more to me like a programmer/theorist who's pissed at all the tricks in existence that can emulate (fairly well) basic intelligence without the use of any "classical" system like a neural network.
Furthermore, neural-network-based AIs would have to come pre-programmed. This means a neural network that starts at a certain level of development rather than a blank slate. Should bad guys have to learn when and how to fire a gun while you're playing the game? It'd make for some boring encounters.
Furthermore, most games are quite linear. There's a story to tell and you can't really insert many uncontrollable variables into a linear system and still be able to maintain consistent play experiences for your users.
I wonder if this guy has seen Spore.
It's not about whether or not it's there, it's about where the focus of the developers is. For example, anyone who's played EA sports games knows about the poor quality of AI. Sports games are a little easier for users to justify, because exceptional things happen, but when the computer is cheating, it's cheating (careful use of save states can prove it). The problem is that the shiny graphics generate hype, which makes publishers want to sell games (like Doom 3, which had great graphics, and crappy gameplay). And since the mindless masses LOVE shiny, there's your forumla. How come I still have fun playing the old arcade games from the 80's and 90's? Because they're actually fun, and since we didn't have graphical power back then (or even colors), developers could focus on gameplay, which includes AI. Sure, the computers may not have adjusted to your every move back then, but at least they weren't as mindless as the people who think that good graphics == good games and bad graphics == bad games.
There's been some great reasons listed already, but the obvious one to me is that the skill of the A.I. isn't apparent in commercials and trailers and screenshots, the graphics are. Graphics are driving the industry, they always have. In my opinion, there was a time when the discrepancy between graphics and A.I. were smaller.
Consider the days of Civilization II. The graphics were decent for the day but the A.I. was generally pretty good and coupled with a good game engine (not without its faults though), the discrepancy was not that apparent.
Fast forward a few years to the console game Goldeneye. Very good graphics for its day (especially on a console) but the A.I. was starting to stagnant. There were cases where infinite baddies would flood through a door, getting mowed down continually. Of course, Goldeneye came out almost exactly a year before Half-Life, a game usually praised as having a good graphical engine (on the PC) and good A.I.
Now a few years later again, we have Half-Life 2 and FEAR and many other first person shooters which are hailed as having great A.I. But all these games still suffer. Why is that soldier jogging against the wall? Why is this character I'm supposed to be leading around getting stuck on corners and running around randomly? The developers are spending so much money on graphical engines that they expect us to be entranced immediately by the world they created, and then all of a sudden, one of the enemies (or teammates for that matter) does something extremely stupid or so abnormal, we're ripped out of this trance and forced to remember that yes, we're just playing a game.
I'm sure it's not always the developer's fault. They have a lot of pressure from all sides to make the presentation of the game great, but it's apparent that the presentation can fall flat on its face when the A.I. is brain dead. But they don't have to show the A.I. being stupid in the commercials, they can show off the graphics and the pre-rendered cutscenes.
Graphics are driving the industry and thus the industry is being driven by Nvidia, Intel, and ATI/AMD. If developers were allowed to put some of the money they used to build a state of the art graphics engine into A.I. development, I think we would be taking some great steps. Here's to no more wall-jogging Nazis.
Reviewing just the first hour of video games.
It is a common phenomenon in the AI community. When a new method or algorithm is first proposed, which achieved gains over prior methods, it is consider "new AI." But as time goes on and the algorithm is put into common use, it degrades into "just another algorithm."
AI is really just whatever the bleeding edge happens to be. For instance the A* algorithm to find "good" paths. It's certainly an intelligent algorithm, but nobody really considers it "AI" anymore. It's just a search method.
So, is a series of if-then statements "AI?" If it's new and powerful and does stuff that no other algorithm can do, probably yes. But as time goes on it becomes just another algorithm. AI, pretty much by definition, is simply "The smartest stuff we can do as of yet."
For one thing, games are getting better and better when it comes to AI every year, and it's not "just" because it's hard. It's also because good AI is resource-intensive, both in terms of processing power and in terms of storage space (depending on what you want to do) ... on and in terms of time it requires to develop.
A simple rules-based system that has a bunch of if-then triggers is sufficient for a lot of things, but once you get into sophisticated behavior the number of rules becomes simply to large to generate, and the process for selecting the best action nontrivial as rules get bunched together due to equivalence, etc.
Statistical learning systems (Bayesian, etc) can be very powerful, but have not been seen in games until recently (for a great example check out Forza Motorsport 2 coming out in May, for which the AI was developed in Cambridge, UK, the MS Research building next-door to where I took my lectures on comp. text and speech processing ^_^).
The main reason that game AI is not as advanced as folks might expect is that "sophisticated," learning AI takes a significant time to develop and train. Most importantly, it requires expertise that goes beyond just being able to code C++ or Java or CLIPS or what have you. People with this expertise don't go into game programming because there they get underpaid. Rather, they go to Google or Microsoft or Yahoo or make their own company. (Indeed, Forza's AI was developed by MS rather than a 3rd party middleware dev house.) Why? BECAUSE THE REAL MONEY IS IN SEARCH!!! That's where the AI experts go, folks.
I like basketball!!1!
To call A* and finite state machines artificial intelligence is, in my opinion, an extreme twisting of the term; these things only fall under that label because early researchers were still under the delusion that they could hand-code an enormous tree of if statements and if they gave it enough feature-bloat it would seem intelligent. In my opinion, the simple algorithms used in today's "AI" engines should more be labelled pre-AI, as in useful procedures that incoming data might be preprocessed through before it's sent to something that actually does something smart with it.
In my opinion games are never going to push the bleeding edge of true AI, simply because to even model the inputs that (for instance) a group of five or six enemies should be taking in starts to tax the processor - to do it right one would need a separate render pass for each NPC, not to mention enough computational mayhem happening behind the scenes to figure out what to do with the data (yes, I'm aware that the second bit of this problem is entirely unsolved). And I somewhat doubt that even with infinite programming resources most companies would be willing to give up much if any precious processor time for something that doesn't have an immediate visual impact. Why waste time on a few thousand multiplications per frame per NPC so that you can have a decent neural network when you could use that time to push a thousand extra particles through the renderer, have even more realistic explosions, and hack together the AI just well enough using a finite state machine and some pathfinding to satisfy the average gamer? Not that I would even call a neural net AI - again, preprocessing! [Though this is less cut and dry than the simpler algorithms - the real issue here is that just about every application of neural networks involves feed-forward nets of some form, which aren't capable even in principle of learning on the fly. If someone figured out a way to train and use recurrent nets effectively, I might be persuaded to reexamine the issue, but to date I've never seen a practical architecture that even has the theoretical possibility of active learning.]
To call A* and finite state machines artificial intelligence is, in my opinion, an extreme twisting of the term; these things only fall under that label because early researchers were still under the delusion that they could hand-code an enormous tree of if statements and if they gave it enough feature-bloat it would seem intelligent. In my opinion, the simple algorithms used in today's "AI" engines should more be labelled pre-AI, as in useful procedures that incoming data might be preprocessed through before it's sent to something that actually does something smart with it.
Yeah, I tend to agree. In my AI class at college we learned things like the "Customers who bought this also liked" algorithm, as well as the search tree stuff I mentioned. Like you, I don't think that stuff is a likely candidate for the problem of synthesizing an intelligent mind. But within the context of most games, AI just means the perception of intelligent strategy, within a very limited domain. It's easy to make an "AI" capable of piloting an Armored Core or driving on a small set of pre-defined tracks. It's harder if you also expect that AI to carry on a conversation. Being capable of behavior dynamic enough that it's able to compete with intelligent opponents is all that's really necessary - the complexity of that problem is determined by the complexity of the game.As for learning - it can be done rather more simply. For instance, if an AI tactic in a Street Fighter game were to dragon-punch enemies jumping toward them - now suppose there's an aerial move the opponent can do that will defend against that attack and counter. Really, that knowledge should already be a part of the AI's play book: it should know that in cases where the opponent can do this move, it's not a good idea to do the dragon punch - so each time the attack is attempted and countered, the preferentiality assigned to that move is reduced for the duration of the match. It's a very simple type of "learning" - and the AI character certainly isn't "intelligent", it's just accumulating rudimentary data about what does and doesn't work, and using it. But nevertheless, the AI character is better at playing the game as a result.
---GEC
I'm but the humble pupil, seeking to snatch the scratchbuilt pebble from the master's fully articulated hand