• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Characters influencing random levels???

ToP CaT

Smash Lord
Joined
Oct 2, 2006
Messages
1,025
Location
Whitehall, Oh
I was wondering....when the levels are on random, does the characters you pick have anything to do with the level that comes up because i have noticed alot or maybe its just me that when certain characters are matched up they often times get certain levels.

Cf/Samus-FD
Ganon/Cf-FD/Dreamland
Marth/Fox-Yoshi Story/Dreamland 64
Marth/shiek-Dreamland

things like that? is there anything behind this or does it just seem like it??
 

MikeyLombardi

Smash Cadet
Joined
Nov 29, 2006
Messages
47
Location
Earth (I think...)
Actually, it's a crazy math thing that computers do to select random numbers. In a nutshell, there are ALWAYS a select few options in a random selection that favor over the other selections. It may not be as visible when the number of options is low, say like picking a number between 1 and 5.

However, it is more visible when the number of options gets to a certain point. Say between 15 and 60. Sound familiar? How many characters are there in the game? How many stages?

Anyways, with this set of options (let's just use 26....the number of characters) and using that crazy math equation built in to select random numbers, the computer may seem like it is selecting some of the numbers more than others. Like, it may select options 23, 12, and 17 more than the other ones.

With this theory, there's not a glitch in the game or anything built into Melee, it's just that crazy math equation that no computer programmer can figure out how to work the bug out of...
 

Eaode

Smash Champion
Joined
Jun 4, 2006
Messages
2,923
Location
Glen Cove/RIT, New York.
Mikey, remember that the game only recognizes 25 characters. There's no way for the game to tell that you're playing as sheik before the stage is selected, because the time frame for the input of the a button is after the stage choice is displayed
 

1048576

Smash Master
Joined
Oct 1, 2006
Messages
3,417
I've noticed that the game cycles through all the stages that I've set to random selection before it picks a stage twice.
 

Seyasha

Smash Apprentice
Joined
Jan 3, 2007
Messages
89
Location
Canada
I've noticed that the game cycles through all the stages that I've set to random selection before it picks a stage twice.
That's just good programming. Ive noticed this too. But havn't really cared. I find it unlikely a glitch like this would exist, however I found that math quite fascinating :).
 

MikeyLombardi

Smash Cadet
Joined
Nov 29, 2006
Messages
47
Location
Earth (I think...)
Okay, so if you want to know, there's a function in computer programming called RND().

This function includes a mathematical equation that tells the computer on how to pick a random number. Because well.....a computer simply cannot be random on it's own.

Now, if I'm correct, I believe the equation is:

X = (Number of seconds since Jan. 1 / Number of milliseconds since the past minute)
X = X / 100

This will give you some kind of percentage number, like 0.45 or 0.087 for example.

Though I'm not sure. I haven't had to program a randomizing function in a long time, but it's something along those lines. I do remember the number of milliseconds being somewhere in the equation because that's what makes the computer's selection appear random.

The function RND() must be supplied with two numbers to work. The first number is the low threshold, or the lowest possible option. The second number is the high threshold, or the highest possible option. For example, picking a random number between 1 and 10, the low threshold is 1 and the high threshold is 10.

Next, RND() will subtract the low threshold from the high threshold, then add 1. It now has the number of available options to choose from. It will multiply this number by the percentage number it got from the previous equation. The computer has now made somewhat of a random selection (Remember I say somewhat....computers cannot be random.).

All it does now is add the selection to the low threshold and subtract 1 (it does this because the low threshold itself is counted as one of the available options). There's your final answer.

Now, to the reason that some of the answers repeat. Remember that the RND() function uses the number of milliseconds since the past minute. Meaning that each minute, that part will reset to 0 (and no, the function will never allow division by zero. There's a simple if statement programmed in there to keep that from happening.). Also, this function can only return a whole number. Meaning that is has to either round up or round down. So realistically, EACH selection is different but since the computer has to round up or round down to give an even whole number, some options repeat more than others.

*Sigh*

I've never had to explain the RND() function to non-programmers before, so I hope that this helps. Any other questions, feel free to PM me.
 

Endless Nightmares

Smash Master
Joined
Sep 23, 2006
Messages
4,090
Location
MN
I used to only play the 5 neutral stages and have them set on random. One day I changed the stages to include all legal counterpicks. All the new stages I added came up in random before any of the old ones. If that makes sense.

The 5 neutral stages didn't appear until all of the new stages had been played in random. So maybe it takes new changes before old ones...weird
 

TheBlackNoodle

Smash Rookie
Joined
Nov 27, 2006
Messages
22
Location
Troy, NY
Just to explain further what Mikey's talking about... there are no truly random numbers in computer programming. There are numbers that programmers refer to as pseudo-random because they're so long and we as humans cannot find patterns in them (see: pi).

Mikey's explanation of the Rnd() function is generally correct. To go further, the time in milliseconds he referred to is called a "Seed." The seed is used to pick a location and length in the pseudo-random number described above. However, time isn't the only thing used as a seed. These days, some seed values are generated partially by tracking your mouse movements and keyboard strokes over a small period of time. There are many more ideas for generating random seeds--for experiments that need "more random" numbers, the movements of lava lamps or the appearance of stars can also be used. It's a pretty crazy field.

So in response to the original question--depending on how the seed is calculated, you could be influencing random level selection. Repeating patterns could cause similar outcomes. But in your case, probably not. Your patterns would have to be INSANELY rigid.

Oh, and in response to what 56k says: I also noticed that. I think that levels are given weights based on how much you've played them in a given timeframe. It's likely that you'll get a different level each time on random, but you may get the same level twice in a row (this has happened to me).
 

MikeyLombardi

Smash Cadet
Joined
Nov 29, 2006
Messages
47
Location
Earth (I think...)
Just to explain further what Mikey's talking about... there are no truly random numbers in computer programming. There are numbers that programmers refer to as pseudo-random because they're so long and we as humans cannot find patterns in them (see: pi).

Mikey's explanation of the Rnd() function is generally correct. To go further, the time in milliseconds he referred to is called a "Seed." The seed is used to pick a location and length in the pseudo-random number described above. However, time isn't the only thing used as a seed. These days, some seed values are generated partially by tracking your mouse movements and keyboard strokes over a small period of time. There are many more ideas for generating random seeds--for experiments that need "more random" numbers, the movements of lava lamps or the appearance of stars can also be used. It's a pretty crazy field.

So in response to the original question--depending on how the seed is calculated, you could be influencing random level selection. Repeating patterns could cause similar outcomes. But in your case, probably not. You're patterns would have to be INSANELY rigid.

Oh, and in response to what 56k says: I also noticed that. I think that levels are given weights based on how much you've played them in a given timeframe. It's likely that you'll get a different level each time on random, but you may get the same level twice in a row (this has happened to me).
Thanks for clearing that up. I didn't know that mouse coordinates were sometimes used also. Anyways, the RND() function should now be clear to everyone.

With that out of the way, there may be a chance that levels are given weights depending on how often they are played. I mean, data like that has to be stored somewhere in memory...a few If statements here and there within the stage select part of the program can do that. I guess no one knows except the programmers of Melee...

I still personally think that it's just the RND() function istelf...
 

EnigmaticCam

Smash Ace
Joined
Jun 22, 2005
Messages
688
Location
CA
I don't think Nintendo uses VB to write their games :) Yeah, it may be psuedo-random, but I'm pretty sure their randomizing techniques are sophisticated enough to not put in any noticable patterns unless your data sample equates in the hundreds of millions.
 
Top Bottom