Chip Promises AI Performance in Games
Heartless Gamer writes to mention an Ars Technica article about a dedicated processor for AI performance in games. The product, from a company called AIseek, seeks to do for NPC performance what the PhysX processor does for in-game physics. From the article: "AIseek will offer an SDK for developers that will enable their titles to take advantage of the Intia AI accelerator. According to the company, Intia works by accelerating low-level AI tasks up to 200 times compared to a CPU doing the work on its own. With the acceleration, NPCs will be better at tasks like terrain analysis, line-of-sight sensory simulation, path finding, and even simple movement. In fact, AIseek guarantees that with its coprocessor NPCs will always be able to find the optimal path in any title using the processor." Is this the 'way of the future' for PC titles? Will games powered by specific pieces of hardware become the norm?
I read the blurb this morning. The idea is that it accelerates the basic operations that everything uses (line of sight, path finding, etc.). The more complex AI (actual behavior, planning, etc) is built the normal way. It simply offloads the CPU and thus allows faster calculations.
The other real difference is that it is better than current algorythms. So instead of using A* for pathfinding, it works correctly even on dynamicaly changing terrain. This would mean things like no longer having NPCs getting stuck on rocks or logs or some such (*cough* half-life 1 *cough*).
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
One begins to wonder what the "endgame" scenario for the respective manufacturers of the physics and AI cards we're seeing. I can foresee three distinct situations:
1) The CEOs, investors, and engineers are complete idiots, and expect all the gamers of the world to buy separate physics, AI, and graphics cards
2) They're hoping to provide chips to ATI or nVidia for a "game card" instead of a "graphics card", the next generation of expensive purchases for gamers
3) They're hoping to provide chips for the nextgen xbox / playstation / wii, hoping that their chips will be the ones to make gaming interesting again.
Maybe future RPG AI could have some similar routines regarding fight/flight decisions, fighting methods and maybe even dialogue. But that would require a pretty universal processor, which would just speak for getting a second CPU. I don't have much hope of this catching on, but I'd welcome it. For one thing, writing AI that can run in a separate process from the rest of the game is something I'd love to see. I want something to keep that second core busy while I'm gaming!
Plus, it would be pretty cool for hardware manufacturers if AIs really got smarter with better hardware (be it CPU or add-in card). That would require big coding changes from the way AI is written now, but I do think those would be changes for the better.
Perhaps the card could be most useful not on the client, but in dedicated mmorpg servers. I know WoW could definitely use some smarter mobiles. Sometimes I think whoever designed the AI was inspired by the green turtles from Super Mario 1. I'd like to see games with smarter mobs and NPCs, and any game with a realistic ecology (for instance, suppose mobs don't magically spawn, they procreate the old fashioned way, and must eat food (a limited resource) to survive) would require many more mobs than a WoW-like game in order to prevent players from destroying the environment. Simulating millions of intelligent mobs would likely be very expensive computationally.
...that's I've always wanted the answer to from someone who knows what they're talking about:
For the application you've described, and similar ones, people always claim it would be cool to be able to handle massive dataprocessing so you could have lots of AI's, and that would get realistic results. However, it seems that with *that many* in-game entities, you could have gotten essentially the same results with a cheap random generator with statistic modifiers. How is a user going to be able to discern "there are lots of Species X here because they 'observed' the plentiful food and came and reproduced" from "there are lots of Species X here because the random generator applied a greater multiple due to more favorable conditions"?
I saw this in the game Republic: the Revolution (or was it Revolution: the Republic?). It bragged about having lots and lots of AI's in it, but in the game, voter support in each district appeared *as if* it were determined by the inputs that are supposed to affect it, with a little randomness thrown in. The AI's just seemed to eat up cycles.
Long story short, aren't emergent results of a large number of individual AI's essentially the same that you would get from statistical random generation?
Apology to Ubuntu forum.
The problem with the state of AI today is not that the algorithms are too processor-intensive, it's that they flat-out suck.
... meaning that if you analyze a problem, some other approach almost always turns out to work better. They are a reasonable approach for unstructured classification problems that aren't fully understood, but after some analysis other approaches almost always take over. This has been the case with things like OCR and face recognition.
Please don't take what you see in games to be state of the art. Watch this video of my RoboCup team and tell me that AI still completely sucks. You'll see two teams playing 5 on 5 soccer with zero human input, i.e. fully autonomous. Game AIs may suck, but that's because their AI programmers are graphics people trying to do AI. The result looks about as good as me trying to make a state of the art graphics engine.
The only reasonable application of hardware AI acceleration that I can think of would be a massively parallel chip that runs thousands or millions of neural net nodes at once... but this would mainly be a benefit for academic AI research, not for games.
Neural nets died down as a fad in academic circles almost 10 years ago. There's a common saying that "Neural nets are the second best way to do everything."
I'm pretty sure that most games use simple "heuristic" algorithms for AI, rather than anything complicated like neural nets or Bayesian learning or SVM.
NNs, Naive Bayes, and SVMs are all classifiers (and often slow ones at that). They aren't really directly applicable for defining policies for an agent, so they don't get used much (as well they shouldn't). Most agent decision systems use a combination of heirarchical finite state machines (FSMs), planning on a small set of high level actions, and motion planning.
Games tend toward the absolute simplest of FSMs with only binary inputs, and yield the expected highly rigid behavior in a given situation. For the most part, they don't even use randomness, which is absolutely necessary in any kind of situation where one player is trying to outguess another. I've heard that non-RTS games only budget about 1% of the CPU to AI, and it shows. Rich FSMs, action-based planning, and proper motion planning get swept aside, and that is unfortunate. However the coming multi-core revolution may offer some hope. Game programmers are having trouble splitting up graphics routines, so it might be that AI can get the core or two that it deserves when we hit quad-core CPUs. Due to the many algorithms, AI benefits from general purpose CPUs, and parallelizes quite well.
Whether enough real AI people will ever get hired to do games right remains to be seen. At the moment it seems even primarily systems companies like Google are more interested in AI people than game companies.