• 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!

SBR Algorithm + FAQ

supraking777

Smash Apprentice
Joined
Jan 29, 2008
Messages
102
Smash Brawl Rankings' Algorithm + FAQ

Hey everyone,

I though people might be interested in knowing what algorithm we're going to use, since that is a pretty frequent question. So, here's the part of the new detailed FAQ that answers that:

How will the rankings work (questions about the algorithm, etc.)?

We’ll be using a highly sophisticated and complex algorithm that aims to eliminate the drawbacks of the ELO system and prevent cheating. It is a modification of the EGenesis ranking system, which works like this:

“Each player in the system starts with a vector of 256 bits. Half of these bits, randomly selected, are set. A player’s rank is the number of bits set. We number each bit 0-255. When a match occurs between two players, A and B, a series of 32 hash values in the range 0 to 255 are computed based on the player’s names such that the same two players always yield the same 32 values. For each value, we inspect that bit in both players’ vectors. When a bit is set in the loser’s vector, and clear in the winner’s vector, we transfer that bit: clear it in the loser’s vector, and set it in the winner’s. In all other cases we do nothing. This system forces players to play a wide variety of others to boost their rank. Still, it could be possible to boost your rank by only playing beginners. To combat this, we modify the algorithm as follows: Each player starts with their bit vector clear. They also have 128 “reserve bits” which are stored simply as a count. A player’s rank is equal to the number of bits set in his vector, plus the number of bits in reserve. When a match occurs, bits are transferred as above, with the following additional rule: When one of the 32 values’ bits are clear in both the winner’s and loser’s vectors, a bit is attempted to be transferred from the winner’s reserve to a specially selected clear bit in his own vector. This specially selected bit is based on a different hash function that again incorporates both player’s names. The loser’s vector and reserve are untouched. In this way, someone who only plays beginners doesn’t affect his own rank, but may boost the beginner’s rank.” (check here for source and more details)

Thus, our ranking system requires you to branch out in who you play; you can’t become highly ranked by playing one friend over and over. You’ll also have to keep challenging player’s within or above your skill level – you’ll get no easy points from the beginners!

Hope this helps answer the questions I've been getting,
Supra
 

GameICY1

Smash Cadet
Joined
Feb 7, 2008
Messages
58
not sure i completely understand it, but it looks pretty good to me. i like the anticheating parts, at least
 

Srules

Smash Apprentice
Joined
Oct 28, 2006
Messages
94
Location
Delaware
Being a computer science person, I appreciate the detail :) , but I don't think the majority of your audience would be of benefit of that detail. Maybe you could translate it a little better.
 

Novus

Smash Apprentice
Joined
Oct 18, 2007
Messages
106
Location
Maryland
""Being a computer science person,""

...methinks you aren't what you say you are.
 

bluekitsune13

Smash Journeyman
Joined
Nov 13, 2004
Messages
297
tl;dr





Just kidding.

I think I got what you're trying to say... actually, not really. Still I went to the site and registered so I can get involved when I get my copy.
 

Srules

Smash Apprentice
Joined
Oct 28, 2006
Messages
94
Location
Delaware
Well I have been programming since I was 12 years old, now being 18, and a computer science major, id say I am.
 

pirkid

Smash Lord
Joined
Jul 26, 2006
Messages
1,254
Location
¿¡ Canada ¿¡
ELO Rating System: A Summary

NOTE: Most points used here are purely for demonstrative purposes, they may not be true to the calculation but they are fairly close.

~~~~~~~~~~~~~~~~~~

Here is my examples on how the ELO rating system for this website should look like.
Any flaws noticed or comments are appreciated. Grin

Usually you start at 1500 and work your way from there.

The simplest formulation for an ELO rating looks like this:

R' = R + K * (S - E)

R' is the new rating (What you want to figure out)
R is the old rating (What you had before the match)
K is a maximum value for increase or decrease of rating (16 or 32 for ELO)
S is the score for a game (1 for win, 0 for loss)
E is the expected score for a game (Below)

Much of the trick is in figuring out what the (E)xpected score of a game is. ELO uses the following formulas for players A and B:

E(A) = 1 / [ 1 + 10 ^ ( [R(B) - R(A)] / 400 ) ]
E(B) = 1 / [ 1 + 10 ^ ( [R(A) - R(B)] / 400 ) ]

It's a good model because, using the two formulas, it means that a great player gains little from beating an average player, but an average player gains a lot from beating a great player.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1v1 (Regular, one player against another.)

For example, a 1500 player (Abe) goes against a 700 player (Bob).

Skipping the boring calculations:
If Abe beats Bob, he goes up to 1502, a very small margin. If he loses, he goes down to 1410, a big loss.

If Bob beats Abe, he goes up to 840, a huge gain, however, if Bob loses, he goes down to 699, a very small loss.

A very good method.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2v2 (Two players against two players, a team match)

In 2v2, the players can add their points together and figure it out from there.

E.G Cynthia has 1000 points. Dorcas has 2800. If Abe paired with Cynthia and Bob with Dorcas...

AC: 2500 (Ratio: 1500:1000, or 3:2)
BD: 3500 (Ratio: 700:2800, or 1:4)

Now this could work 2 ways. Either by point ratio or balance.

Point Ratio refers to how many points the player has in comparison to his/her partner. More points are awarded to the player with less points, and vice versa, depending on the ratio.

Balance simply means the points are evenly distributed.


If AC wins: Up to 2700. +400.

Point Ratio (2:3)
A = +160
C = +240

Balance
A = +200
C = +200

If AC loses, down to 2450. -50.

Point Ratio (3:2)
A = -20
C = -30

Balance
A = -25
C = -25


If BD wins: Up to 3600. +100.

Point Ratio (1:4)
B = +80
D = +20

Balance
B = +50
D = +50

If BD loses, down to 3200. -300.

Point Ratio (1:4)
B = -240
D = -60

Balance
B = -150
D = -150


THESE ARE EXAGGERATED, JUST TO SHOW HOW DIFFERENT OUTCOMES CAN HAPPEN.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FFA (3-Player/4-Player Free-For-All, Battle Royale)

There is a point pot. Everyone puts in 2%.
Abe puts in 30. (2% of 1500) He now has 1470.
Bob puts in 14. (2% of 700) He now has 686.
Cyn puts in 20. (2% of 1000) She now has 980.
Dor puts in 56. (2% of 2800) He now has 2744.

The pot is 120 points. % of pot for a win is shown:

3-For-All
1st = 50% (60)
2nd = 35% (42)
3rd = 15% (18)
(Technically not a 3-way, but you get it.)

4-For-All
1st = 50% (60)
2nd = 25% (30)
3rd = 15% (18)
4th = 10% (12)

E.G
Dorcas is 1st.
He wins 60 points. This brings his score from 2744 to 2804. (+4)

Bob is 2nd.
He wins 30 points. This brings his score from 686 to 716. (+16)

Cynthia is 3rd.
She wins 18 points. This brings his score from 980 to 998. (-2)

Abe is 4th.
He wins 12 points. This brings his score from 1470 to 1482. (-18)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Inactivity:
We've all had those periods of time when we don't touch games. Vacations, work, school.

Now, obviously, players should get penalized for in-activity, however, if it's uncontrollable, that's slightly unfair.

I suggest a Vacation Mode. A 7-day rest period in which no points would be lost due to inactivity, EXCEPT for a small wage of 0.5% of your points. (At 1500 points, that would be 7 points [rounded down]) This mode can be activated 3 times every 6 months, preferably.

If still inactive, reduce points by percentage, as shown:

1 month: 2%
2 months: 5%
4 months: 12%
6 months: 20%
1 year and counting: 25%

It's starts as a heavy blow when the one month period hits, and slowly works towards less and less per day, starting at 2 months.

If someone decides to use the Vacation Mode at the beginning of January, they have a week, that's the counter starts going down towards Febuary 8th. If they decide to use it again, trying to cheat the system, thay use it on the 7th, and the counter resets until March 14th. They use it again, the counter goes to April 21st. They have no more Vacations left, and they would lose around 6%, if they were inactive, waiting for they're vacation counts to reset at July 1st. That would total 7.5% lost. (6% + 0.5% + 0.5% + 0.5%)

This way, people cannot abuse the system too well, and people who need more then 1 week for a vacation don't have to worry too much.

I don't think any more points then 25% shold be reduced, we've all had problems and 25% is enough to catch up to, Especially if your good enough to catch up.

Otherwise, no excuse for being lazy. We're giving you 2 weeks. Go play E.T. Atari if your too bummed out. Wink

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Problem:

EGenesis Ranking System
(taken from http://wiki.atitd.net/tale1/EGenesis_Ranking_System)

Conflict games are ranked using the eGenesis Ranking System, a cheat-resistant zero-sum ranking system. This system is described in a paper from eGenesis: http://www.egenesis.com/erank.rtf

Note that this system is largely of historical interest as the Tournament Ranking System is now used instead.

The content of this paper is reproduced below, with minor reformatting.

The eGenesis Ranking System
A highly cheat-resistant, zero-sum ranking system for multi player games
Andrew L. Tepper, BS
Josh M. Yelon, PhD
February 15, 2002

Problem: Ranking systems such as ELO are often used to rate chess players. These systems attempt to encourage players to compete against others of a similar skill level by making matches between an advanced player A, and a beginner player B be risky for A, and rewarding for B.

In the case that A wins:

* A gains a small number of points
* B loses a small number of points

In the case that B wins:

* A loses a large number of points
* B gains a large number of points

These systems are subject to cheating. If a player A wishes to boost his rank, he conspires with friends B,C, and D as follows:

* B Plays C several times, intentionally losing to boost C’s rank.
* C Plays A several times, intentionally losing to greatly boost A’s rank.
* Another friend D is brought in. The three play each other in the same pattern to boost D.
* D Plays A several times, intentionally losing to further boost A’s rank.

The pattern is recursive: Players P1 thru PN-1 play each other to boost PN-1, who then loses to PN.

Solution: Each player in the system starts with a vector of 256 bits. Half of these bits, randomly selected, are set. A player’s rank is the number of bits set.

We number each bit 0-255. When a match occurs between two players, A and B, a series of 32 hash values in the range 0 to 255 are computed based on the player’s names such that the same two players always yield the same 32 values. For each value, we inspect that bit in both players’ vectors. When a bit is set in the loser’s vector, and clear in the winner’s vector, we transfer that bit: clear it in the loser’s vector, and set it in the winner’s. In all other cases we do nothing. This system forces players to play a wide variety of others to boost their rank.

Still, it’s possible to boost your rank by only playing beginners. To combat this, we modify the algorithm as follows: Each player starts with their bit vector clear. They also have 128 “reserve bits” which are stored simply as a count. A players rank is equal to the number of bits set in his vector, plus the number of bits in reserve. When a match occurs, bits are transferred as above, with the following additional rule: When one of the 32 values’ bits are clear in both the winner’s and loser’s vectors, a bit is attempted to be transferred from the winner’s reserve to a specially selected clear bit in his own vector. This specially selected bit is based on a different hash function that again incorporates both player’s names. The loser’s vector and reserve are untouched. In this way, someone who only plays beginners doesn’t affect his own rank, but may boost the beginner’s rank.

Practical Applications: We designed this ranking system to be used in massively multiplayer online games such as A Tale in the Desert (http://www.ataleinthedesert.com). There are some additional considerations to take into account.

First, beginners should have the sense that they are making progress when they first start playing. To resolve this, we report everyone’s rank as simply the number of bits set in their vector, ignoring their reserve bit count.

Second, friends like to play each other repeatedly, and should see progress on more than just the first game. To resolve this, instead of attempting transfers for all 32 bits, we randomly select 8 of the bits to transfer. In subsequent matches won by the same person, there are fewer bits to transfer, and eventually this number dwindles to none, but it allows for friends to play each other repeatedly and still see some progress.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

NOTE:Once again, most points used here are purely for demonstrative purposes, they may not be true to the calculation but they are fairly close.

This is I believe the best system for the website to use. Easy, efficient, and covers all aspects.
 

supraking777

Smash Apprentice
Joined
Jan 29, 2008
Messages
102
Being a computer science person, I appreciate the detail :) , but I don't think the majority of your audience would be of benefit of that detail. Maybe you could translate it a little better.
Maybe you are right, lol. Well, I'll give a shot to explaining it a bit more tomorrow in a follow-up, but I'm way too tired right now. The bottom line is still there: "Thus, our ranking system requires you to branch out in who you play; you can’t become highly ranked by playing one friend over and over. You’ll also have to keep challenging player’s within or above your skill level – you’ll get no easy points from the beginners!"

For now, just take our word (and the comp sci people) that it works out this way pretty well. =D
 

-Linko-

Smash Journeyman
Joined
Jan 20, 2008
Messages
498
Location
Spain
Really dificult read, so it must actually work really well.

But, how are you handling 2v2 matches? I am asking that because I am organizing a 2v2 online tourney (here in Spain), and we would like to be ranked by your site.

Also, when looking for matches, more options for "Items" would help. I think "Only Smash Balls" and "Only non-killing items" would be nice additions.

Anyway, it seems that only the option "No items" will be used...
 

Foxman15

Smash Journeyman
Joined
Jan 26, 2007
Messages
283
Location
MN
I will definitely try this out. I'm at school so i will read more about it later. Seems like a very good and organized way of playing people online. My biggest dreams of organized online gameplay would be a list of wii numbers and name of people on smashboards. This system seems amazing.
 

pesticide

Smash Lord
Joined
Dec 24, 2006
Messages
1,028
Location
Switching mains? in CFL
ugh, i just finished math class. why give me all these numbers?

anyways, i joined smashbrawlrankings a while ago. do i really need to know all this math to be ranked there, or am i okay not knowing any of it? :p
 

Randofu

Smash Journeyman
Joined
Oct 10, 2007
Messages
219
Location
Maryland, USA
Your post could have really benefited from more paragraphs. I'm good with this stuff and I still found your explanation confusing, but I eventually got through it.

I don't know that I really buy this system from a theoretical standpoint, but I've never really personally been involved in ranking systems so I don't have the best intuition for it. The problem that I saw was that the bits in the reserve can ONLY be cleared and never set. There are two problems with this that I can see.

First, once a player's reserve is exhausted (which could happen in less than 200 games), there's absolutely no reason for them not to play a beginner to boost their rank.

Second, keeping reserve bits set becomes very important to achieve the best rank possible, so the best strategy is to wait until other people have a lot of their victory bits set, and then play them (assuming you can beat them) so that you can get the most victory bits with the least chance of losing your reserve bits. Anyone who plays in the beginning of the ranking system is essentially going to contribute the set victory bits directly from their reserve.

Hopefully this makes sense to someone. :) I don't know if there's a better solution, and I didn't even really pay attention to exactly what this is for. I just saw an interesting problem about ranking and tried to analyze it. If I can think of anything else, I'll post again.
 

Randofu

Smash Journeyman
Joined
Oct 10, 2007
Messages
219
Location
Maryland, USA
Here's another scheme that I think works better. As before, players have 256 bits and they take bits from the loser. The only difference here is that the probability that a given bit is set initially is based on its index. You would want to base this off of the number of people playing probably, to guarantee that there are several people out there with the rarest bit. This isn't really necessary exactly; if no one has the rarest bit, then the maximum rank attainable is just lower.

For instance, let's let p=0.97 and k be the index for a given bit. Then the probability that that bit is set would be p^k. So bit 1 is set with 97% probability, bit 2 is set with 94% probability, etc. and bit 256 is set with 0.04% probability. So we expect that if 10000 people are participating, only 4 lucky people start with the 256th bit set. Of course, unless they also happen to be the best, they'll lose it pretty quickly to better players. However, it would be a waste of time for really good players to go find that lucky noob; they should instead wait for that rare bit to filter up through the ranking system to the top.

Thus, the good players will be competing with each other for these rare, high bits, and the bad players (of which there are many more) will be competing for the less rare lower bits.

Doesn't this make more sense?
 

Juicy

Smash Apprentice
Joined
Feb 19, 2008
Messages
120
Location
somewhere in Michigan
cool that sounds good. i understand vb and java for the most part, but i'm still a little confused, i you could probally space the first post into bullets so its a little easyer to read
 

supraking777

Smash Apprentice
Joined
Jan 29, 2008
Messages
102
Here's another scheme that I think works better. As before, players have 256 bits and they take bits from the loser. The only difference here is that the probability that a given bit is set initially is based on its index. You would want to base this off of the number of people playing probably, to guarantee that there are several people out there with the rarest bit. This isn't really necessary exactly; if no one has the rarest bit, then the maximum rank attainable is just lower.

For instance, let's let p=0.97 and k be the index for a given bit. Then the probability that that bit is set would be p^k. So bit 1 is set with 97% probability, bit 2 is set with 94% probability, etc. and bit 256 is set with 0.04% probability. So we expect that if 10000 people are participating, only 4 lucky people start with the 256th bit set. Of course, unless they also happen to be the best, they'll lose it pretty quickly to better players. However, it would be a waste of time for really good players to go find that lucky noob; they should instead wait for that rare bit to filter up through the ranking system to the top.

Thus, the good players will be competing with each other for these rare, high bits, and the bad players (of which there are many more) will be competing for the less rare lower bits.

Doesn't this make more sense?
Your criticisms of the normal EGenesis system do have some legitimacy, but keep in mind I said:"It is a modification of the EGenesis ranking system." This is the ranking system it is closest to, so I thought it would give the best idea of how things would work, but we're drawing on a few other sources. We were planning to handle those problems a bit differently than probability, but we'll keep your suggestions in mind if we need to tweak later.

I think you are right though that there is too much math for the average person, so I just took down that part of the explanation on the FAQ and left that 'bottom-line' stuff.

Keep the suggestions and whatnot coming though, they are always helpful for seeing what people think and seeing problems from different angles. Thanks! =D
 

Moustachio

Smash Apprentice
Joined
Jan 12, 2008
Messages
177
Location
-1 World
Very....very...confusing...but...

Ima' Gonna be Numba One in SBR!!!
MARIO FTW!!!! WAAAAAAAAAHOOOOOOOOOOOOOOO!!
 

Scav

Tires don Exits
BRoomer
Joined
Jun 9, 2002
Messages
7,352
Location
San Francisco
Supraking, please keep all of your advertisements for Smashbrawlrankings in one topic. Anything that deals specifically with SBR's features does not belong in a new thread.

This belongs in your original thread, and as a thread on your own site. Smashboards has been lenient with advertising when it is for a product that benefits the community, which I admittedly have benefited from as well. This crosses the line.

Let me know if you want this or the other SBR topic to be your primary, so I can close one of them. I will extend you the same courtesy with Wifi Wars. Smashboards does not benefit from both sides spamming up Brawl discussion.
 
Top Bottom