Lingyis said: Kwaad said: kars said: Kwaad said: Wii Sports uses the 'cheating' AI. The AI that isnt smart enough to beat you legit, so it goes beyond the bounds of your characters abilitys to win. |
In fact that's what nearly every AI does. They only hide it it more or less. But you won't find AIs that really bother with the line of sight and so on, as a real player would. Instead they use drastically simplified algorithms, that look as if they would obey the same problems. |
Quite a few of the newer AI's actually DO obey line of sight. They also know there are objects they can hide behind. I just wanna say, I had my brother write me a smiple 'script'. #include
__int64 Fibonacci(__int64 n) { if( n <= 0 ) return 0; if( n <= 2 ) return 1;
return Fibonacci(n-1) + Fibonacci(n-2); }
int main(int argc, char **argv) { int r; int n; __int64 x;
if( argc != 2 ){ printf("Fibonacci will print out the nth term of the fibonacci sequencen" "using a recursive algorithmnn" "Usage: fibonacci n"); return 1; }
r = sscanf(argv[1], "%d", &n); x = Fibonacci(n); printf("The %dth term of the fibonacci sequence is %I64dn", n, x);
return 0; } |
That code is written in C++, so if you have a complier, play with it. If you want to ask me how it works, I have a file you can run.
You run the script 30 times... it takes about 0 seconds. Do it about 40 times... it takes about 3 seconds. Do it about 50 times, it takes about 4 minutes. I admit, Scripts are simple. Very very simple. My brother wrote that script in about 10 minutes for me. My computer just cant seem to run that script 100 times in a day. (24 hours) EDIT: I bumped this thread becuase I had my brother make this program earlier today, I just got around to posting it, and it is in relation to this thread. |
arghh... 1. you don't mean running the code "30", or "40" or "50" times, you mean using "30" or "40" or "50" as an input. of course your computer can't run it "100" times a day--it's using "100" as an input, and basically it's gonna do 2^100 calculations (complexity of your algorithm), on top of stack calls. assuming that's your limit and the PS3 is 1000 times faster than your computer with no memory limits it can still only run it "110" times a day (110 as input). Exponential growth happens in a lot of algorithms, including AI ones, and that's the gist of the argument why more powerful processing doesn't mean much, and almost certainly imperceptible. 2. it's using a recursive alrogithm--and that's why you have the exponential time scaling. recursive algorithms are easy to code but notoriously inefficient, and indeed, for this particularly application using a different algorithm (simply store the data on the fly) and the problem essentially scales linearly. meaning--it certainly takes less than a second to run it by using "100" as an input. |
Thank you for replying however let me list off a few AI's that are very... smiple.
Blue Gene. (Think a board game AI)
Possible Checkers AI. (much smipler than a Blue Gene AI system, yet can still take hours to make a single move)
I just wanna say that the AI in GTA3 sucked. Infact, most AI on console games suck.
Some games have had people put *real* AI's on them. However if you put more than 1AI bot, it tends to each a computer for dinner.
My point on this is. When you have 30 'objects' It can take alot of computing power to do this.
30 'objects' (object defined as an aware entity, car driver, pedistrain) They are watching traffic monitoring where the other AI's are going, and how they are moving. If you cut infront of one of them, the car you cut infront of, would take evasive manuvers depending on what personality the car has. While the car you just cut off runs into the sidewalk, the 10 pedistrains start running away from the 'psycho' driver and they run for cover, get out of the way, or just get squished if their not fast enough. All the while, the other cars nearby are witnessing this, while the other pedistrains are watching the carnage, and acting accordingly. Yes, they are all running a script, however where they go is decided by what their personality is, and where they are. So a gangster might pull his gun out, and start killing everyone, while a cop might run to a injured pedistrain to make sure he is ok.
Basically it's simple scripts. However there are ALOT of simple scripts running at the same time, for each person, while there are 30 diffrent 'objects' running the many diffrent scripts. And rember, the physics, and everything else is going on at the same time. This is more than a simple application to figure out what each AI would do. Sure. On a home PC, that might take .5 seconds to compute the AI that is going on. Instant. Right? Well that's not fast enough.
The AI has to be done in at least 1/30th second intervals. It cant take 1/2 second to run the AI scripts, as that would cause a 1/2 second freeze on the game. Or it would delay AI reactions by around 2-3 seconds due to the fact that 90% of the processor is NOT doing AI. Either way, that would completly ruin the 'feel' to any game.
My point on that is, just becuase the PS3/360 has enough power to do it. Does not mean a home PC can. (read RISC processor for 360, and read CELL processor for PS3) Both are many many times better than a home PC in architure, and both are bigger as well. (more performance for chip size, and bigger chip overall)
The Wii does not have near the processor as a home PC. The PS1 is about 1/10th the speed of the Wii (in processor). While the SNES is about 1/10th the speed of the PS1.
Basically the SNES is 3000-4000times SLOWER than a PS3. (this is not accurate, dont quote me, but it's some crazy big ammount)
If the PS3 could do it in 1 second, the SNES would take 50minutes.
If the PS3 could do it in (10% processor use over 1/30th second) the SNES would do it in 30 *SECONDS*
Basically 10% of the processor over 1/30th of a second, would take the SNES 30 seconds to do the same ammount of math.
Basically the SNES is 00.03% of the total power on the PS3. .03% PS3 = 100% SNES. It's bed-time. If my wife dosent nag my ass off. I'll find accurate numbers on this, and compare the processor in percentage from NES/SNES/N64/PS1/PS2/GameCube/Wii/PS3/x-box/360
The PS3 numbers will be created from what I know about the processor on the PS3. Not what I have read. It runs at about 1/2 of what everyone says it can run. (today at least, I'm sure it will run at least 80% in the future)
But I'm kinda curious about this now.
How much power does it take to run AI? I will also read up on that. I will take a quote that would say something like... "It takes 25% of a P4 2.8ghz to run the AI in this game." I would then consider the generation, the ammount of power overall, and then scale the numbers with percent to show how much power 'that' game would run on a modern console. And then whatever % was specifyed, I would put it on the 360/PS3 level, and then work the way down showing the % of processor needed to run 'modern' AI on systems.