## ZELO Explanation

#### What is ZELO?

Since the 1vs1 League was born a perpetual player rating exists to indicate the player's strength. The rating formula for the original ZELO score, compiled by the league's founder Zongo, is a combination of*Zongo & ELO*(ELO rating). In the beginning everything was fine but after a while, when the ZELO score difference between very skilled and active players and ordinary players became pretty high it turned out the original ZELO formula has a bug. It appears when the ZELO score difference of two players is higher or equal to 1000. Then, even the winner of a match can lose ZELO score points which is ... "unedifying".

Therefore, over time, many public and private discussions came up to find a proper formula modification or a successor rating algorithm. To make things short, promising variants like Glicko2 or TrueSkill never got implemented. Since the other BZFlag leagues are using the ELO rating (known from chess) with an adapted weighting factor, it has been decided to use the same but with a slight modification to take the players' match scores into account.

#### How do I compute my ZELO score?

Each player starts with a score of 1000 ZELO points. After a game the new ZELO scores for the match opponents (winner and loser) are computed by the following formula:- K - ELO weighting factor
- S - weigthing factor of influence of players' match score difference
- D - difference for player's ZELO score after the match (rounding: round half up)
- WZ - winner's ZELO score before the match
- WS - winner's match score
- LZ - loser's ZELO score before the match
- LS - loser's match score

- K = 50
^{}_{} - S = 1/4
^{}_{} - D = ⌈ K * ( ( 1 - S ) + S * ( ( WS - LS ) / WS ) ) * (1 - (1 / (1 + 10
^{( (LZ - WZ) / 400 )}) ) ) ) ⌋_{} - ZELO
_{(winner)}= WZ + D^{} - ZELO
_{(loser)}= LZ + D^{}

#### Can you give an example?

Yes.- Match: root (1000) vs. Zongo (1000)
- Result: root wins 10 - 7 against Zongo
- Thus we have: WS = 10; LS = 7; WZ = 1000; LZ = 1000
- Formula now gives: D = 21; ZELO
_{(root)}= 1000 + D = 1021; ZELO_{(Zongo)}= 1000 - D = 979