It is currently Thu Dec 12, 2013 4:21 pm

 All times are UTC

 Page 1 of 1 [ 4 posts ]
 Print view Previous topic | Next topic
Author Message
 Post subject: Implementing a ranking systemPosted: Tue Jun 21, 2011 9:13 pm
I figure this must have been asked before, but I searched and could not find much relevant.

What are the generally accepted or most widely used ways to calculate rankings? What would I need to have as inputs in order to figure this out?

I have a simple two player scored game. The player, final score, and outcome are easily obtained. Players can forfeit. I don't know what else I could "feed" the rating system other than the player's rating itself, but that's of course what I am trying to figure out.

There are random bonuses within the game that affect the score, so I don't want the final score to weigh too heavily on the rank.

I was thinking that I could use a Bayesian rating of sorts, but I don't really know how I would implement it. I also would like these to somehow relate to "levels", meaning that over the time, given for example 100 levels, most players would be around level 50, and only the truly elite would be close to 100 and only the truly terrible would be around 1 (but everybody starts at 1).

I was hoping there would just be some sort of formula I could use, but I'm starting to fear that a ranking system is going to be much more involved than that.

Are there any good examples, guides, or tutorials on something like this?

I can provide whatever other information may be relevant of course.

Top

 Post subject: Re: Implementing a ranking systemPosted: Wed Jun 22, 2011 11:12 pm
 Dexterous Droid

Joined: Wed Aug 18, 2004 7:40 pm
Posts: 3751
Location: South Africa
I thought of this recently and made a mental note to read up about the chess ranking system. Unfortunately I haven't done that yet, but you can get the formulas from Google. Apparently the ELO system is the most widely used, and is somewhat standard. There's an explanation of how to use it here: http://www.chesselo.com/

_________________
Whatever the mind can conceive and believe, it can achieve

Top

 Post subject: Re: Implementing a ranking systemPosted: Thu Jun 23, 2011 11:02 am
 Corpse Bride

Joined: Tue Jul 01, 2008 11:44 pm
Posts: 2221
Location: England
It's not simple.

If you want it to be stable over a long period of time, then each player must settle at a point where they are gaining points as quickly as they are losing them.

But high ranked players will be winning more games than they are losing, simply because they'll be playing mostly against people less skilled than themselves. This fact has to be taken into consideration in terms of points awarded or taken.

If the numbers balance, then you get a transaction system, where players are essentially winning points off one another. However, new players won't have any points to give up when they lose... so that doesn't work.

If the numbers don't balance, then the ladder as a whole *can* lose or accumulate points over time, where players all sail towards level 100, or puddle together in level 1.

A second problem is that if a player is at a low level, does it mean they are bad, or does it mean they haven't played many games? Or are they actually a highly skilled player who is starting anew?

What this uncertainty means is that we can't decide how many points to award/take based solely on comparing player levels. We have to actively estimate the player's skill independently of what level they're currently at. This is crucial for a stable ladder.

The final factor is that a level has to have some statistical meaning in order to calibrate the whole ladder. eg, What win% do we expect a level 60 player to have against level 50 opponents?

I've made a couple of ladder systems myself, but it's hard to describe exactly how they work. The core of each of them is to consider these parts:
(i) to award points based on expected win%
(ii) expected win% is determined by estimating player skills,
(iii) estimated player skill is more mobile than player level, and is nudged up or down depending on the the relative skill of opponents we win/lose against.
(iv) estimated player skill should make use of the statistical calibration I mentioned above.

_________________
I ain't pushing no moon buttons.

Top

 Post subject: Re: Implementing a ranking systemPosted: Thu Jun 23, 2011 11:19 am
 Harmlessness does no harm

Joined: Tue Sep 14, 2004 8:37 pm
Posts: 3913
Location: Ferriday, LA, US
Jasmine wrote:
award points based on expected win%

What she said. Your game has to know what kind of results to expect to assign a grade. These can be based on time, number of wins/kills/whatever, the number of "money" shots (headshots, etc.), number of items collected... or any combination of these (and other scoring features).

Best way to figure out how to scale the rankings is playtesting. Lots of it. Don't rely solely on how it "looks on paper", or you'll wind up shooting yourself in the foot.

_________________
What most people don't understand about "enlightenment" is that it is not an end-goal; but where you find yourself just before taking a new "first step."

Top

 Display posts from previous: All posts1 day7 days2 weeks1 month3 months6 months1 year Sort by AuthorPost timeSubject AscendingDescending
 Page 1 of 1 [ 4 posts ]

 All times are UTC

#### Who is online

Users browsing this forum: No registered users and 2 guests

 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forum

Search for:
 Jump to:  Select a forum ------------------ Forums    Forum Rules and Posting Guidelines Wiki Discussion    Help    Content Issues Game Programming Discussion    C and C++ Game Programming    Java Game Programming    Language Agnostic Programming    .NET Game Programming    VB Game Programming    Mobile Game Programming    Web-Based Game Programming    Other Languages    OpenGL Development    Direct X Development Game Development Discussion    Game Design    Game Media Off-Topic Discussion    Announcements    Off-Topic    Community Projects    News