You've been waiting long, so here's the next article for ELO Rating system for Deathmatch.
Get it here if you don't want to read
It's the next article following this one about ELO Rating for Team Deathmatch
ELO Rating System for Deathmatch
Deathmatch
Deathmatch has different nature than Team Deatchmatch. In this mode, player has to fight on his/her own against other player, and the winning condition (if any) is often claiming the 1st position.So, we'll use that approach for this system.
Methodology
- Again, ELO system is initially built for personal match, to use it for Deathmatch, we must make another assumption : player A will compete against another imaginary opponent (call him X), which has the ELO points equal to the average ELO points of the rest players (exclude player A).
Example : A Deathmatch with 6 players. Player A will fight against an imaginary opponent (X) which has ELO points equal to the average ELO of the rest 5 players (exclude Player A)
- If player has more points than X, he's more likely to stay in the top half of the chart (in 6-player Deathmatch, it's the top 3). So if it's not, then players loses more points.
- If you want more ELO points, stay in top. If you want to lose points, stay in bottom
Calculation
(this site provides the calculation of ELO system for chess, which I use for my method https://metinmediamath.wordpress.com/2013/11/27/how-to-calculate-the-elo-rating-including-example/)Player A attends a 6-Player Deathmatch against 5 other players.
Here's how we get the ELO
Step 1 : Get average ELO Points of the rest players
Step 2 : Compute transformed ELO rating points of player and the rest
r(A) and r(Rest) : current Elo points of Player A and the Rest respectively
Step 3: Compute the expected score (E)
Step 4 : After the match is over, get the actual score based on the rank of player A
Step 5 : Get the updated ELO point
- r’(A) : updated Elo point of Player A.
- K -factor: K = 32
- n = 1
Why n = 1?
In Deathmatch, good player gets more points than Team Deathmatch because they don't have to "share" it. It may cause a tendency to choose Deathmatch rather than Team Deathmatch
But, if you sucks at playing Deathmatch, the loss is greater because there's no teammate to share with you. High risk, high reward.
So if you want a balance between these modes, consider using a smaller value of n to make the ELO Points gained in Deathmatch smaller. (1 is the default value)
Confused? Get this file and I'll illustrate the system in step by step
https://drive.google.com/open?id=0BzRDev8MAFcaeGUwZ0N6YThzdFU
Do you have any comment, please share with me.
I'm testing your approach but this seems much easier to understand than the one I founded: http://sradack.blogspot.com/2008/06/elo-rating-system-multiple-players.html
ReplyDeleteI didn't understand why they calculate S by divide N(N-1)/2
Btw, is it ok if we can discuss by Skype? Mine ID: anh.legiang
ReplyDeleteHi Tom,
ReplyDeleteHere is my result comparing your approach with this one: https://forum.unity3d.com/threads/elo-ratings-for-multiplayer-game.81579/
Sheet 1: Your approach
https://docs.google.com/spreadsheets/d/1tcTY8xHh-T0QpRnjF-l1l-vr2FchsLRXRWo5JaWqG_g/edit?usp=sharing
Sheet 2: Their approach
https://docs.google.com/spreadsheets/d/1z2owdbIUPG1RTwu3hNR9-oFzWjK6MAKxwL6eDOZQQP8/edit?usp=sharing
Their is a difference with my current example (same Elo, rank place). I think there is an missing in your approach: It doesn't take in to account the rank place of other player. So if the player rank as 1st place, this approach doesn't care whether the other highest Elo player's rank.
But actually we should care about it as second approach. Ex: If you rank as second place, but the first place is a lowest Elo player while the lower places are very high Elo players, you should have better Elo.
You can see the similar approach here: http://sradack.blogspot.com/2008/06/elo-rating-system-multiple-players.html
They consider the multiplayer game as serial of matches between player 1 with the rest players. So Player 1 will have 4 matches in a 5-players game match.
And then they will calculate the r(1)' by:
r(1)' = r(1) + (K ( Sa1 - Ea1 ) + K ( Sa2 - Ea2 ) ... + K ( SaN - EaN ))/(N-1)
Again, I would like to discuss with you more since we are working on an online shooting game :D
Right now I'm super busy with the projects, so I may delay this post for some time.
ReplyDeleteWill look into your example for sure.
Thank you