CORDIAL MINUET ENSEMBLE

??????

You are not logged in.

#626 Re: Main Forum » How Elo ratings work » 2014-12-29 04:53:06

Yeah, so I'll table this for now.  We're not close to the "four consecutive weeks of inactivity" yet for the top players.  It would not be hard to add Elo decay later, when the need arises.

#627 Re: Main Forum » How Elo ratings work » 2014-12-29 03:02:44

Yeah, I though about decay... But how would that work?  Daily?  I guess it could just be a nightly sweep, and if you haven't played at all today, your Elo goes down X points.

#628 Re: Main Forum » Elo ratings? » 2014-12-29 02:28:27

Oh, and forgot to mention that the Elo ratings in place now were computed using the full game history logs.  So, I essentially went back in time and imagined that everyone started as a provisional Elo 1000 player whenever they started playing, and watched the outcome of each game in order, changing each player's ranking per game just as if those games had taken place in that same order today, and updating each player from provisional to established status once they hit 20 games whenever they did in the past.

Thus, your Elo today is your real Elo, reflecting your full history in the game so far.

#629 Re: Main Forum » Getting the game » 2014-12-29 02:19:45

Keeping this stuck topic at the top of the list.

#630 Re: Main Forum » Elo ratings? » 2014-12-29 02:18:51

Okay, this is implemented now.  There another thread describing the formula, and you can look at the new leaderboards as well.

There's one more problem:  Elo ratings tend to encourage strong players to stop playing to protect their high rating.  That's a problem for another day, though.

#631 Main Forum » How Elo ratings work » 2014-12-29 02:10:34

jasonrohrer
Replies: 9

Updated formula

Here are the details of the Elo rating system as implemented on the Cordial Minuet server.  Elo in general is described here:  http://en.wikipedia.org/wiki/Elo_rating_system

New players in the game start out with a rating of 1, but their ratings are provisional until they've played more than 20 games.  Provisional players ratings are adjusted by the usual formula after each game that they play, BUT, their opponents' ratings are not adjusted when they play against non-provisional opponents.  This prevents new players with inaccurate ratings from unfairly dragging the ratings of established players up or down (all new players are assumed to be over or under rated, but we don't know which).

Ratings can never drop below 1---that's the rating floor.

Score outcomes from a game are 1 if you leave with more chips than you started with, 0 if your leave with less, and 0.5 if you leave even.

Note that because of the house tribute, unlike Chess, score outcomes for the two players do not always sum to 1.  It's possible for both players to lose money, for example, or one to break even while the other loses.  In a recent survey of CORDIAL MINUET history, this happened in less than 2% of games.

When you play a game, the Elo rating of you and your opponent allow us to compute what we expect your score should be, according to the E_a formula here: http://en.wikipedia.org/wiki/Elo_rating … al_details

This number will be between 0 and 1.  If your opponent's rating is much higher than yours, we expect your score to be closer to 0.  If your rating is much higher, we expect your score to be closer to 1.  If you and your opponent have equal ratings, we expect your score to be 0.5 (in other words, we expect you and your opponent to tie).

What actually happens in your game determines how your Elo will change, post-game.  If you leave with more chips than you started with, your Elo will go up.  If you leave with fewer, your Elo will go down.  If you break even, your Elo may go up if we expected you to lose, but it will go down if we expected you to win.

How much your rating changes depends on how many chips were taken.  More chips taken means a bigger rating change for both players.

Your rating changes by

( chipsTaken / totalChips ) * K * ( actual_score - expected_score )

totalChips are how many chips were at the table at the start.  chipsTaken is the difference between chips of the two players at the end plus the house tribute.  Thus, if you take half of your opponent's chips, your Elo will go up by half the maximum amount.  If you take all of your opponent's chips, your Elo will go up by the full amount.  If you and your opponent walk away even, your Elo change will be weighted by the house tribute (in other words, roughly how long the game lasted).

To summarize, games where very few chips change hands by the end don't affect Elo very much.  Long grinds that come out as an even loss for both players affect Elo the longer they last as the total house tribute grows.

Then there's also the K factor, which is the overall speed that Elo changes.

Provisional players have K of 64, while established players (more than 20 games) have K of 32.  Thus, provisional players have Elo ratings that change faster and then settle down somewhat when the player becomes established.

As an established player playing against a player of equal rating, the most your rating can change by after a single game is 16 points (in other words, we expect you to walk away even, and you walk away with everything, so your score is 0.5 higher than we expect it to be, and we multiply that by K = 32 and 100% chips taken).

#632 Re: Main Forum » [UPDATED] Boxing Day TOURNAMENT » 2014-12-28 22:46:42

Well, there are multiple problems with the format that we had.  Good players waiting it out after gaining an advantage (and probably not playing other good players) was one problem.  The other problem was that no-chance players who dropped out early stopped contributing to the tribute, making the tournament unsustainable financially.  The way tournaments usually work is that the entry fees of the players who are knocked out fund the prizes of the winning players.

The idea would be to have the required stakes rise at a slow and steady rate.  This is how it works in Poker, but I'm not sure of the exact formula used.  This prevents players from "waiting out the clock," because if you don't play now to get a leg up now, you'll be priced out of continued play later.

For example, say the tournament fee is $5, and each player starts with $5.  The stakes could go through the following progression at 20 minute intervals:

0.05
0.10
0.15
0.20
0.25
0.50
0.75
1.00
1.50
2.00
2.50
3.00
4.00
5.00

Like this for Poker:

http://www.homepokertourney.com/blinds.htm

Anyway, as you can see, they rise slowly enough that players will often get knocked out rather than priced out.  But the rising price keeps them playing actively so that they will get knocked out.

#633 Re: Main Forum » Random Button? » 2014-12-28 22:34:57

Hmm...  well, there's no way I can prevent outside assistance.  That doesn't mean I WANT you to use it.

#634 Re: Main Forum » Elo ratings? » 2014-12-28 22:33:38

Well, I'm not afraid to implement math in code... it's just that everyone has heard of Elo, to the point where "elo" is synonymous with "rating" in many contexts.  The formula makes obvious intuitive sense to me, and it's well documented (much longer Wikipedia page about it, for example).

And here, where we're talking about adapting a rating system to support margins instead of binary win/loss, analyzing Elo in this regard is much more straight forward.


So... would you just let your E expected score be the number of chips you're expected to take from (or lose to) the other player?  1 if you take all their chips, 0 if they take all your chips, and 0.5 if you leave the table when stacks are even.

I was at first thinking it's a problem that a weak player can leave early and thus reduce the Elo of their strong opponent (opponent didn't take as many chips as expected, so their Elo would go down), BUT, as you point out, this is kinda the name of the game.  If you get outta there before the strong player gets you, they're not really so strong, are they?  The strongest player is the player who can take lots of chips from everyone, no matter what.  The player who can charm a weaker player into sticking around, etc.  If the stronger player scares the weaker player away early, the stronger player isn't playing so well.

#635 Re: Main Forum » Elo ratings? » 2014-12-28 05:26:20

Well, I think in terms of Elo, a penny should be the same as $100.  If you're playing to win, then it doesn't matter what the chips are worth.

Your solution is good, except it doesn't punish leaving at 99/101 enough.  As you point out, the weight will be so small that it won't affect Elo in that case, but that's a problem, because a weaker player who senses they are beat, and cares about their Elo, would be motivated to bail before too many chips are wagered.   "Get me out of here, I don't want this to hurt my Elo."

I really want EVERY game to count, otherwise people who care about Elo are motivated to bail "before the game really counts."  Likewise, all games should count the same amount.

You know, imagine if Chess Elo only counted "all games lasting at least 5 minutes" or weighted games based on how long they were.  A bunch of players would start getting stomach aches at the 4:30 mark.... or for the one that weights by game length, be motivated to throw the game before it went on too long to save their Elo.

What I want is an Elo that means something to players, and that players care about, and this should encourage players to play their best and play a lot, just like it does for other games.  You know, working on your Elo as a beginner at Chess.

If we weight game length, then the player who is winning will be like, "Oh, yes, lets slog this out forever so it will count a lot," while the losing player will be like "Oh, no, lets end this now so that it won't count so much."  What I want is both players motivated to keep playing their best.  The behind player should be trying for a comeback.  The ahead player should be trying to stay on top.

Granted, the desire to raise your Elo may be at cross purposes with the desire to make money... I think that's okay.

Also, yes, walking away from a table at any moment is a big part of this game.  However, being "good" at the game against other skilled players seems very hard to measure if we aren't able to stick those to skilled players together at a table for a while.  If you're in a match against a skilled player and you walk away, all we know is that you walked away.  We can't ignore that fact, though, when computing your Elo.


Still, I'm not totally happy with a "can-leave-now" threshold for Elo either.  If it's 25, and the winning player can leave at 125 while still having it count as a win, then the winning players are motivated to leave at that point (instead of risking a turn-around and risking lowering their Elo).

Jeez... maybe.... it doesn't count as a win for you unless:

A.  Your opponent leaves first
or
B.  Your opponent has no coins left.

So, if you care about Elo, and you're currently winning, you stay at the table until the end.  You don't say, "Oh, I've won enough to count for Elo, I'm outta here."

Otherwise, we don't know that you would have really won if you had stuck around.  Just 'cause you're up to 125 doesn't mean you would stay up.  If your opponent leaves, okay, you won.  But if your 75-coin opponent is willing to say, we don't know what will happen unless you stay too.


(Also, Glicko seems too complicated---I'd really just want one number for each player.)

#636 Re: Main Forum » Elo ratings? » 2014-12-28 00:44:19

Oh, well, the Elo idea was separate from my thoughts on tournament structure.

As I was tweaking the leaderboard formulas, I realized how much the formulas affect our perception of "better."  Like, is Creature Expression the best CM player?  It sorta seems like it based on the old profit ratio.  But then again, he has played tons of games, so, that could inflate his profit.  Also, how would he do toe-to-toe against other really good players?  Profit ratio doesn't answer that.  The new profit ratio, which adjusts for total buy-ins, also doesn't, because "winning more on a given buy-in" doesn't necessarily make you good.  Maybe you've just been up against a lot of fish who foolishly go all-in.


I think that Elo would, though.  It's explicitly a measure of how likely one player would be to win against another.  I was just trying to sketch out what "win" would mean in this game.

#637 Re: Main Forum » Leaderboards » 2014-12-27 22:29:09

buyIn is total amount you've bought into games with.  If you've played 100 $1 games, your total buy-in would be 100.  If you left 75 of those games up by 5 cents, your "won" would be 3.75.  If you left the other 25 games down by 5 cents, your "lost" would be 1.25.

Ignoring Q, your profit ratio would be (100 + 3.75 - 1.25) / 100  = 1.025

Your Q would be 20 / 100 = 0.2

Factoring Q in, your profit ratio would be (100 + 3.75 - 1.25 + 0.2) / ( 100 + 0.2)  = 1.02495

#638 Re: Main Forum » Elo ratings? » 2014-12-27 22:22:52

Oh, I wasn't suggesting it would be used to match players, or to give you more info when picking your opponent.

It wouldn't be displayed in game at all.

I'm talking about a 5th kind of leaderboard that gets closer to picking out "better players" than what we have now.


As a fix for the leaving problem that I talked about above, just count any leave before chip threshold is reached as a loss for the player that left.  So, say the threshold is 25.  If you leave at 124, it counts as an Elo loss for you (your opponent would win, Elo-wise, even though you left with more chips).  If your opponent leaves when you are at 124, it would count as a win for you.  If you leave at 125, it would count as an Elo win for you.

I'm not sure what the threshold should be, but I think that would give us a pretty good Elo leaderboard.  Thoughts?

#639 Main Forum » Elo ratings? » 2014-12-27 21:13:08

jasonrohrer
Replies: 24

Any thoughts on implementing Elo ratings for players in this game?  The most concise summary I could find was here:

http://leagueoflegends.wikia.com/wiki/Elo_rating_system


The most obvious way would simply count leaving a table ahead as a win and leaving a table behind as a loss.

However, it seems like that would encourage weaker players to win one chip and then leave against a stronger player.

Similarly, if instead of a score of 1 or 0 like chess, you could imagine a score based on number of chips taken at the table (a score between -100 and +100, ignoring the tribute).  But that's weird too, because a high ranking player would be expected to take more chips from a low ranking player, and if the high ranking player took less than expected, both player's scores would change.  That doesn't capture it either.  Weaker player would still want to take one chip and leave.

The system could ignore all games where less than 50% of chips change hands, and then count binary wins and losses for games that exceed 50% transfer (or maybe 25%---whatever threshold we want).  We couldn't just count the sub-threshold games as "draws" because draws would move the weaker player up and stronger player down (so counting draws would still encourage leaving after the first hand for the weaker player).

Still, whatever threshold we pick would have an effect.  The losing player would want to leave the table before the threshold was reached (so the game wouldn't count).

#640 Re: Main Forum » [UPDATED] Boxing Day TOURNAMENT » 2014-12-27 19:07:03

With the profit race, if we're playing with our main-server bankrolls, wouldn't the players who don't have a chance still drop out quickly?  No sense in throwing good money after bad, if I'm down to -$2 and the goal is +$5.  If I can use my bankroll for other stuff post-tournament, better stop now.

#641 Re: Main Forum » Active Users » 2014-12-27 18:41:27

Describe what you mean, please.

Like, totals per hour?

#642 Re: Main Forum » Leaderboards » 2014-12-27 18:38:16

Okay!  This change is in place.

To prevent people who have only played a few small games (and won them) from swamping it, I added a term that would even out people who have played few games:  the factor Q = 20 / num_games

So, profit ratio is now:  ( buyIn + won - lost + Q ) / ( buyIn + Q ).

So, when you have played less than 20 games, Q pushes your ratio toward 1.  And even if you've played more than 20 games, if you've played lots of small-stake games, Q still pushes your ratio toward 1.

I've also added a win/loss leaderboard, which is just (won + Q) / (lost + Q).  Of course, the same effect of Q for people who have played few games, or low-stakes games, applies.  Also, Q prevents divide-by-zero or almost-zero.  Without it, some brand new players had win/loss of 6000.

Jere, this probably won't make you happy, because you're no longer at the top of these (though it's no longer because of your prize).  But I think they are a bit more accurate.  Ship Suds has won 3x more than they've lost.


If anyone has insights about how to make these even more sensible, please share!  I just picked the number 20 because it felt right, but perhaps something more complicated would be better here.

#643 Re: Main Forum » Leaderboards » 2014-12-27 18:01:40

So... I've got some other stats to play with here.

I've been separately tracking "total lost" and "total won" for each account.  So, if you come out of a table down, that adds to total lost, where if you come out ahead, that adds to total won for you.  Your total buy in is also tracked.

SO, instead of comparing profit to your balance, which you may not actually be using all of (so a richer player is at a disadvantage, even if they are playing better), we should compare profit to "total risked".

(buyIn + won - lost) / buyIn

Thus, you can fairly compare the $0.01 player to the $100 player with this metric.  It's still a profit ratio of sorts, but it's no longer relative to your balance, but instead relative to how much you have played.

#644 Re: Main Forum » Leaderboards » 2014-12-27 08:08:52

Yeah, that makes sense.

This discussion makes me realize how much that profit ratio leaderboard discourages people from depositing more money.  Your player above can win a prize with no harm done, but heaven forbid they deposit 10 more dollars.

Any ideas for metrics that are more sensible than profit ratio?  Or ways to fix this?

#645 Re: Main Forum » Leaderboards » 2014-12-27 03:00:51

Sorry... feeling thick after a long day.  Can you spell that out a bit for me with an example?

#646 Re: Main Forum » [UPDATED] Boxing Day TOURNAMENT » 2014-12-26 22:32:44

Well, would a non-time-limited lasting tournament be better?  With rising required stakes and players being ranked in the end by the time of their last game (with the last player standing winning first place).

Then, there'd be no way for the most skilled players to avoid each other.  They'd have to face each other in the end.

Still, this would keep a robust, free-for-all structure.

Of course, it would have to happen on a separate server.

Also, to be clear, I'm willing to implement a special tournament mode into the existing client and server, but not until I verify that tournaments are going to be a viable and vibrant part of this game's culture.

The embedded tournament was one test that still happened on the same client and server.  I can't figure out how to implement another tournament structure (like entry fee) and embed it in the existing client and main server.

Essentially, it requires a separate balance for each player (tournament money), but the existing client is all about displaying one balance.

I suppose a "server picker" interface in the client would make it easier.... still, it's still kind of messy for people to have multiple accounts (one on main server, one on tournament server).  That's the plan for now, for initial tournament proof-of-concept, but it will certainly confuse people.

#647 Re: Main Forum » Leaderboards » 2014-12-26 21:56:47

Hmm... yeah, for now, I'm just paying out tournament prizes as manual deposits, which get logged as deposits.

I see that these have swamped people's profit ratios.  I'll think about how to fix this.  Should they count toward peoples profits?  I guess they should, though it's a little weird, because they're not the same as the hard-fought profit of daily play.

But wait... if you use a $200 prize to keep playing, and you go up to $400, and lets say that you started with $20, your profit ratio shouldn't be computed based on the starting 20, right?  That would be a profit ratio of 20x.  Really, your profit ratio should be more like 2x at that point (the 20 has become irrelevant).

Really, once you have a larger bankroll from any outside source, your profit ratio should incorporate that into your baseline, right?

That's what's been done here, but it is strange to suddenly jump down on that leaderboard...

#648 Re: Main Forum » [UPDATED] Boxing Day TOURNAMENT » 2014-12-26 21:40:55

In general, the problem with this format is that it doesn't really work like a tournament with a fixed entry fee.

Here, at certain points, players are motivated to stop playing.  Either they have no chance, so they don't want to waste any more money (each attempt is like a new entry fee, instead of one fee sunk up front).  The people who are ahead are likewise motivated to wait it out.

And, on top of that, there's very little money for a prize pool, because as the top and bottom segments of the player base stop playing, the number of games played, and thus the tribute, dwindles.

If we had instead run a real tournament today on a separate server, maybe we would have still had 20 players... if they had payed $5 each, we would have had $100 for prizes.  And then the structure could have been different...  stakes could rise over time, with all players playing until they are out of "tournament money."  And there'd be no motivation to stop playing to save money, because the tournament money would be separate.  Collusion would be the equivalent of a rebuy.... maybe just allow rebuys for everyone to eliminate collusion as an advantage (though large bankrolls would still give lasting power).

#649 Re: Main Forum » [UPDATED] Boxing Day TOURNAMENT » 2014-12-26 21:25:28

Yeah, I thought about the random delay method of preventing people from joining with an accomplice, but with a small player pool like this, it won't help that much (neither does the added table tribute, but the added tribute at least acts like a kind of "tournament fee").

I've also thought about running longer "weekly bonuses" for performance at some stake level.  For example, say that this week, total stats for $5 games are tracked, and the top player gets a cash bonus at the end of the week.

The problem with this is that collusion is even easier over the longer timeframe.  During a quiet time that week (like, 3am), make a second account and lose all your money to yourself.

I could only count money won against unique opponents.... but this would be weird because there'd be no indication of this in the client (by the way, the opponent you're playing against right now doesn't count because you already played them).  And really, it's not like I want to discourage replaying the same person, assuming that you're not colluding.


The only way it could work is if the table tribute was so high as to make the cost of collusion not worth it relative to the prize.

Like, in order to win unfairly, you'd have to collude with yourself X times, at a cost of Y each time, and the prize you would win would be < X*Y.

But, for this to work, you'd have to ensure that the person could only win by playing at least X times, which means it would have to be a bankroll goal and not a time limit.

For example first person to $25 profit wins.  Stakes are $1.00.  Prize is $25.  If the table tribute is 25 cents per player, then you'd have to win 50 non-cheating games to win, while a colluder playing 50 games would lose $25 in the process (50 cents lost per game), making their $25 prize a wash.

If the tribute was 49 cents per player, you'd have to win 1250 games to win, meaning the prize could be as high as $1225 without a colluder, who is losing 98 cents per game, being motivated to collude.

It's also interesting that there could be multiple high prizes, and since the colluder could win only one per account, the same math still applies.  So, there could be ten $1225 prizes, and colluder couldn't afford to win any of them through collusion alone.


But... with table tributes that high, and progress so slow, who would play?  Sadly, there's a tradeoff here that, as the prize grows, so does the necessary table tribute.  Even for the $25 prize, it's "worth it" for a player who wins every game along the way all-in, but 25 cents is a tough pill to swallow to maybe win 75 cents (especially since the opponent can leave partway through and give you much less).

So, the other idea is lots of small prizes that still work with this math, but small prizes would reduce the necessary anti-collusion table tribute to a reasonable level.  If per player tribute is 5 cents, then you'd have to win at least 28 games, meaning a colluduer would lose $2.80 in the process of working up to $25 profit, so the max prize would be $2.80.  Again, not so enticing, eh?  Work yourself hard, and build up $25 profit this week, and you'll get a $2.80 bonus!

I'm feeling a bit fried on this problem.  I hope someone else has some insight here.

#650 Re: Main Forum » [UPDATED] Boxing Day TOURNAMENT » 2014-12-26 20:42:44

Updated my tribute report above to explain it.

Asminthe, the database has answers to these questions.

The winner played 13 games spread pretty evenly over 10 other players:

+------------+---------------------+
| game_count | opponent_name       |
+------------+---------------------+
|          1 | string corn         |
|          1 | weapon nymph        |
|          2 | forethought tobacco |
|          1 | custom tribute      |
|          1 | heaven product      |
|          2 | incident clemency   |
|          1 | equity tendency     |
|          2 | hammer horsehair    |
|          1 | cleanness necessity |
|          1 | devotion conquest   |
+------------+---------------------+

Second place played 6 games spread just as evenly:

+------------+----------------------+
| game_count | opponent_name        |
+------------+----------------------+
|          1 | forethought tobacco  |
|          1 | candidate expression |
|          2 | heaven product       |
|          1 | incident clemency    |
|          1 | equity tendency      |
+------------+----------------------+

Board footer

Powered by FluxBB