We know that in-game scoring system is not reliable and we found that global leaderboard is glitchy and does not reflect the reality. Under these considerations I took an initiative to create a most accurate leaderboard which follows the rules described below, where we don't know ho RedLynx actually calculates scores.
Click on the image to open the Leaderboard in Excel Online.
The rules I invented for scoring:
- at every single track you can earn 1,000,000 points max
- your track position depends on how much points you earned
- your global position depends on a sum of all points of each track
- if you don't have a track, you earn 0 points
- each track has minimum unattainable time, which is set to 75% of world records at some point of time (i.e. if record was 10 seconds, that time will be set to 7.5 seconds)
- using current winning rules in the game, if you have more faults, your score is less, even if your time is significantly better (e.g. you lose if you have 3 faults and time of 10 seconds, where another player has 0 faults, but time is 50 seconds)
- the formula for computing points on a track is:
1,000,000 x SQRT(K)
where K = unattainable_time_ms / (your_time_in_ms + P)
where P = fault_count x 10 x unattainable_time_ms
Explanation:
- K is a coefficient from 0 to 1, so you can earn 1,000,000 points max if you do extremely well (0 faults, unattainable time)
- expression "unattainable_time_ms / your_time_in_ms" tends toward 0 as your time increases, and tends toward 1 when when your time decreases
- P is a penalty time which is based on fault count and added to your time on the track
- P is calculated as fault count multiplied by the worst possible time on a track, what is expressed as "10 x unattainable_time_ms" (e.g. if unattainable time is 15 seconds, the worst time will be 2 minutes 30 seconds). This allows a person with less faults to always win (almost always).
- SQRT(K) gives progresive scoring system, where best times (close to the unattainable time) differ very little in points
Example:
"The Cave", record is about 10 seconds, the unattainable time will be 7.5 seconds.
Your time is 9.8 seconds, 0 faults, thus your score will be: 1,000,000 x sqrt(7500 / (9800 + 0)) = 874,818
Your time is 11 seconds, 0 faults, thus your score will be: 1,000,000 x sqrt(7500 / (11000 + 0)) = 825,723
Your time is 10 seconds, 1 fault, thus your score will be: 1,000,000 x sqrt(7500 / (10000 + 1 x 10 x 7500)) = 297,044
Your time is 30 seconds, 0 faults, thus your score will be: 1,000,000 x sqrt(7500 / (30000 + 0)) = 500,000
Minimum unattainable times for tracks (in milliseconds):Spoiler: Show
This image show me on 24th position and on excel i'm 10th (which i think is more accurate)
Nothing greedy ^^, just for my information...
Also started to re race tracks where i'm above 100th, goal is to be under 50 everywhere and i've done it for 7-8 tracks tonight
Will it be easy for you to update new times for every improving player? I guess not.?
The image is old, serves as an example onlyI will do updates once in 3 days at least.
..and I thought I was good at math.
What do you mean?Originally Posted by justinman114 Go to original post![]()
Whoa nice job, I can use this to seek out my lower ranked tracksand do some new PRs.
49th currently!
GJ stampede, I appreciate a LOT!
Haha, I just meant there are a bunch of confusing calculations here that I either don't understand or am too lazy to figure out! I was tired when I wrote thatOriginally Posted by stampede-8 Go to original post![]()
Is this a constant number for each track you store/update every once in a while, or is it auto-calculated each time based on the best time seen in the current set data on each track? Is it a cross-platform number for the track (your description implies it is), or can Android and IOS have different unattainable times? (asking because I think I'll need to duplicate your scoring algorithm for one of my projects and am not sure I have all the data I need to do it right).- each track has minimum unattainable time, which is set to 75% of current world records (i.e. if record is 10 seconds, that time will be set to 7.5 seconds)
Right now unattainable times are calculated dynamically. I just didn't get to that point where they are constants yetOriginally Posted by xitooner Go to original post
And I thought that sharing those constants for both platforms will be OK.