webDip dev coordination forum / public access todo list
It is currently Mon Sep 25, 2017 6:01 am

All times are UTC

Post new topic Reply to topic  [ 19 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Nov 12, 2008 9:13 pm 

Joined: Wed Nov 12, 2008 8:48 pm
Posts: 29
Well, here's one idea I've had.
Any thoughts?

To start I'll summarise our objectives (* kestas paraphrased, + my additions)

Functional (Promote desirable activity)
* Reward taking over CD [L]
* Reward mingling [G]
* Reward regular participation [G]
* Make restarting with a new account undesirable [G]
* Reward joining the right number of games [G]
* Punish CD [L]
* Punish inactivity [G]
* Encourage activity [G]
* Inviting to newcomers [G]
* Enjoyable to compete in
+ Encourage play at equal level [L,G]
+ Encourage quality over quantity [G]
+ Flexible to player time-frames [G]

Accurate (Act as a fair and reliable yardstick, and conserve the spirit of Diplomacy within the game)
* Reward surviving [L]
* Reward winning [L]
* All games shouldn't be equal [L]
+ Stability - player ranks should converge to some number rather than jump around irratically [L]
+ Non-stagnation - players should be able to change their ranks if they indeed improve (or worsen) [L]
+ Fast convergence to corrent rank [G]
+ Continuity - player rank differences should mean the same at all levels [L]
+ Time invarient - player ranks should be independant of time or frequency of play [G]
+ Winner gain is constant, to avoid point maximization within a game [L]
+ Distinguish clearly between victory, survival, defeat and abandonment [L]

Practical (Integrate easily within the system)
* Simple
* No magic numbers
* All-in-one
* Design spec

Some flaws with the current system:
* Reward surviving - the difference between 0 and 2 SC is too small
* Reward winning - the difference between 16 and 18 SC is too small
* Reward joining the right number of games - too many newbies joining too many games at once
* Encourage activity - inflation and inaccuracy in fact discourage the activity of veterans, myself included. I feel I have played well but that it isn't reflected in my score because I cannot invest the time required to keep up.
+ Encourage play at equal level - accuracy is required for this, and the betting system is not a reliable limitation
+ Flexible to player time-frames - inflation is a problem for this
+ Stability - currently player ranks = leftover points, this is no indication of anything
+ Time invariant - inflation and veteran advantage
+ Winner gain is constant, to avoid point maximization within a game - PPSC is flawed in principle, it should be fixed for the winner and PPSC for survivors
+ Distinguish clearly between victory, survival, defeat and abandonment - PPSC and WTA are flawed in this sense.

Ok, now for my proposal.
When designing this system I separated objectives into local (i.e. per game) and global. (Denoted by L and G in the list of objectives.)
Locally we should reward players correctly, differentiating clearly between victory, survival, defeat and abandonment.
Globally we should encourage favourable activity and control inflation.
So in my design my function is globally zero-sum, although not locally.
I think the assumption that it has to be zero-sum locally is flawed. There is much to gain by skewing it.

Players are ranked by a single number, R = player rank.
This starts at zero and is never negative.

When a game is started there are several numbers that are defined. (all values are percentages)
G = game significance = what portion of player rank is invested in the game
P = participation % = what portion of the game value is given to non-CDs, regardless of outcome. Also determines who can join a game.
W = winner % = what portion of game value (after P) is given to the winner
S = survivor % = what portion of game value (after W) is divided flatly per survivor, the rest being divided per SC between survivors

It's important that W >= 18/34 ~ .53. That is the winner gains the most points under any circumstance.
Default: G=.1, P=.2, W=.6, S=.5.

When the game ends we note R = player rank, and C = supply centres.
We then define V = game value.
A natural definition would be V = sum(R) * G.
However, I skew this slightly for global reasons:
V = sum(R) * (G - .01 * (1-P)) + 210 * (1-P)
winner R = (1-G) * R + V * (W*(1-P) + P / #players)
survivor R = (1-G) * R + V * ((1-W)*(1-P)*(S / #survivors + (1-S) * C / sum(survivor C)) + P / #players)
defeated R = (1-G) * R + V * P / #players
CD R = (1-G) * R
draw R = (1-G) * R + V * ((1-P)*(S / #survivors + (1-S) * C / sum(survivor C)) + P / #players)

Minimum R to join = (creator R - 350) * (1-P)
Note: the notion survivor does not include the winner

P = 1 means anyone can play, but the game has no meaning
P = 0 limits to players no less than 350 below the game creator.

There are two separate planes where we can argue, local and global.
* Apart from the skewing of V, the rest is a zero-sum function.
We can argue about my choice of zero-sum function, or my choice of constants.
I believe it achieves the local objectives.
The proportional cost (rather than fixed cost) to enter a game discourages players from joining lower-ranked games.
It also curbs the phenomenon of banking points, slowing inflation.
And quality of play counts more than quantity.

P=0,W=1,S=0 is simply WTA
P=0,W=.55,S=0 is a good approximation of PPSC
Setting S>0 makes for a sharper distinction between victory, survival and defeat.
Setting P>0 discourages CD and allows for wider mingling
Also, the settings are customizable and continuous, allowing players to fine-tune the kind of game they would like, but designed (hopefully) without possibility for exploitation.
Of course to make this simple we could define basic templates, such as PPSC and WTA, but also allow for "advanced" tweaking.

* The skewing of V is what should achieve the global objectives.
On average: new R = (1-G)*R + V/7 = R - R * .01 * (1-P)) + 30 * (1-P)
Fixed point at R = 3000
Gradient = (1 - .01 * (1-P)).
This means that ranks as a whole should converge to around 3000, since the gradient is between 0 and 1.
Also, the function doesn't generate negative R, so the entire system is stable. In this sense it is globally zero-sum.
The function gives us strong low-rank inflation and weak high-rank deflation.
This will encourage new players, giving them a sense of accomplishment, and will catapult strong new players to more suitable ranks.
(If a new player wins consistently against equally ranked players his rank should progress: 0, 85, 190, 318, 476, 670, 908, 1200, 1559, 1999, 2539, 3202...)
Since the skewing is done on V and not on R this will encourage low-ranked players to stick to low-ranked games. (If the prospect of losing is not enough of a deterrent.)
It will also encourage some mingling across the 3000 rank mark.
Also, around the 3000 rank mark the function is time invariant.
The gradient is also suitably small so that it gives us a large range of negligible skewness to play in.

PostPosted: Thu Nov 13, 2008 4:57 pm 

Joined: Sat Sep 27, 2008 12:00 am
Posts: 44
I have to re-read when I have more time and make sure I understood all properly, but the first impression is that of a very valuable contribution to the discussion on ranking/matching. Will post more when I will have thought over it better!


PostPosted: Thu Nov 13, 2008 6:48 pm 

Joined: Wed Nov 12, 2008 8:48 pm
Posts: 29
Sure thing.

To summarise, the basic principle is thus:
We have 3 functions:
Pay-in(Ranks) => Game Value, Rank adjustments
Skew(Game Value) => Game Value
Pay-out(Game Value, Results) => Rank adjustments

Most ranking schemes that I've seen can be described using Pay-in and Pay-out.
(edit: Pay-in and Pay-out are zero-sum functions)

Now we can argue over each of these functions separately.
In my proposal:
Pay-in => Game Value = sum(Ranks) * G (= Game Significance); Ranks multiplied by (1-G)
Skew = positive linear function with derivative < 1
Pay-out => continuous generalisation of WTA and PPSC, that gives better separation of victory, survival and defeat

The choice of Pay-in and Skew both act to slow inflation.
It is possible to consider a concave function for Skew instead.

PostPosted: Fri Nov 14, 2008 12:50 pm 

Joined: Wed Nov 12, 2008 8:48 pm
Posts: 29
I have noticed that there are often situations where I lose a game because of the short-sightedness of another player, who also then loses. (Otherwise it wouldn't qualify as short-sightedness.)
What's annoying is that player will do better in the game despite his bad analysis.
So, while winning is a clear indication of player worth, survival and other rewards are not as reliable.
But playing WTA is not a good solution because there are other advantages to the other rewards.
So I had another idea: a stock market.

This idea is independent of the above rank function.
In general a player is involved in a couple of games.
We know his current rank R, and we can calculate his worst potential rank (based on current games), W.
(With my suggested system W = R * product(1-G).)
We can then view W as free points which a player could use to bet on games.
So players can browse the games, and then offer a bet, with the respective odds, on the outcome of the game.
Then other players may choose to accept those bets.
Of course if player points are invested in bets this may limit which games he may join.

To avoid meta-gaming or in-game coercion all bets are anonymous. Although bet results are not anonymous and listed with game results.

This will solve the above problem and also encourage browsing and mingling.
I also think games should have a spectator chat-box to facilitate the browsing and speculating.

PostPosted: Fri Nov 14, 2008 3:57 pm 
Site Admin

Joined: Sat Jun 28, 2008 6:24 am
Posts: 892
It might be a while before I get a chance to look at this in detail, since I've got a bit suspicious and tired with ranking system debates. Usually people with their own ranking systems do as good of a job as I would do critiquing others', so I'll see what mac and TGM have to say first

Thanks for taking the time to write such a detailed spec though, and for bearing my thoughts in mind while writing it

PostPosted: Fri Nov 14, 2008 4:22 pm 

Joined: Wed Nov 12, 2008 8:48 pm
Posts: 29
Oh, I have no expectation of this actually being implemented. Not any time soon at least. It's purely academic at the moment.
Eventually, I'd like to bring this to the level where the benefit of implementing the system outweighs the headache of doing so.
Your participation in this academic discussion would give an indication of the distance between benefit and headache.
Also, I'm a decent programmer. If you paste here the snippets of code that adjust points at the beginning and end of a game, I can phrase my proposition in code, and you could run a simulation if it interests you. This might also reduce the headache in future.

PostPosted: Sun Nov 23, 2008 6:45 am 

Joined: Wed Nov 12, 2008 8:48 pm
Posts: 29
No replies?
Is it too complicated? :P
I can elaborate where needed.

PostPosted: Tue Dec 02, 2008 10:13 pm 
Site Admin

Joined: Sat Jun 28, 2008 6:24 am
Posts: 892
I'm still hoping to get around to digesting this fully, I was hoping our resident alter-points-system guys TGM and mac would have a go at it and post their thoughts before I'd gotten around to it

But yup I haven't forgotten

PostPosted: Fri Dec 05, 2008 10:16 pm 

Joined: Tue Aug 26, 2008 8:46 pm
Posts: 249
If a reply is desired.... I can oblige.

PostPosted: Sat Dec 20, 2008 2:37 am 
Site Admin

Joined: Sat Jun 28, 2008 6:24 am
Posts: 892
Please do TGM, meanwhile I'll see if my brain can digest this

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 19 posts ]  Go to page 1, 2  Next

All times are UTC

Who is online

Users browsing this forum: No registered users and 1 guest

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group