By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Gaming Discussion - What's a next gen Game?

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.

I dont know if you have, but i have gotten to play the 'ace' and I almost always win. But his guy moves about 8x faster than mine. That is not an example of adaptive AI. That is an example of Stupid AI, cheating to add diffictulty. 



PSN ID: Kwaad


I fly this flag in victory!

Around the Network
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. 

 



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.



PSN ID: Kwaad


I fly this flag in victory!

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.

 



the Wii is an epidemic.

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. 



PSN ID: Kwaad


I fly this flag in victory!

Around the Network

I can't believe I'm reading such nonsense.

Really Kwaad, I didn't need any proof you don't know what you're talking about, but this shows pretty well what I meant.  I will answer your question right away : it doesn't take even 1% of the power of an P4 2.8 GHz CPU to run your stupid AI. The SNES could run all the AI you talk about.

You don't understand at all what AI is.

Fibonacci is a well known suite, and has nothing to do at all with AI. Man, these are things people learn in first classes of CS (if not before) ! To add insult to injury, the code you put out is NOT a script, as C is no script, it's NOT C++ either, it's badly copy-pasted (evidenced by the lone #include), it's badly written too (a stupid optimization is tried, which doesn't make sense at all, and can only slow the algorithm).

 

And no, AI doesn't run o(e^n), that's nonsense. AI at worst should run o(n log n). Most of the work your computer does in those game you talk about, is not spent in AI. A Chess or Go program will take time trying to play, because it does brute force, not a game AI.  Notice I said a program, not AI, for Chess and Go. Because basically, you make the mistake of mixing AI with programs that are there to resolve problems (Chess, Fibonacci are not AI). Well, Chess programs can become AI, as they can be written so that they take some semi-arbitrary decisions, to reduce an exponential algorithm into a o(n log n) or o(n) one.



Kwaad said:
 

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.


Blue Gene, Checkers: i assume "blue gene" was the chess playing machine. This kind of AI (although in reality is far from "intelligent") is basically brute-force, and again, the problem size is exponential--in principle anyway (there are ways to reduce the problem size).  here machine power doesn't matter as much as it appears---yes, you need an IBM super cluster to beat Kasparov, but for the remaining 99.99% of chess players, a machine 1000 times slower will still win handily.

getting beat by brute force from a computer is absolutely no fun--but that's a different topic.

What you have in mind is a totally different beast--it appears in a lot of fields these days so let's just call it "agent-based". yes, in agent-based algorithms power matter more noticeably, because, many algorithms scale linearly, or quadratically (meaning going from 1 to 2 the amount of power used up increases by a factor of 4) with problem size, and are generally parallelizable (good for machines with multiple processors).

In those cases, PS3 and 360 would have advantages over the Wii. I assume that is what the spore developer had in mind when he went on his rant at the GDC.

i don't know the estimate just how much slower the Wii is compared to PS3, i have no idea what benchmarks people use. let's just say it's a factor of 20. that means assuming linear scaling, you can handle 20 times as many objects. assuming quadratic, that'll be about 4-5 times... and yes, that'll mean a difference of 0.2s and 0.05s for some situations.

"AI" %--it's completely dependent on games. PS3 and 360 might as well go the agent-based route. however, do keep in mind that that alone does not a good game make. it's the INTERACTION that the gamer observe that matters, and indeed, if you go the agent based route, you better come up with good interaction codes. they go hand in hand. it also provides for (in principle anyway) gameplay that's different every time. however, i don't know if this approach would qualify as "AI" most of the time.

i think agent based games would be very interesting, but i don't know if you'll see good examples any time soon. putting together a good set of interaction logic is key, IMHO. also, in my mind, a factor of 20 in processing power is nothing (graphics aside). truthfully, i think that if you're dependent on that factor of 20 to make your game "fun", you're in trouble anyway.

i have some ideas for some agent-based games involving learning algorithms and evolutionary algorithms (same thing, really) that i'd like to implement at some point in my life, and i dream of being the first to come up with some totally convincing gameplay. ah, dreams.



the Wii is an epidemic.

Here's a better Fibonnacci:

int Fib(int n)
{
    if (n <= 2)
return 1;
    int prev = 1, prev2 = 1;
    for (i = 3; i <= n; i++)
    {
       int temp = prev + prev2;
       prev2 = prev;
       prev = temp;
    }
    return prev;
}

Try that one on n = 50 and see if it takes you 4 minutes.  It should take a very small fraction of a second -- you should be able to run it on very large n rather quickly (though the int will overflow pretty quickly).

The above example is to show that problems that are recursively defined don't always have to be programmed recursively to get the right answer.  The AI routines you're referring to, such as calculating line of sight, deciding what to do when a bomb explodes, deciding how closely to follow the car in front of them, etc. are not problems that require recursive programming.  Most of what we think of as "game AI" is just a big decision making tree.  This is not a process that should require an exponential amount of work as the number of possible decisions or factors increases.



@Kwaad PS3 has a RISC processor, just like 360 (it has 3 of them) and Wii. 360 and Wii has PowerPC processors and PS3 has CELL processor. You can use 62.5% of the CELLs power for games, if you don't want the game crash, 75% being the maximum, but in that case, game will crash at random. CELL is propably the best processor at the moment for multitasking. In your scenario, with 30 people, there propably will be 5-6 different groups of people, who act in the same way. You just are not being able to notice, if someone acts the same way with someone. The group is too big for that. And how do AI work in that case. Theres one way of acting for each group. For example, if you shoot, group "A" hides, group "B" attacks you, group "C" steals the nearest car and group "D" starts to scream in panic (Hollywood uses only D). Then theres a group of objects, which are used to "interact" with a certain group of people. For example group "A" uses object "trash can" to hide and group "C" uses object "car" to steal it. Now, different people have different distances to different objects, and they are programmed to run to the closest object of its group and this way can made look like everyone acts diffent. Its no different than for example in a hockey game player skates to get the puck or tacle the player holding a puck. Of course, multiple objects in one screen require a lot from your GPU, or at least its VRAM.



Ei Kiinasti.

Eikä Japanisti.

Vaan pannaan jalalla koreasti.

 

Nintendo games sell only on Nintendo system.

The word "generation" as it is used in the videogame industry, strictly speaking, refers to the time period. Nothing more, nothing less.

Next gen games would be games coming out 5-7 years from now, when the next generation starts. GTAIV, like everything else that came out 17 months ago and that will come out in the next 5-7 years for the current gen consoles(Wii, PS3, 360), would be a current gen game.