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?
Who is Al and why do I want him controlling everything in my games?
This guy's the limit!
Well if Chip promises it, I believe him..
The physics card could theoretically work because if the player doesn't have it, you could always leave out some of the eye candy and only calculate fancy physics for objects that affect gameplay. With an AI card, you don't have that luxury. Either they player has it, or you have to just dump all the AI (obviously not) or do it all on the CPU, which begs the question: why program your game for a dedicated AI card if you're just going to have to make it work on computers without one?
Against stupidity the Gods themselves contend in vain.
Something that's always bugged me a bit about expansion boards is that the experience can only be enjoyed by the user with the board.
For instance, in a multiplayer game, some players will obviously be getting better graphics than the rest - but often the maps are tailored to work equally well (or at least as equally as possible) to low-end and high-end video cards.
And then there is this new physX card - which sounds like a neat idea, but you have the same kind of situation. You can kind of model physics looking a bit better for the player with the card - but all actual physical actions must be reproducible for the non-card having players.
Now, here is where I think the AI card could be different: distributed processing.
Let's take two human players and 4 AI players in a multiplayer game. Normally the server would be responsible for the AI decision-making processing and would pass to the clients only the x,y,z movement and animation data as a network stream. The AI thinking would take place completely free of the client machines. This puts strain on the server's resources.
Now, imagine rather than the server processing and the clients recieving network info you were to turn this on it's head.
Have the clients process a subset of the AI - say, 2 AI for player 1's machine, and 2 AI for player 2's machine. Now both clients will send the AI's movement information to the server. From the server's point of view the AI would require the same processing power that a regular human player would require (very little - relatively speaking).
With the plethora of bandwidth available client-side these days I think this kind of idea is very realistic.
My Computer Music Tutorial Videos
Aren't many problems of that ilk NP-complete?
sounds like it just speeds up existing AI routines..... and existing AI routines, well, SUCK.
This will suck 200 times faster, though. That's like a straw compared to a fire hose.
This tagline is copyrighted material. Please send $10 for an affordable replacement.
And then they can take everything and put it all in a big case with the a monitor and speakers and a special panel with the controls on it. And then all you need to do is put a slot in the front that says $1.
This guy's the limit!
They want to completely ruin game performance by killing the PCI bus bandwidth and causing the GPU to stall waiting on the position/orientation and generated geometry that it will have to render?
Physics and AI coprocessors are 2 years too late - with the increasing availability of dual core processors in even midrange consumer systems now, and quad core on the horizon, engineering time is much better spent on making an app multithreaded so that it runs efficiently on hyperthreaded and dual core machines, instead of trying to offload it to a coprocessor that few customers will have. For a consumer, it is a better investment to spend an extra $50 to $100 for a dual core processor than spend $300 on a physics or AI coprocessor.
I doubt, and openly mock, their claims of '200x' speedup. I imagine it will be more like speeding up the process of $200 leaving foolish consumers' wallets.
Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
what an interesting idea.
Speak before you think
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.
Since the Mhz jumps of the past seem to be by and large behind us these days, but we're looking at more and more cores, isn't it time that games become multithreaded and offload that nasty pathing work to a second core? Sure you could buy stupid shiny cards for the game physics and AI and network (some sort of network booster that avoids the OS's TCP stack -- posted a while back I believe), or alternatly just make use of the extra hardware that /will/ be in the box anyway.
Now, the decent AI toolkit that folks can license might be worth it anyway, when they figure out they should just run it on the CPU instead of their custom CPU-like-thing.
Slashdot Patriotism: We Support our Dupes!
This will suck 200 times faster, though. That's like a straw compared to a fire hose.
Fire hoses don't suck. You need a more visual analogy.
Maybe something like this:
"That's like a tick compared to your mother!"
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.
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.
Ok I do know I should be more tolerant of my fellow man and all that stuff, but really... this is just damned foolish.
Imagine the conversation that led to this...
-misty flashback fade-
Marketing Guy : Oh man, gaming is ready for a revolution!
Technical Guy : It's called a Wii now
Marketing Guy : Huh? We now what? -shakes head- I mean these gamers, they buy top end stuff, they have money to burn!
Technical Guy : Not really, they buy slightly under the curve and tweak up and overclock mostly
Marketing Guy : No no I read in a magazine that all gamers have more common sense than money
Technical Guy : -sigh-
Marketing Guy : These Ageis guys really whipped up a lot of frenzy about a new type of add on card.
Technical Guy : Yeah it's supposed to make the gamers run better by adding physics processing but the demo..
Marketing Guy : And they are making money hand over fist!
Technical Guy : Well, actually...
Marketing Guy : And it's so easy to make specialty stuff!!
Technical Guy : But their demo runs the same even without the card!
Marketing Guy : Wait, Wait, I got it! We'll make a card that adds more CPU power!
Technical Guy : Well dual cores add lots of CPu power that has yet to be tapped by games
Marketing Guy : No wait, even better, we'll make it special! That's what made the Ageis guys rich!
Technical Guy : Listen, the Ageis guys are not selling much, you might not want to...
Marketing Guy : We'll add better AI! That's IT!
Technical Guy : Better AI?
Marketing Guy : Yeah, we'll sell a card that makes the games run better!
Technical Guy : How's that work?
Marketing Guy : We'll umm, make it able to process AI commands like a graphics card processes graphics commands.
Technical Guy : But Graphics Commands are standardized, so they can optimize for that.
Marketing Guy : We'll get them to standardize AI commands.
Technical Guy : -twitches- But, every game has different needs from AI
Marketing Guy : So we'll make it flexible, generic, so it can do anything
Technical Guy : If it's generic processor design, it's the same as a regular CPU.
Marketing Guy : Exactly!
Technical Guy : But then what is it's advantage?
Marketing Guy : Haven't you been listening? It'll make games play BETTER!
Warning: Teh poster of this messaeg is lysdexic
...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.
It seems that those guys did what's best under these circumstances - got a specific search space that is common in many games and specialized in that. IMHO, it's not enough to get the snowball rolling, but time will tell.
So for optimal performance, I need two video cards, a physics card, an AI card, a sound card, and a network card. And even then, that's leaving out stuff like a RAID or SCSI controller. Sounds great, but where's a motherboard that can support more than one PCI card with both PCI-E slots filled? Hell, a lot of motherboards can't even handle one.
In Soviet Russia, backwards is everything.
This is just another spoke in the wheel of reincarnation. This too shall pass.
This space for rent.
That will drastically alter gameplay. You'd literally have to design the game twice, once for dumb AI, once for smart AI. As an example, look at the difference between the original Doom, and Doom 3. While Doom 3's monsters aren't brain surgeons, they are smart enough to sneak around, take cover, etc. If you were to apply those tactics to the massive numbers of monsters in the original Doom, you'd have a near impossible game. Likewise if you put the dumb, "walk straight at the player" AI in Doom 3, the challenge would be gone.
Now this is just the case with a game where AI is fairly unimportant in the scheme of things. In a game where it highly relies on the AI, say one where squad tactics are used, it'd be a nightmare. With the card you have highly competent teammates that practically complete a mission for you, without it you have guys stepping on their own grenades, things like that.
AI also has the problem of being different for different games. I'm sure the AI process for an imp in Doom 3 is nothing like the AI process for an enemy civ in Civilization 4. Thus I don't know there's a way you can provide a more "optimised" kind of chip for it. Graphics accelerators work because you can design a chip that's highly specialized. They'd suck as CPUs, and in fact until very very recently weren't even Turing complete. However since graphics is always the same kind of thing, they can be optimised to do certain things very fast. I just don't think that's the case with AI, since there's so many kind of AIs one might need.
Jeeze. What the hell is with the whole accellerator thing now?
A physics accellerator which does jack and shit when compared and mid to high end graphics solutions. It's offloading some of the CPU load, sure. But at high-res, the CPU is NOT the bottleneck.
A network accellerator which is going to do jack and shit. It's offloading some of the network processing from the CPU, sure. See "the CPU is not the bottleneck". Sure, some people are going to build apps for the embedded Linux. Great.
Now an AI accellerator. So the AI runs faster. When the AI isn't really the issue. Nor is the CPU underlying it. It offloads the AI from the CPU, sure. See "the CPU is not the bottleneck". Nor is there a real need to have 60,000 AI running simultenously in a scene with 4 characters in it.
So what's going to happen? What difference is this going to make to your real gaming experience?
Chas - The one, the only.
THANK GOD!!!
entertain this notion? This card is doomed.
The PhysX card is doomed
Multicore CPUs are here - no longer some weird expensive ninja-component, they merely cost a few $/£ more than a single core.
Currently nothing (non-industrial) really takes advantage of multi-core systems - the spiel for them currently seems to be 'Run an AV scan without slowing your game' - that's it.
*rubs crystal ball*
What's going to happen is the established middle-ware (i.e those with a product people use now) will develop engines that 'run on a core'. Current core #1 will run the game and core #2 will run the physics and eventually core #3 will be the AI, #4 will run the procedural graphics, #5 will do the 12.1 audio etc.
If you look what's being developed for the PS3 (the most insanely multicored CPU so far), the cores are being divided up by function - one for the OS menu, one for the lead characters hair etc. Threading a single function across multiple cores is not only insanely hard, but hinders cross-platform porting.
Middleware is just going to be sold to run on one core and ported per platform - and I'm fine with that.
Fire hoses don't suck.
They do at the other end.
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.