LongTurn Web League scoring

Planning and discussing Freeciv Longturn gaming
User avatar
Corbeau
Elite
Posts: 599
Joined: Mon Jan 13, 2014 11:13 pm

LongTurn Web League scoring

Postby Corbeau » Tue May 30, 2017 11:46 am

Starting from the 3rd game that is going to begin soon, I will start calculating the overall score for the games of LongTurn Web. Players will receive score from their games based on their rank. Points will be added up over all games that have been played and I will maintain a LWT League table.

It took me some time to shuffle numbers, but I finally conceived a ranking system that I'm happy with. So, I will be running the scoring that everybody is completely happy to ignore or, if they wish so, to create their own ;)

It may seem a bit complicated, but firstly, it isn't. If you take a few moments to look into it, you'll realise that the system is pretty simple, only with a few variable elements.

Secondly, it can't be too trivial for a simple reason: the number of players will vary and that needs to be taken into consideration. A player shouldn't get the same reward if he came first in a 30-player game as if he came in first in a 60-player game or more.

Option 1

It may be a bit easier to understand all of this if you first skip the whole explanation, have a look at the example at the bottom (Level 5 game, 15 players; inspect points from bottom up, starting with the last) and only then return to see the explanation of the system.


Step 1. - Determining maximum number of points based on number of players.

A game is assigned a Level, based on number of ACTIVE* players.

Minimum level: 5, a game with 1+2+3+4+5=15 active players.

Level 6: 21 active players. (15+6)

Level 7: 28 active players. (21+7)

Level 8: 36 active players. (28+8)

...etc.
You get the point.

(For those mathematically inclined:

L=sqrt(2*N+1/4) - 1/2

where L is Level and N is number of players)


If the number of active players is between those noted here, a lower number is taken into account. So, a game with 30 players is Level 7.

* I will be determining the number of active players at at roughly 5 random instances between turns 10 and 40 and take the average number of players active in the last two turns.



Step 2. - determining rank and assigning points

For further reference:

In-game points - the ones you have in your Nations screen, that are calculated by your population and achievements, will be referred to as:
Civ Points (CP).

League scoring points that are calculated here and are transferred from game to game will be referred to as:
League Points (LP).

Rank for a particular game will be determined based on players' in-game score - CP - at the end of a game. The only thing that will matter in the end is how many people have scored more and how many people have scored less than you. If you are No.1 with 1000 CP, it doesn't matter if player No.2 has 999 or 500 CP. You are 1st and he is 2nd and you both score the same number of League Points either way.

Player who ranked 1st in the current game gets the maximum number of LP:

N*(N+1)*(N+2)/6.

Here are some examples:

Level 5 - overall 15 players - 1st gets 35 LP
Level 6 - overall 21 players - 1st gets 65 LP
...
Level 10 - overall 55 players - 1st gets 220 LP
...


Other players get less LP based on the game level and the following principle.

Say, the game is Level 8, meaning 36 players. L=8.

1st player gets 120 LP.
2nd player gets (L) 8 LP less: 112.

Next 2 players get (L-1) 7 LP less than the previous one:
3rd: 105 LP
4th: 98 LP

Next 3 players each get (L-2) 6 LP less than the previous one:
5th: 92
6th: 86
7th: 80

Next 4 players each get (L-3) 5 LP less than the previous one:
8th: 75
9th:70
10th: 65
11th: 60

...etc...

Next 8 players each get (L-7) 1 LP less than the previous one:
29th-36th get 8, 7, 6, 5, 4, 3, 2, 1 points, respectively.


If there are more than 36 players in a Level 8 game (up to 44), they get 0 (zero).


Here is an example for a Level 5 game (15 players) scoring:

Rank - League Points
--------------------------
1st - 35
2nd - 30
3rd - 26
4th - 22
5th - 19
6th - 16
7th - 13
8th - 11
9th - 9
10th - 7
11th - 5
12th - 4
13th - 3
14th - 2
15th - 1


Option 2

This one is far simpler. It goes by a single formula:

Points = ROUND( ("inverse rank" / No. of active players)^2 * SQRT(No. of active players)*10 )

where "inverse rank" is almost self explanatory: in a game of 10 players, the best player has rank 10, 2nd best is 9 etc. and last is rank 1.

Number of active players would be determined in the same way as in the Option 1: at roughly 5 random instances between turns 10 and 40 and taking the average number of players active in the last two turns

Here are examples of such scoring:

20-player game:

Rank - points
1 - 45
2 - 40
3 - 36
4 - 32
5 - 29
6 - 25
7 - 22
8 - 19
9 - 16
10 - 14
11 - 11
12 - 9
13 - 7
14 - 5
15 - 4
16 - 3
17 - 2
18 - 1
19 - 0
20 - 0


60-player game (shortened for clarity):
Rank - points
1 - 77
2 - 75
3 - 72
4 - 70
5 - 67
10 - 56
15 - 46
20 - 36
25 - 28
30 - 21
35 - 15
40 - 9
45 - 6
50 - 3
55 - 1
60 - 0


----------------------------------------------------------

The topic is open for discussion.
Last edited by Corbeau on Wed May 31, 2017 2:07 pm, edited 1 time in total.

User avatar
Corbeau
Elite
Posts: 599
Joined: Mon Jan 13, 2014 11:13 pm

Re: LongTurn Web League scoring

Postby Corbeau » Tue May 30, 2017 2:31 pm

Ok, a question for the masses.

There are two options.

One is to stimulate victory and combat in the upper tiers. For this, there needs to be a bigger difference between the first few places. However, this could result in disproportional number of points for a good score in bigger games. Namely, the system that I just withdrew had this:

Level 5 - overall 15 players - 1st gets 35 LP
Level 6 - overall 21 players - 1st gets 65 LP
...
Level 10 - overall 55 players - 1st gets 220 LP
...


This means that the winner in a Level 10 game gets 15 times more points than the winner in a game with 4 times less players. Or, another example, that a victory against 20 (active) players is twice as valuable as a victory against 14 (active) players.

In other words, if someone manages to pull off a 1st place in a large game and the next few games don't attract the same number of players, he can lie safely because there is no chance that someone will be able to dethrone him for the next few games.


I would prefer the second option, where the maximum number of points would be something like a sqrt(No.of.players). However, that would mean less difference between points for some "Levels".

I am personally leaning towards the second option (that's why I removed the first system), but what do others think?

User avatar
Corbeau
Elite
Posts: 599
Joined: Mon Jan 13, 2014 11:13 pm

Re: LongTurn Web League scoring

Postby Corbeau » Wed May 31, 2017 2:11 pm

Right. I eventually realised that, along with the system, I removed the whole explanation about the point of all this, so it probably raised an eyebrow or two. Now it's back, edited and formatted.

If anyone cares, there are two options, the second one has a result more to my liking and is also FAR simpler when it comes to calculating.

If anyone is interested, have a look and feel free to discuss.

louis94
Hardened
Posts: 186
Joined: Thu Apr 25, 2013 10:17 pm
Location: Belgium

Re: LongTurn Web League scoring

Postby louis94 » Wed May 31, 2017 3:36 pm

Hello,

With your systems, one can only ever earn new points, and newcomers are therefore disadvantaged, even if they're very good.

I think you also need to find a balance between a very good player who can only play a few games/year and an average player who has more time to play. If points are gained on a per-game basis, the score is biased towards players playing more games.

Maybe consider some kind of running average (yes that's even harder to implement) ? The per-game balance would require more attention, but things will hopefully become easier to understand once data starts coming.

Did you test your two systems on LT games ?

Louis

User avatar
Corbeau
Elite
Posts: 599
Joined: Mon Jan 13, 2014 11:13 pm

Re: LongTurn Web League scoring

Postby Corbeau » Wed May 31, 2017 5:23 pm

Those are good points and yes, they need to be solved, I was planning on doing it on the next step.

Firstly, sporadic participation.

There is a sport called Orienteering (and a few spin-offs). It is a hobby/amateur sport, meaning ordinary people do it in their free time, meaning no professionals. In short, nobody can ever make it to all competitions so the system is: take into account not all competitions, but only those 50%+1 where you achieved the best score. So if there have been, say, 7 games, scoring is made for each player's best 4. If there have been 10 games, 6 are taken into account. others are discarded. It may seem unfair, but isn't really.

Secondly, passage of time: it can be done very easily if only games that have ended in the last, say, two years, are taken into account. (Period can be debated, especially after we see how many are actually going to be played per year.) Possible variation: older players keep a part of their old score so that they are not completely deleted when they stop playing (Hall of Fame of the sorts). But we'll come to that when we come to that.

I haven't tested it on LT because I played only a few games there and never got a hold of the full end list. But if anyone has access to it, feel free to share. Although, gameplay there is heavily influenced by their scoring system which heavily stimulates hostility. That is the main reason I came here and pushed for this.


As for technicalities, I think that an Excel/LibreOffice table can take care of everything.