Vv2
Smash Apprentice
- Joined
- Oct 29, 2008
- Messages
- 104
There Has Been Much discussion on whether or not the CPU learns I have decided to put it to the test Here is what i found
Validated
1.each CPU has been coded separately they do not share a Collective AI
2.ALL The CPU's Have problem solving Skills
3.Some CPU's have been programmed better then others
4.The CPU has a small learning curve but it does exist...Not How you or I would learn but learning none the less
5.Its learning is based solely on Circumstance,Positioning, And Success Rates
6.The CPU does not attack targets at random It selects And Prioritizes them (The basis of which is currently under validation)
Currently Under Validation
The CPU does not attack based on % or whether or not you are human or CPU but instead an oddly setup priority system Which I am Currently Testing(see tests 3&4). the main basis of these test are based on one or many of the following, distance,harm it has taken from the target,It is Locked onto a Random person at start of match this Lock changes at certain intervals or event triggers Locking onto th next closest Target,The CPU is locked onto a Human Player at the start of the match if the human is out of reach to picks a new target,and/or An unknown and/or unforeseen possibility.
Here are some videos Showing tests which I ran. Only Some CPU's won't land on spikes others will. but they all recognize the spikes as a platform not as a danger before they jump. though after trial and error they recognize the location as a Place which isn't safe to go to where as a human would recognize the spikes as a danger not the location itself.
Test#1
Edit: After more tests the CPU has become progressively better at understanding the spikes and is no longer chasing me off the edge it still occasionally jumps down to the spikes but recovers right away 1 of the most peculiar things i noticed is that the CPU ties its own damage into the equation i made the spikes lower in order to make it harder for the CPU to recover and falcon w8'd to use his up B on 3 different occasions till he was at 60% from the spikes. Leading me to believe the CPU is self aware of its own damage I tested to see if it is aware of others and found that the CPU is aware of others damages because they hunt the person with the Highest % most of the time especially after they spawn
So next the test will be overcoming obstacles Test #2
Many People have discussed that The CPU only attacks hum players I decided to launch a test to check this Test#3
It was found to be true initially but as the CPU's realize they cannot attack the human player they will lock onto each other
Which Lead to proving whether the above conclusion is correct or not whether or not this can be changed or modified Test#4
And it was discovered that the CPU attack priorities could in fact be altered and effected by different circumstances
All the Videos posted are not the tests in their entirety they are merely example to demonstrate the process in which a test was carried out. rest assured things like alternate characters,maps,and situations were taken into account
"varios things I have talked about in the "Do CPU's Learn" Thread
Hopefully You guys find this helpful/insightful
P.S. You Have Been Crit By "wall of text" instant K.O. Sorry...
Validated
1.each CPU has been coded separately they do not share a Collective AI
2.ALL The CPU's Have problem solving Skills
3.Some CPU's have been programmed better then others
4.The CPU has a small learning curve but it does exist...Not How you or I would learn but learning none the less
5.Its learning is based solely on Circumstance,Positioning, And Success Rates
6.The CPU does not attack targets at random It selects And Prioritizes them (The basis of which is currently under validation)
Currently Under Validation
The CPU does not attack based on % or whether or not you are human or CPU but instead an oddly setup priority system Which I am Currently Testing(see tests 3&4). the main basis of these test are based on one or many of the following, distance,harm it has taken from the target,It is Locked onto a Random person at start of match this Lock changes at certain intervals or event triggers Locking onto th next closest Target,The CPU is locked onto a Human Player at the start of the match if the human is out of reach to picks a new target,and/or An unknown and/or unforeseen possibility.
Here are some videos Showing tests which I ran. Only Some CPU's won't land on spikes others will. but they all recognize the spikes as a platform not as a danger before they jump. though after trial and error they recognize the location as a Place which isn't safe to go to where as a human would recognize the spikes as a danger not the location itself.
Test#1
Edit: After more tests the CPU has become progressively better at understanding the spikes and is no longer chasing me off the edge it still occasionally jumps down to the spikes but recovers right away 1 of the most peculiar things i noticed is that the CPU ties its own damage into the equation i made the spikes lower in order to make it harder for the CPU to recover and falcon w8'd to use his up B on 3 different occasions till he was at 60% from the spikes. Leading me to believe the CPU is self aware of its own damage I tested to see if it is aware of others and found that the CPU is aware of others damages because they hunt the person with the Highest % most of the time especially after they spawn
So next the test will be overcoming obstacles Test #2
Many People have discussed that The CPU only attacks hum players I decided to launch a test to check this Test#3
It was found to be true initially but as the CPU's realize they cannot attack the human player they will lock onto each other
Which Lead to proving whether the above conclusion is correct or not whether or not this can be changed or modified Test#4
And it was discovered that the CPU attack priorities could in fact be altered and effected by different circumstances
All the Videos posted are not the tests in their entirety they are merely example to demonstrate the process in which a test was carried out. rest assured things like alternate characters,maps,and situations were taken into account
"varios things I have talked about in the "Do CPU's Learn" Thread
Some of this may seem overly complicated....but anyone with a basic understanding of code should understandIts not complicated the CPU records your most frequent actions and when deciding probabilities I.E. your next action it essentially rolls a dice...if u spam A alot in X location in X circumstance there will be a higher possibility on the dice that that will be your next action so it does X line of code but its not so much learning as it is recording your most frequent attack style. it might seem the computer is learning but its just your being repetitive is increasing the probability that Line X will run. The AI may seem like its reading your mind or actually learning something but its not. use a different style of play for a while and it will change probability X. this can be easily chained into the cpu's AI to based its attacks off the same probability I.E. making the cpu seem like it copies your style of play.
For Comparison Only
NHL 2008 ON THE FLY AI is similar
Different Game but Same Principles
http://www.youtube.com/watch?v=QMqBejbOAEs
Might Help You Understand...
The Game Designers Probably tied the AI for guessing your actions into the same AI that you fight it would make less code to write if they used the same variable assignments I.E. you use hammer spam 50 million times the computer will both tie the probability that u will use hammer spam into fighting you as it will when it fights I.E. it will use hammer spam. the code for guessing your actions is probably tied in the same argument as for guessing its own(yes the computer essentially guesses its every action it has no master plan) which is good on the designers part. When i say probability i say so because the computer needs to not make the perfect decision every time or you wouldn't be able to beat it EVER which is why the CPU sometimes does things that a human would never do. The coders assigned priorities as per when to do certain actions as you lower the CPU's level you decrease the chance that it will choose the most correct choice
For example When lower level AI is in air+in striking distance
50% hammer spam(based off move frequency usage)
20% Fair
10% Nair
20% Do nothing
A higher level they would merely adjust the probability
70% hammer spam
20% Fair
15% Nair
5% do nothing
(these percentages are obviously flawed and are merely to help others to understand don't take them seriously)
It doesn't "Learn" it records the most frequent move usage per character which I assure you takes up almost no memory if i use A alot in X location each map would have assigned areas in order to to notify the cpu of its location the computer can only do about 6-7 actions at any given time. the locations would be measured as instances based on the cpu's distance from map edge's and the center of the map and i can tell you that any given instance say position x,y (the game is 2d for play purposes) would be then measured to the most local location I.E. the closest platform. that is where it would decide its actions from simple lines of code
if on platform then
X code
else measure dist (get x,y)
measure fall rate/Speed
detect enemy/Attack (based on move frequency[See Earlier post] when x dist to x dist from platform and based on the if it has enough time to finish attack before hitting ground the computer will never execute a move it doesn't have time to complete)
Nearest Route To safe landing
(Now that is an example the actual code would be more complicated)
The nearest route to safe landing I Learned by messing around with a cpu doing a series of normal play debugger tests...sad to say this is a little disappointing on the programmers side it allows the cpu to suicide in many ways
(Cruel Brawl and etc is not an example that happens because the computers B-Moves have been disabled and the coders didn't change the code for polygons so the computer thinks it can land safely when it jumps not knowing its B move is disabled) my example is when the area is actually unsafe to land in I.E. there is an attack in progress or Spikes etc
As per why i am disappointed it is because this means the computer will measure to see if there is a place to land before it jumps but not whether or not it is safe For example you can create a custom map
. . . . . . .--------(platform)
. . . . . . .I_I_I_I_I . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . ^^^(spikes). . . . . .
The computer will recognize the spikes as a platform in which it can land before it jumps but not whether it is safe or not (its Not Safe) when you jump off the ledge the computer will follow you and try to attack etc only after said attack will it try to find a safe place to land now this was lazy on the programmers part but the cpu has been told to NEVER touch spikes for any reason So the computer will automatically try to find the next safe location which is the above platform which it is to far to make it to but the computer has been told to use its recovery move any way (this is for ascetic reasons people don't like watching things fall to there death without trying to survive) at which point it will fall to its death I did this little experiment in order to prove the computers AI is only based on measured distances and move frequency
the computer WILL NEVER LEARN to jump on the spikes to survive no matter how many times you do it because falling on spikes is not a move (you don't actually have to land on the spikes you could use pit to fly back etc) So I repeat hopefully for the final time the CPU does not learn it records move frequency and acts accordingly I play pikachu alot and i use Quac+Dair the computer has started to use agility alot more often and down Air but it does not use it out of agility because the move does not actually have enough time to finish the computer will never glide toss or do anything that there technically isn't enough time to do because it doesn't actually copy you it merely records the move frequency
Hopefully You guys find this helpful/insightful
P.S. You Have Been Crit By "wall of text" instant K.O. Sorry...