Changing ELO points for cooperative games

Suggestions & ideas / Suggestions & idées
User avatar
HanabiGrandMaster
Posts: 32
Joined: 07 August 2019, 23:17

Changing ELO points for cooperative games

Post by HanabiGrandMaster »

I have an idea for changing the ELO system for cooperative games, and I would like to hear your feedback.

Problem with the current system
In my opinion there are two problems with the current system.

1. For some games, the ELO is representative of the number of games played; not the actual skill of a player.
(For example: bandido, where you get +1 point for winning, and +0 points for losing.)

2. For some games, the community only wants to play with "experienced" players, so they abandon non-perfect games to protect their "master" status. (For example: hanabi)

Proposed solution
My proposal is based on one assumption: cooperative games can be won approximately 100% of the time.

1. A player's ELO will represent the player's ability to win:
1000 ELO points = 100.0% chance;
300 ELO points = 30.0% chance;
50 ELO points = 0.50% chance. (etc)
This is consitent with the BGA "wording" of ELO: ( Apprentice 10%, Average 20%, Good 30% , Strong 50% , Expert 60% , Master 70+% ).

The "Team ELO" should be calculated using the "least squares method" (smallest sum of distances, because in team games it's often not possible for one player to carry the team to victory).
I recommend that a player's ELO is representative of at least 9 games. The finished game makes the 10th game. So the change in ELO is
{Result - "Team ELO"}/10.

Example
Player_A has ELO 350; Player_B has ELO 500; and Player_C has ELO 550.
The TEAM has ELO 474.3 = sqrt{(350² + 500² + 550)/3}
If the team wins, they get (1000 - 474.3)/10 = +52.6 points.
If the team loses, they get (0 - 474.3)/10 = -47.4 points.

2. Abandonned games should still adjust ELO:
The probability of winning can be calculated, or estimated during every move. The lowest probability will be remembered, and used to calculate ELO.

Example
The team uses an inferior strategy that only wins 75% of the time. The game "knows" this (through calculation, or approximation).
If the team wins, they get (750 - TEAM_ELO) / 10 points.
If the team abandons their "unlucky" game in a lost state, they get (0 - TEAM_ELO) / 10 points.
If the team is relatively unlucky, and it comes down to a 50-50, and they don't want to risk losing points by abandoning, they get (500 - TEAM_ELO) / 10 points.
User avatar
ufm
Posts: 2039
Joined: 06 January 2017, 08:38

Re: Changing ELO points for cooperative games

Post by ufm »

Well, instead I abandoned 'ELO' label for cooperative game ratings and it went very well (0 bug reports/suggestions regarding co-op rating).
viewtopic.php?t=24363
viewtopic.php?t=27914

Now I never use arbitrary ELO calculation in co-ops. It's doomed to failure.
User avatar
HanabiGrandMaster
Posts: 32
Joined: 07 August 2019, 23:17

Re: Changing ELO points for cooperative games

Post by HanabiGrandMaster »

I don't understand what you're saying. ("Now I never use arbitrary ELO calculation in co-ops. It's doomed to failure.")

Because all BGA cooperative games use ELO. And you can filter tables on ELO. I like being able to filter on ELO. This way you can select people who are more experienced, or are more keen on exploring the game's possibilities.
User avatar
Blacktango
Posts: 537
Joined: 18 April 2015, 12:15

Re: Changing ELO points for cooperative games

Post by Blacktango »

I think what ufm is saying is that it is very hard and arbitrary, as a developer, to define how much ELO you have to give at the end of the game, for a cooperative game. Most of the time it's not accurate, and as a player, you can't really use that ELO to know if your teammate is well experienced or not.

For Hanabi for example, I used to combine the ELO + the nb of games the player has played.
Because it's common to find an expert/master who doesn'tn know as much "basics" as you think they should with their ELO. This is no a big deal, and the player probably did nothing wrong.
For example they may have played a lot a few years ago, and lost that experience but not their ELO, they may play well a lot in two player mode but not get experience with more peoples, …
User avatar
ufm
Posts: 2039
Joined: 06 January 2017, 08:38

Re: Changing ELO points for cooperative games

Post by ufm »

HanabiGrandMaster wrote: 26 June 2023, 17:39 Because all BGA cooperative games use ELO. And you can filter tables on ELO. I like being able to filter on ELO. This way you can select people who are more experienced, or are more keen on exploring the game's possibilities.
No, in fact many games don't, especially my implementations.
For example, Bandido as you said, and it actually works better than Hanabi's 'ELO'.
Have you found any bug reports, abandoned games or player conflicts from Bandido rating? I can find tons of them in Hanabi.
Blacktango wrote: 26 June 2023, 18:49 I think what ufm is saying is that it is very hard and arbitrary, as a developer, to define how much ELO you have to give at the end of the game, for a cooperative game. Most of the time it's not accurate, and as a player, you can't really use that ELO to know if your teammate is well experienced or not.
And don't forget abandon issues too.
User avatar
HanabiGrandMaster
Posts: 32
Joined: 07 August 2019, 23:17

Re: Changing ELO points for cooperative games

Post by HanabiGrandMaster »

No, in fact many games don't, especially my implementations. For example, Bandido as you said (...)
I'm sorry, you must use a different version from BGA than I. I've made a screenshot how I can make Bandido tables with restrictions based on ELO.
I think what ufm is saying is that it is very hard and arbitrary, as a developer, to define how much ELO you have to give at the end of the game, for a cooperative game. Most of the time it's not accurate, and as a player, you can't really use that ELO to know if your teammate is well experienced or not.
The whole point of my post is that I proposed an easy to implement solution, that's accurate enough to make ELO in cooperative games work similar to ELO in competitive games. Did you guys even read what I posted? Can you please comment constructive feedback?
User avatar
ufm
Posts: 2039
Joined: 06 January 2017, 08:38

Re: Changing ELO points for cooperative games

Post by ufm »

HanabiGrandMaster wrote: 29 June 2023, 11:17 I'm sorry, you must use a different version from BGA than I. I've made a screenshot how I can make Bandido tables with restrictions based on ELO.
It is not 'ELO' in fact as 'ELO' does not increase 1 per win. It's just a rating point mislabeled as ELO.
HanabiGrandMaster wrote: 29 June 2023, 11:17 The whole point of my post is that I proposed an easy to implement solution, that's accurate enough to make ELO in cooperative games work similar to ELO in competitive games. Did you guys even read what I posted? Can you please comment constructive feedback?
Yes, but sadly it cannot work as players can abandon games to avoid rating loss.
However, blocking abandon or reducing ELO brings more issues like, what happens when players have emergencies or the game is somehow blocked?
Unless the framework somehow magically detects abandoned games only for rating, it nullifies all attempts to artificially simulate ELO.
Also, the game cannot read players' ratings server side (js reads it, but it can be manipulated from the client).
You should consider what BGA framework can do and what it cannot to suggest an alternative.
Requesting the whole rating system overhaul to implement these is a step too far though, I guess. It's not easy to implement at all.
User avatar
HanabiGrandMaster
Posts: 32
Joined: 07 August 2019, 23:17

Re: Changing ELO points for cooperative games

Post by HanabiGrandMaster »

Let's call the "not ELO" still ELO, since the entire BGA framework is centred around ELO, and I'm not suggesting we change that. I'm suggesting that wel adjust how ELO in coop games is calculated, so it can fit into the existing framework of BGA, without too much tweaking.

I've given thought about the issue where players avoid rating loss by abandoning. I'm not certain what
Also, the game cannot read players' ratings server side (js reads it, but it can be manipulated from the client).
means. Here's what I assume:

BGA knows, at the start of the game, what everyone's ELO is. Otherwise BGA cannot filter who joins a table.

The cooperative game, can track a number of variables to approximate the chance that the team wins.

Example #1
In Bandido one might calculate the chances of the team winning by simply looking at the number of moves made. Chance of winning is (TEAM_ELO/1000)*(50-move_number)/50.


Example#2
In Hanabi the odds can be calculated as (TEAM_ELO/1000)*(1-(lost_4s/n + lost_3s*1.5/n + lost_2s*2.5/n) - 1 if a unique card is lost). In this formula, n is the number of cards remaining in the deck.


These odds represent the ELO that can be awarded at a time of abandonment of the game. It is NOT a penalty for people who genuinely have to leave in an emergency. It IS a penalty for people who abandon hopeless situations.

I'm just a very mediocre programmer, but I don't think this requires any overhaul at all. Tracking one extra variable in a game, should be easy. And the abandon routine only needs a slight adjustment: when all players agree on abandonment in a coop game, then adjust ELO anyway, using the variable. And if the game is finished, adjust ELO using the variable.
User avatar
Tisaac
Posts: 2736
Joined: 26 August 2014, 21:28

Re: Changing ELO points for cooperative games

Post by Tisaac »

It means that what you are proposing is not doable. We dont have access to elo as game developpers.
User avatar
HanabiGrandMaster
Posts: 32
Joined: 07 August 2019, 23:17

Re: Changing ELO points for cooperative games

Post by HanabiGrandMaster »

So, since abandonning now counts as a loss, the problem I posted has been simplified.

Is it possible to change the ELO scoring for cooperative games now? Everything that isn't a win, should count as negative ELO points.

I'm sure it's possible to make ELO reflect the winrate of a cooperative game.
1000 ELO points = 100.0% chance;
300 ELO points = 30.0% chance;
50 ELO points = 0.50% chance. (etc)
Post Reply

Return to “Suggestions”