Dominion Strategy Forum

Please login or register.

Login with username, password and session length

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - ragingduckd

Filter to certain boards:

Pages: [1] 2
1
Goko Dominion Online / Spiffier log search (preview)
« on: May 06, 2015, 06:45:08 pm »
I'm making a spiffier version of the gokosalvager.com log search engine.  My goals are to make it:
1. faster
2. less ugly
3. more natural to use
4. smarter about name changes

You can see a preview here.  I'd appreciate any feedback, particularly feature requests or design suggestions.

PS: It only has games through Jan 2014 so far.  The search speed will be erratic until it's caught up.

PPS: I'll be changing and fixing things.  If you encounter a bug, first try a "hard refresh" to make sure you have the latest version.  On Chrome/Firefox that's Ctrl-Shift-R.

2
Goko Dominion Online / missed opportunity
« on: September 10, 2014, 07:34:00 pm »
Just found this in my e-mail.  Too bad it's already past 7 PM.  :(

Quote
ANDREW,
I have an opening today to get GOKOSALVAGER instantly qualified for up to $500,000 of unsecured funds.  Please give me
a call before 7:00 pm EST today so I can get you in the system.  Over 90% of applicants qualify for this special program, but I need to
submit you application today.
Thanks, and I look forward to you assisting you!.
Best Regards,
Ben Weston
Senior Funding Specialist
Merchant Cash Advances
866-283-1958

3
Goko Dominion Online / Formula for modified card frequencies
« on: September 05, 2014, 03:52:28 pm »
For casual and unrated games, SCSN and I like to modify the frequency with which particular cards are chosen.  We like to play games with Black Market or Tactician, but we're not so big on the sort of game that IGG or Cultist leads to.  As for the cards that are either very weak or very strong and randomizing, it's nice to see them on occasion but maybe not as often as in full random.

Here's the formula that generates modified frequencies we like:

Code: [Select]
10 ( 9*(Black Market + Procession + Hermit + Inn + Watchtower + Mint + Tactician + Bishop + Prince)
+ 3*( ALL / (Black Market + Procession + Hermit + Inn + Watchtower + Mint + Tactician + Bishop + Prince)
          / (Pirate Ship + Thief + Transmute + Adventurer + Scout + Coppersmith + Harvest + Cache + Noble Brigand + Taxman + Rebuild + Minion + Tournament + Possession + Pearl Diver + Swindler)
          / (Ill-Gotten Gains + Cultist + Fool's Gold) )
+ 1*(Pirate Ship + Thief + Transmute + Adventurer + Scout + Coppersmith + Harvest + Cache + Noble Brigand + Taxman + Rebuild + Minion + Tournament + Possession + Pearl Diver + Swindler) )

This formula:
  • excludes (IGG, Cultist, and FG) entirely
  • chooses (Black Market, Procession, etc.) 3x as often as normal
  • chooses (Pirate Ship, Thief, etc.) and (Rebuild, Tournament, etc) 1/3 as often as normal.
We find this tends to generate a wider range of strategies than full random.  We often find ourselves saying "well that was a weird game." :)

The same technique can bias the kingdom towards engines (add villages to the 3x list) or away from attacks (add them to the 1/3x list).  What's nice is that you don't have to completely force or eliminate those cards like "Village, 9 * (ALL / Attack)" would.

To emphasize different cards or change their frequencies, you can tweak the script that generates the formula:

Code: [Select]
#!/bin/bash

# Choose these cards 300% as often as normal
more="(Black Market + Procession + Hermit + Inn + Watchtower + Mint + Tactician + Bishop + Prince)"

# Choose these cards 33% as often as normal
less="(Pirate Ship + Thief + Transmute + Adventurer + Scout + Coppersmith + Harvest + Cache + Noble Brigand + Taxman +  Rebuild + Minion + Tournament + Possession + Pearl Diver + Swindler)"

# Never choose these cards
never="(Ill-Gotten Gains + Cultist + Fool's Gold)"

# Choose all other cards at the normal rate
normal="( ALL / $more / $less / $never )"

# Note: The kingdom generator can't specify non-integer rates (e.g. 1/3 for the "less" cards).
#       Instead, we can multiply all the rates by 3 so that they're all integers.  The kingdom
#       generator will effectively reverse the scaling.  That is
#
#       300% --> 9x for the "more" cards
#        33% --> 1x for the "less" cards
#         0% --> 0x for the "never" cards
#       100% --> 3x for the "normal" cards (everything else)
#
echo "10 ( 9*$more + 3*$normal + 1*$less )"

If you don't have a POSIX shell, you can use a site like this one to run it.  Changing which cards that it draws more or less often is straightforward, but changing the frequencies is a little trickier.  I've given very brief explanations in the script comments, but feel free to ask for help here or in PM.

4
Goko Dominion Online / gokosalvager.com is moving to Linode!
« on: May 31, 2014, 10:19:42 pm »
There will probably be some kinks to work out, but as of right now, gokosalvager.com is being served by my Linode server instance.  It's no longer trapped behind my ISP and subject to it's whims!  Now we're only subject to MakingFun's whims.

You'll probably need to reload goko, maybe even restart your browser entirely, before your Salvager automatch will switch to the new server.  No other update is required though.

5
Game Reports / Guess the strategy
« on: April 21, 2014, 07:18:38 pm »


Code: [Select]
Beggar, Alchemist, Bureaucrat, Conspirator, Death Cart, Feast, Trader, Counting House, Journeyman, Bank
Puzzle: Guess the strategy that Monsieur X and I both chose and that (with some luck), emptied Provinces on the first player's T12.

6
Continued from Goko's Rating System, Part 1: ... in a formula!

What we were told:

Back in January 2013, CEO Ted Griggs non-CEO Trisha Brooke told us that Goko's rating system tracks μ and σ for each player and displays your rating as μ-2σ.  Qvist immediately guessed that they were running TrueSkill, but other forums members were more skeptical.

Mr. Griggs complicated the matter by also telling us that they use an "Elo-type rating system."  Ordinary Elo doesn't track σ for each player, so Mr. Griggs had to mean that they use some fancy-pants Elo derivative.  That's bad news for figuring out the system, since it could easily be something obscure or even proprietary.  Then again, maybe Mr. Griggs is a manager, not a mathematician...

What we know:

Regardless of what Mr. Griggs or anyone else tells us, there are a few things we can be sure of:
  • The rating system can handle games with more than two players.
  • The ratings are based on who came in what place, rather than VPs or anything else Dominion-specific.
And unless their responders on getsatisfaction are completely full of crap...
  • The system really does track μ and σ for each player.
  • It really does display some "conservative" measure like μ-kσ.
  • It's actually supposed to be possible for your rating to go down after a win.
Maybe there are dozens of rating systems that fit this description, but TrueSkill is the only one I could find outside of academic publications, let alone download in a ready-made implementation.

Throw in the facts that Goko's devs never seemed expert/mathy enough to have implemented a totally novel system, and that they had the working example of Isotropic in front of them when the developed Goko... and well, it would have been pretty surprising if their system had turned out to be anything other than TS or some modified version.

How to be sure?

If we're really, really lucky, the rating system itself might be implemented client-side.  It's hard to imagine that even Goko developers are that crazy, but given their track record, I figured I'd better check... alas, no such luck.  Fortunately, there's a way to reveal μ and σ at least.  Just invoke the plausibly-named FS.Connection.getRating()... and you get a usage error.  But the error is friendly enough that you can guess at what the right usage might be.

You can query your Pro rating like this:

Code: [Select]
conn.getRating({
      version: 1,
      playerId: mtgRoom.getLocalPlayer().getId(),
      ratingSystemId: mtgRoom.options.ratingSystemPro
  }).then(function (resp) {
      console.log(resp.ratingData);
  });
>> Object {SD: 263.14332861731685, mean: 6801.097762744435}

Great!  So my real rating is {μ=6801, σ=263}.  And my displayed rating is 6275, which is indeed μ-2σ.

Running the same function on an opponent yields his rating too.  So we can get pre-game ratings, plug them into TS or Glicko or any other system and see how its rating changes compare to Goko's.  The only problem is that we have no idea what parameters to use for those systems.

Bringing out the heavy artillery

Back in June 2013, DStu proposed approximating Goko's rating system using numerical optimization.  His idea was to get a good approximation of Goko's system by finding a set of TS parameters that yielded similar results.  Of course, since they turned out to be running exactly TS, the technique actually yields perfect results.  I tried implementing his approach.

TrueSkill has five parameters: μ0 and σ0 for new player ratings and β, τ, and ε for updating ratings after a game.  I gathered Pro rating changes from some real games, plugged them into a numerical optimizer, and asked it to find TS parameters to minimize the rating prediction error.

Code: [Select]
Estimating update parameters using Game 1:
Finished.

Error-minimizing TrueSkill Parameters:
beta:      1375.00
tau:         27.50
draw_prob:    0.05

Residual Error: 0.0000

Remember back when you did problems from a textbook, and the right answer was always some nice clean-looking number?  I've missed that.

As for μ0 and σ0, we can run getRating() on a brand new player, but it turns out that it doesn't actually return anything until you've played at least one game.  That's okay... the same optimization approach can be inverted to find μ0 and σ0.  Just play a game against a brand new player, note your rating change, and plug in the β, τ, and ε that we already found.

Code: [Select]
Estimating initialization paramters: mu0, sigma0 using Game 2:
Finished.

Error-minimizing TrueSkill Parameters:
mu0:       5500.00
sigma0:    2250.00

Residual Error: 0.0000

Those are exactly the values that Mr. Griggs told us in Jan 2013, which makes it plausible that Goko has been using TS with these same parameters since day one.

Just to be sure, we should test the parameters on another game:

Code: [Select]
Testing Parameters using Game 3:

Expected post-game ratings:
 A: 6822.35 +/- 262.66
 B: 7074.08 +/- 266.68
Observed post-game ratings:
 A: 6822.35 +/- 262.66
 B: 7074.08 +/- 266.68

Residual Error: 0.0000



Incidentally, have you ever looked at the original photo for that meme?  I'm pretty sure the kid is eating sand.

Don't miss our final installment... Goko's Rating System, Part 3: Goko vs. Isotropish!

7
Goko Dominion Online / Goko's Rating System, Part 1: ... in a formula!
« on: April 11, 2014, 07:34:34 pm »
They said it couldn't be written down...
They swore they'd never reveal their secret...
Yet today, ladies and gentlemen, we unveil Goko's Rating system in a formula!

... well, in a few lines of pseudocode anyway:
  • Display rating as floor(μ-2σ)
  • Update μ and σ using TrueSkill with β=1375, γ=27.5, draw_probability=5%
Yup, after all the fuss and all the secrecy, they've just been running TrueSkill.  Unmodified, official, read-the-article, download-the-source-code Microsoft TrueSkillTM.

Why Goko misled us about this is totally beyond me.  I contacted Jeff last week, just in case there was some good reason for the subterfuge and MakingFun would somehow be furious if people knew the actual system.  I never got a response... so I guess I hope they're not.  ;)

Tweaks

So what about all those weird tweaks?  Goko told us that they were "perverting the rating system" to prevent ratings from dropping after a win, and that ratings were bounded above and below.  And what about that massive overnight drop in rating?

None of these turn out to be anywhere near as bad as many of us thought.  Goko Pro isn't a good system, but it's bad because of its choice of TrueSkill parameters, not because of its tweaks.
  • Rating can't go below 0: This tweak is purely cosmetic.  If μ-2σ<0, your rating will be displayed as 0, but Goko continues tracking your μ and σ correctly.

  • Rating never drops after a win: It's legitimately possible for your displayed TrueSkill rating to go down after a win.  If you beat a far lower-rated player, TS gives you a modest increase in σ but only a tiny increase in μ.  So μ-2σ can go down even though μ itself (its best guess for your skill) has gone up.

    Goko's tweak for this is also purely cosmetic.  If your displayed rating would change by -3 after a win, the client just lies to you and says there was no change.  But it keeps tracking your μ and σ correctly.  Then if you win the next game and deserve +20, it compensates by showing you +17 instead.

  • μ can't go below 0 or above 10k: This one's real, at least for the Casual system.  But μ=0 in Pro mode is so horrifically bad that not one player has bumped up against the limit.  Same story for the alleged upper bound at 10k.

  • Daily increase in uncertainty: This used to be really brutal.... maybe a 5% increase in σ every 12:00 AM EST.  And the increases compounded since they were re-multiplying your σ by 1.05 every day.   So if you were a frequent player and you took a break, you might drop by -20 points on the first day, but then by -21 on the next day, and by the end of a month you'd be dropping nearly 100 points a day.  As of now, σ increases by only 1% per day, which is more like -4 points on the first day for a frequent player.  Also, it now happens at 12:30 AM... presumably for strategic sheep purposes.
Try it yourself!

I coded up their TrueSkill parameters and tweaks so that you can verify it.  Just punch in your username and your opponent's, and it'll tell you what to expect after a win, loss, or draw.  It tells you both your "real" new rating and the change that MF/Goko will tell you.  They can diverge if you beat a much lower rated opponent, as in the example below.

Please post a screen shot if you discover a case in which its prediction is wrong, but first double-check that it actually had your rating right before the game.  The process that collects that data can fall behind.

Pro Mode Rating Predictor (Offline)



Continued in Part 2: Reverse Engineering the System

8
Goko Dominion Online / power outage haiku
« on: April 09, 2014, 07:58:39 am »
Lights off; servers down.
Why do I still host from home?
I'm worse than Goko.

9
Goko Dominion Online / It's not you, it's them
« on: March 25, 2014, 02:48:22 pm »
Something just happened at MF that broke the retrieval of DA images.  Nobody who owns DA can play until it's fixed.


10
Goko Dominion Online / Goko Salvager, Retrobox log prettifier
« on: February 28, 2014, 01:27:41 pm »
I've made a bunch of long posts in the Goko Salvager thread in the last day or so.  Here's the tl;dr.

11
Goko Dominion Online / Apology and current status
« on: January 13, 2014, 11:29:21 am »
Hey guys, sorry for being AWOL for so long.  For what it's worth, I haven't bailed on you guys in particular... it's more that my life is pretty much unmanageable in general lately.

Here's the current status of my work (and where things are likely to stay for a while, unfortunately):

Website (gokologs.drunkensailor.org/gokosalvager.com):
- log parsing: currently working, but fails erratically
- log search: online, but slow
- leaderboard: online, but absurdly slow

GokoSalvager:
- last release is v2.3.2
- current beta is v2.3.4.8
- ASAIK, the download links on the website and forum are currently working

The "beta" is almost ready for release and has been for a couple months now.  The new features are working (notably sidebar chat and various long-outstanding minor bugs), but there were a couple of new bugs that were causing rare but infuriating game-breaking freezes.  I didn't want to release it until those were fixed, and then everything went to shit for me.

It looks like serakfalcon and yed (and maybe others) have continued its development in my absence (thanks guys!).  It would be great if someone would take over managing releases of Salvager.  That's not too heavy a task, as it just requires hosting the extension files and making the call as to when the releases are ready.

It would also be super-great if someone would take over maintaining drunkensailor.  That's a larger task, since it requires setting up a full time server and log database (see https://github.com/aiannacc/goko-dominion-tools), but I'd be happy to walk you through it.  For now, I'll try to at least restart the server when it breaks (please do continue to email me when this happens).  But I don't expect to be able to do any new development or even any serious server maintenance for some time to come.

12
Goko Dominion Online / Dealing with the "No-Roll"
« on: December 05, 2013, 10:19:19 pm »
We're all familiar with the "slow-roll:" when a player makes each action just in time to keep Goko from declaring him the loser by forfeit.  This evening I'm encountering the "no-roll" for the first time.  Apparently Goko has forgotten how/when to make a non-responsive player forfeit.

A player named "timmytucker" (I'm too irritated to be discreet) decided and announced that he was just going to stop playing right before he would have ended the game with a loss.  Here we are... same place we were 30 minutes ago:


13
Goko Dominion Online / Goko Revenue
« on: November 26, 2013, 01:36:39 pm »
Goko doesn't directly reveal when players purchase new expansion sets, but presumably people don't buy expansions and then immediately quit Goko without ever playing them.  So you can pretty much tell when a player buys an expansion by looking at when they first host a game with it.

I didn't bother to break down the game data to determine exactly which expansions were used in each game, but I've already been tracking whether Shelters or Estates were used.  So I can at least say when a player first hosts with Dark Ages cards, which is probably also when they first bought a DA expansion.  Unless people are way more or less likely to buy DA than any other expansion, this gives a decent proxy for Goko's overall expansion-based revenue:



As far as evaluating trends and predicting Goko's future, we really should throw out everything from the Aug 2012 "launch" through Isotropic's demise:



So that's where Goko's been going these last 8 months.  No real surprises here, except perhaps for the fact that Guilds (June) didn't bring in any new customers.  I like to think that the mysterious spike in late August was the release of Salvager's auto-Automatch. ;)

Even more remarkable than the trend is simply how few paying customers Goko has brought in.  If every single new DA player is purchasing the full $40 complete expansion pack, then Goko has grossed about $150k in the past 8 months, and currently brings in about $350/day.  That's a pretty generous assumption, so I'd bet it's really more like $200/day and $100k in the past 8 months.

14
Goko Dominion Online / Oh Goko...
« on: November 13, 2013, 08:58:06 pm »
I just went looking for this article to confirm my recollection that Goko had indeed gone back to its investors for more funding (after their original $8M).  I happened to notice an amusing detail in this image that appears in the article:



Edit: You sort of have to squint to read it... or know in advance what you might expect to see in the chat box.

15
Game Reports / Knights + Possession = Screw You, DXV
« on: November 12, 2013, 03:39:17 am »


Code: [Select]
Hamlet, Develop, Oracle, Sage, Envoy, Remake, Knights, Tactician, Witch, Possession
Game Log

It took me a while to realize that Possession is an awesome counter to Tactician.  It took my opponent a while to realize that possessing a deck full of Knights is bad business.

I thought I was winning on T19, but I resigned just because the game was just so horrible to play.

Overall, I suspect the best plan was to just stock up on knights and Hamlets and forget about Tactician and Possession, planning to cripple the other player and then grab a few VP and win on a 3-pile.  In the mirror... hell, I have no idea.  Really, I don't even like to think about this board... anyone else want to do it for me?

16
Goko Dominion Online / In praise of a more industrious cheater
« on: November 08, 2013, 11:58:18 pm »
Dominionologist, Goko's mysterious #2 ranked player, is a cheat.  But he's really a much finer class of cheat than we've ever had before.  I had to run some fancy-pants queries on the drunkensailor database to figure out what he's been doing.  I don't think I could have spotted it just by looking at his log search record.

Here's his scam:
  • Create a guest account and establish its rating.
  • Lose a bunch of games to your main account.
  • Repeat.
And here's the evidence (see attached files):
  • 30 of Dominionologists 450 pro games were played against four "superstar" guests.
  • These guests had all established very high ratings, mostly by clobbering mid-range players but also by winning a handful of games against hotshots like jog and Mic Q.
  • Dominiologist won every single one of those 30 games.
This is really much more sophisticated than what ooksoo did or what ottocar does.  It's only possible because Dominiologist is already a fairly strong player and because of some formula-defying nonsense of Goko's rating system (he's only #64 on Isotropish).  He also puts in a lot of extra effort to make it look good:
  • Over 90% of his games are real matches against real opponents, so the sham games don't stand out.

  • His guests behave plausibly.  He interleaves the games he plays as a guest with those he plays as himself and with the sham games they play against each other.  He spaces the guest's games out over days to make the pattern less obvious.

  • He actually plays out the sham games.  Now admittedly, some of them aren't exactly inspired, like this one where he and guest6443 both piledrive Ill-Gotten Gains and... um... Villages.  But it's still a damn sight less obvious than resigning to himself on Turn 1.
So kudos to Dominionologist for going the extra mile.  In these dark days when Goko no longer even pretends to care, it's nice to see that someone at least is putting in a little effort.

17
Dominion Articles / The Myth of Big Money Choking
« on: September 25, 2013, 09:34:33 pm »
Here's how we usually think of the life-cycle of a Big Money deck: after building up its money density, BM gains Provinces quickly for a while, but soon it begins to choke on its green and slows down. Somewhere around 5-7 Provinces, it stalls out hard and has a very difficult time buying any more.

For evidence of this claim, just look at some simulation results. Here Big Money Unimproved stalls out around 38 VP; Big Envoy around 44 VP:



Of course, this doesn't matter much for a matchup between them. Either BM deck will have essentially secured the win by the time it stalls hard. But it's very relevant if you're playing an alt-VP engine against BM. If you're running a little behind with Goons or Vineyards, then you'd be mad to help your opponent end the game by buying even one or two Provinces for him.

Right?

As it turns out, this stalling is a myth. The claim that BM chokes on its own green is wrong. The apparent simulator evidence comes from the way the bots handle late game strategy and from the way humans naturally misinterpret the average VP graph.

BM simulator strategies start buying Duchies and Estates like crazy when Provinces run low. That's the right play against another BM opponent, but it's no way to buy all 8 Provinces quickly. If we're contemplating an alt-VP only strategy, these sims don't really tell us anything about how quickly our BM opponent will be able to end the game.

Here's a version of BMU that never buys Duchies or Estates. I've matched it against a deck that just sits there:



Without Duchies or Estates, BMU gets to 5 Provinces around T19 and keeps right on going. There's no choking at that point at all. It still appears to be slowing towards the end though. Maybe BMU's hard stall comes around 8 Provinces instead of 5?

Nope. This is a misinterpretation of the average VP curve. We can't think of it as the performance of a single "average" deck. It's actually the average performance of a large number of decks, and the decks that make up that average are changing over time.

While all 1000 simulated decks are contributing to the average at T15, some of the luckiest ones drop out by T25 because they've bought all 8 Provinces and ended the game. The remaining decks are the ones that have been less lucky. That sample bias pulls the average VP curve down. The later it gets, the larger the bias gets.

BMU actually keeps buying Provinces at the same average rate indefinitely. It doesn't stall out at 5 Provinces, nor at 8, nor even much later. To demonstrate this, I altered dominiate to run with 80 Provinces instead of 8. Even the luckiest decks won't be removed from the average in 60 turns, so we can see what BMU does in the long run without that sample bias:



Et voilà. BMU gains at a constant rate up to 20 Provinces and beyond, a little more than two turns per Province.

So don't believe the myth that BM chokes in the long run and don't assume that you'll have tons of extra time against BM if you just keep your hands off the Provinces. Instead, expect your BM opponent to pick up another Province every two turns or so right up to the end.

18
Goko Dominion Online / What your posting activity says about you
« on: September 13, 2013, 09:28:26 pm »
... other than your time zone, of course




= Full time job, plays Dominon evenings/weekends



 = Full time job, plays Dominion at work



 = Unemployed/Student



 = Unemployed/Student, sleeps badly



 = Dominion robot

19
Goko Dominion Online / Online Dominion Resources & Current Status
« on: August 21, 2013, 12:50:45 pm »
This thread is meant to guide new players to the major off-site resources and to link to the previously-stickied feature threads. PM me to suggest changes or additions or if you'd like to add details to any section.
  • gokosalvager.com: Goko game log search (thread), kingdom visualizer (thread), and leaderboard (thread) -- Site, Details
  • Council Room: Isotropic player stats, log search, and many statistical analyses -- Site, Details
  • rspeer's Dominiate: Write bots and simulate strategies -- Site, Thread
  • Geronimoo's Dominion Simulator: Write bots and simulate strategies -- Site

20
Dominion General Discussion / Card artwork
« on: August 17, 2013, 03:09:33 am »
Goko has some pretty hi-res versions of the card artwork. Much better than from scanned cards anyway.

They're all at URLs like this: http://playdominion.com/Dominion/CardBuilder/img/illustration/kingsCourt.jpg

 

21
Dominion General Discussion / Who is this guy?
« on: August 11, 2013, 02:48:46 pm »


LFSPFUTFRF?? I don't even know how to pronounce that.  ???

22
Goko Dominion Online / Automatch Extension
« on: July 26, 2013, 10:18:08 am »
Automatch is part of the Goko Salvager browser extension. It searches other lobbies for players who match your game criteria.

How to use it.
  • Log in normally and click the "Automatch" button next to "Create Game" in the lobby
  • Select whatever seek requirements you want and Submit
  • Either wait around or go wander off and go look for a game manually. Automatch is "fire and forget."
  • When a match is found, a popup will appear. Accept or reject the offered match.
  • When both/all players have accepted the match, Automatch will automatcially send you to Outpost and create/join the game.
  • When the automatch dialog disappears, you're good to go. Start the game manually.

23
Quote
A late addition. I had an empty slot, and noticed that all of the large expansions gave you answers to the question, how do I deal with these dead victory cards? Intrigue has victory cards that aren't dead; Seaside lets you set them aside with Island, and, if you're crafty, Native Village; Prosperity has VP tokens; Hinterlands pushes card filtering. So I tried this out. Originally it didn't give +1 Action, but that version could not compete.
—Donald X. Vaccarino, The Secret History of the Dark Ages Cards

This is a very interesting quote. It suggests that Rebuild didn't reveal its true strength in either design or playtesting. Donald seems to have intended it as a VP-synergy card, rather than a game-winning action in its own right. And while a terminal Rebuild would certainly be a lot weaker, I don't think it would really be out of line with the other $5 actions in DA.

That makes a lot of sense to me. I didn't immediately recognize Rebuild's strength either, and I lost a lot of early games trying to "refute" my opponent's strategy of blindly spamming it. I expect that most of those opponents had themselves learned Rebuild's strength through similar experiences.

To me, Rebuild and Jack are the least "Dominion-like" cards in the game. They make for monolithic strategies where you ignore most of the board and do pretty much the same thing every turn. This is something that Dominion mostly avoids. I think the only other really monolithic cards are IGG, Governor, and maybe Minion and Cultist.

To me, the best thing about Dominion is the fact that it's always "broken," but it's broken in a different way every time. Broken games aren't fun once you figure out their tricks, but figuring out those tricks can be a lot of fun. Dominion lets you do that with every board... except when one of these monolithic strategy cards is around and you both already know the answer.

Don't get me wrong. I enjoy playing Governor and Minion games, and Rebuild mirrors gain a lot of sophistication from the fact that Duchies run out. But Jack, IGG, and Rebuild-vs-X races are mostly a baseball-like combination of tension and tedium. I don't mind playing these games from time to time, but I'm glad that most of my Dominion experiences are a lot more dynamic.

24
http://isotropish.com is an implementation of Microsoft's TrueSkill rating system.  It is meant to be similar to the rating system that was used by Isotropic, but it isn't quite faithful (see below).
  • TrueSkill parameters:
    • Initial rating: μ=25, σ=25
    • Adjustment: β=25, τ=25/100, draw rate = 5%
  • Uses the Python package from trueskill.org
  • Sorted by "Level" defined as μ - 3σ. Click column names for alternative sorting.
  • Games with bots count, games with guests don't
  • Only 2-player "Pro" games count
  • No daily increase in σ
I originally meant for these parameters to replicate those of the isotropic leaderboard, but there was some confusion at the time about just what those parameters were:

From Isotropic's FAQ (no longer available):
Quote from: http://dominion.isotropic.org/faq/
New players are assigned a skill of "25 ± 25", which is to say, we don't really have any idea what that person's skill is.
...
I've set β = 25, γ = σ0 / 100 (applied daily), and the draw probability at 5%

From a PM with dougz:
No, I start with μ=25, σ=25/3 like everyone else.  But since I display "μ ± 3σ" on the leaderboard it shows up as 25 ± 25.

I may not have ever actually had the clamping on the upper end.

Choice of 5%: pulled out of thin air.

Yes, there was a small daily increase in σ.  (Moved 1% of the way back to 25/3, I think.)  I didn't want people to be able to camp out on the leaderboard by getting to a good position and then not playing.

Based on all this, it looks like dougz was probably using μ0=25, σ0=25/3, β = 25, draw_prob=5%, τ=?, and a daily increase in uncertainty of either (0.01)σ or (0.01)(σ0-σ).

β = 25 is much larger than the TrueSkill default of σ0/2 = 25/6.  The default for τ is σ0/100 = 25/300, but I don't have anything definite about what value was used for Isotropic.  The differences between Isotropic and Isotropish are likely due to the values used for β and τ, and to the fact that Isotropish does not have the daily increase in σ.  The different σ0 values have some effect too, but can't explain the differences in σ for players with thousands of games.

No need to post expressing your personal preferences for these parameters.  I'm doing some testing now and will switch to the best-performing values shortly.

25
Goko Dominion Online / Goko vs TrueSkill
« on: July 17, 2013, 08:54:38 am »
Aside from a few outliers like Boodaloo, tThe boards look pretty similar to me. Are there other aberrations I'm missing?

Goko Top 100:

Code: [Select]
  rank |       pname        | rating
------+--------------------+--------
    1 | Stef               |   6931
    2 | nomnomnom          |   6919
    3 | hiroki             |   6801
    4 | Rene Kuroi         |   6782
    5 | Mic Qsenoch        |   6760
    6 | SheCantSayNo       |   6757
    7 | Stealth Tomato     |   6668
    8 | Wandering Winder   |   6640
    9 | Tao Chen           |   6636
   10 | Geronimoo          |   6609
   11 | Obi Wan Bonogi     |   6607
   12 | jaybeez            |   6555
   13 | LESPEUTERE         |   6534
   14 | ednever            |   6524
   15 | jog                |   6512
   16 | Rabid              |   6511
   17 | HiveMindEmulator   |   6502
   18 | Fabian             |   6488
   19 | blueblimp          |   6465
   20 | awaclus            |   6461
   21 | Andrew Iannaccone  |   6433
   22 | flyingkuyt         |   6398
   23 | iriho              |   6379
   24 | jhovall_goko       |   6370
   25 | PitrPicko          |   6365
   26 | yuuna_tu           |   6327
   27 | AQUAREAF           |   6305
   28 | Mike Harris.0001   |   6292
   29 | yudai214           |   6278
   30 | yed                |   6267
   31 | Slyfox             |   6262
   32 | eliegel            |   6257
   33 | 2.71828.....       |   6223
   34 | SM.SM              |   6222
   35 | wicket             |   6213
   36 | TrickStaR          |   6197
   37 | Monsieur X         |   6189
   38 | shark_bait         |   6173
   39 | manzi              |   6172
   40 | DominionKing       |   6154
   41 | Eevee              |   6153
   42 | nnn                |   6152
   43 | Robz888            |   6151
   44 | fiu                |   6148
   45 | Tom Collett        |   6140
   46 | theParty           |   6123
   47 | minased            |   6117
   48 | GwinnR             |   6081
   49 | sami1              |   6080
   50 | Perry Green        |   6078
   51 | Zan                |   6077
   52 | kenyou2859         |   6072
   53 | heron              |   6068
   54 | dudeabides         |   6067
   55 | markusin           |   6067
   56 | faust              |   6049
   57 | Psyduck            |   6044
   58 | RTT                |   6043
   59 | David Hunter       |   6041
   60 | Lotoreo            |   6035
   61 | dawn_harbor        |   6034
   62 | A Drowned Kernel   |   6033
   63 | Jeebus             |   6030
   64 | Powerman           |   6014
   65 | Qvist              |   6013
   66 | sangatsu           |   5999
   67 | Watno              |   5997
   68 | Trojan Horse       |   5994
   69 | HampusEriksson     |   5986
   70 | Booyakasha         |   5985
   71 | WhiteRabbit1981    |   5982
   72 | Warrior            |   5980
   73 | Emeric             |   5972
   74 | D_dreamer          |   5969
   75 | 7MiKL7             |   5954
   76 | M1                 |   5947
   77 | andwilk            |   5946
   78 | microman           |   5943
   79 | Indur              |   5926
   80 | astrosity          |   5925
   81 | Titandrake         |   5921
   82 | todo_boss          |   5916
   83 | Kazuhiro Kobayashi |   5898
   84 | Александр Логинов  |   5883
   85 | Egor Kulikov       |   5866
   86 | Silverfinger       |   5862
   87 | Lekkit             |   5848
   88 | mullinKAI          |   5839
   89 | dscarpac           |   5836
   90 | moharimo           |   5820
   91 | kilgoretrout103    |   5802
   92 | zporiri            |   5801
   93 | Magicarp           |   5801
   94 | heatthespurs       |   5800
   95 | Dominionologist    |   5787
   96 | Vampyroteuthis     |   5780
   97 | Masschy            |   5773
   98 | hirotashi          |   5771
   99 | Johannes Dorn      |   5754
  100 | Polk5440           |   5748

TrueSkill* Top 100:

Code: [Select]
  rank  |                   pname            |    mu    |   sigma
--------|------------------------------------+----------+----------
     1  |  Stef                              |  60.5675 |   3.9775
     2  |  Boodaloo                          |  60.3245 |   4.3395
     3  |  nomnomnom                         |  61.6375 |   4.7775
     4  |  Rene Kuroi                        |  58.6050 |   4.0585
     5  |  Mic Qsenoch                       |  58.1975 |   3.9765
     6  |  SheCantSayNo                      |  57.2280 |   3.9360
     7  |  Stealth Tomato                    |  57.5755 |   4.0865
     8  |  Wandering Winder                  |  57.1345 |   3.9650
     9  |  Tao Chen                          |  61.9515 |   5.7080
    10  |  hiroki                            |  55.9995 |   3.9410
    11  |  Rabid                             |  56.0185 |   4.0165
    12  |  Geronimoo                         |  55.5715 |   4.0710
    13  |  HiveMindEmulator                  |  55.5580 |   4.3235
    14  |  Andrew Iannaccone                 |  54.2025 |   3.9435
    15  |  Obi Wan Bonogi                    |  54.0950 |   3.9965
    16  |  TrickStaR                         |  54.1255 |   4.0345
    17  |  jaybeez                           |  53.9285 |   3.9900
    18  |  LESPEUTERE                        |  53.9790 |   4.0120
    19  |  Fabian                            |  53.2665 |   4.0085
    20  |  jog                               |  53.0150 |   3.9470
    21  |  PitrPicko                         |  53.0575 |   3.9795
    22  |  awaclus                           |  53.0230 |   3.9855
    23  |  blueblimp                         |  53.1740 |   4.0875
    24  |  ednever                           |  53.0205 |   4.1355
    25  |  Qvist                             |  52.0220 |   3.9885
    26  |  Perry Green                       |  51.6780 |   4.0900
    27  |  manzi                             |  51.2640 |   3.9720
    28  |  heron                             |  51.4135 |   4.0245
    29  |  flyingkuyt                        |  51.0310 |   3.9370
    30  |  Jeebus                            |  51.1155 |   3.9995
    31  |  eliegel                           |  51.0905 |   4.0280
    32  |  jhovall_goko                      |  50.8355 |   3.9635
    33  |  iriho                             |  50.5480 |   3.9405
    34  |  Psyduck                           |  52.0175 |   4.4565
    35  |  sami1                             |  50.6900 |   4.0330
    36  |  Mike Harris.0001                  |  50.5940 |   4.0170
    37  |  Lekkit                            |  50.4200 |   3.9610
    38  |  shark_bait                        |  50.5130 |   4.0145
    39  |  Slyfox                            |  50.2800 |   3.9390
    40  |  wicket                            |  50.2745 |   3.9620
    41  |  Masschy                           |  50.3730 |   4.0520
    42  |  zporiri                           |  50.8940 |   4.2580
    43  |  yudai214                          |  49.7325 |   3.9385
    44  |  SM.SM                             |  49.7215 |   3.9380
    45  |  Warrior                           |  49.7705 |   4.0085
    46  |  Monsieur X                        |  49.7705 |   4.0085
    47  |  yed                               |  49.4895 |   3.9150
    48  |  AQUAREAF                          |  49.5920 |   3.9750
    49  |  faust                             |  49.6090 |   3.9980
    50  |  kenyou2859                        |  49.8205 |   4.0760
    51  |  First                             |  55.3440 |   5.9195
    52  |  theParty                          |  49.4880 |   3.9730
    53  |  Robz888                           |  49.2785 |   3.9455
    54  |  GwinnR                            |  49.3625 |   4.0500
    55  |  Kevin O'Brien                     |  51.3655 |   4.7700
    56  |  Eevee                             |  48.9310 |   3.9615
    57  |  Holger                            |  55.6320 |   6.2050
    58  |  wsc                               |  51.4760 |   4.8355
    59  |  gagnerouperdretelleestlaquestion? |  49.9420 |   4.3300
    60  |  Powerman                          |  49.0620 |   4.0590
    61  |  dudeabides                        |  48.8435 |   3.9910
    62  |  florrat                           |  52.1135 |   5.0945
    63  |  David Hunter                      |  48.5990 |   3.9965
    64  |  Schlippy                          |  49.4220 |   4.3225
    65  |  nnn                               |  48.5010 |   4.0255
    66  |  markusin                          |  49.0665 |   4.2170
    67  |  andwilk                           |  51.4850 |   5.0315
    68  |  sangatsu                          |  48.3820 |   4.0030
    69  |  Lotoreo                           |  48.0110 |   3.9415
    70  |  pâté de campagne                  |  48.2605 |   4.0425
    71  |  2.71828.....                      |  48.0130 |   3.9660
    72  |  daniel greif                      |  71.1600 |  11.6865
    73  |  Bulec                             |  48.9830 |   4.2995
    74  |  RTT                               |  47.9095 |   3.9550
    75  |  scott pilgrim                     |  48.3400 |   4.1020
    76  |  yuuna_tu                          |  54.9045 |   6.4195
    77  |  qmech                             |  51.0900 |   5.1830
    78  |  kn1tt3r                           |  47.4915 |   3.9880
    79  |  faw                               |  53.6745 |   6.0830
    80  |  Pneumatiker                       |  49.8545 |   4.8275
    81  |  minased                           |  47.2105 |   3.9560
    82  |  Titandrake                        |  47.2465 |   3.9700
    83  |  A Drowned Kernel                  |  47.1445 |   3.9425
    84  |  p4ddy0d00rs                       |  47.1735 |   3.9640
    85  |  Teenage Raistlin                  |  67.2485 |  10.7155
    86  |  Tom Collett                       |  46.8370 |   3.9375
    87  |  dawn_harbor                       |  47.1200 |   4.0330
    88  |  Cruxis                            |  47.2785 |   4.0865
    89  |  fiu                               |  48.6615 |   4.5505
    90  |  Troninho                          |  46.8575 |   3.9520
    91  |  dnkywin                           |  47.3565 |   4.1335
    92  |  jsh357                            |  47.2225 |   4.1070
    93  |  WhiteRabbit1981                   |  46.6635 |   3.9475
    94  |  houroku                           |  46.7355 |   3.9800
    95  |  Hao Chu                           |  47.0940 |   4.1345
    96  |  Watno                             |  46.3765 |   3.9390
    97  |  Pex Golder                        |  47.8285 |   4.4575
    98  |  CopperCopper                      |  47.1805 |   4.2640
    99  |  Zan                               |  46.1630 |   3.9355
   100  |  DominionKing                      |  46.1270 |   3.9265

*TrueSkill implementation details: (anything insane here?)
  • Using the package at https://pypi.python.org/pypi/trueskill
  • Including only 2-player "Pro" games, excluding games with guests
  • initial mu=75, sigma=25 (calibrated to mimic the isotropic leaderboard)
  • draw rate=0.0175 (the empirical average)
  • ranked by sigma - 3*mu
  • no rating degradation over time

Edit: Sorry guys, I posted this after a night of insomnia. Some corrections and clarifications:

Ranked by mu - 3*sigma. Thanks for noting this, HME. WW, is mu - sigma a more accepted metric? The Microsoft research page here said that k=3 was "common."

The initial rating was mu=25, sigma=8.33. I then scaled both up around the mean to give numbers that I could more easily compare to the Iso leaderboard. For each player, the numbers I listed are actually mu' = 25 + 5*(mu-25) and sigma' = 5*sigma. I don't know what made me think this was a good idea or why I thought it was equivalent to mu=75, sigma=25. I'm undoing this.

By "no degradation over time" i meant that I wasn't doing Goko's accelerating increase uncertainty every day thing. I'm sure that some degradation is appropriate, but I suspect that Goko's method is too rapid. I also really doubt that the change should accelerate over time, and it should certainly stop asymptotically.

Pages: [1] 2

Page created in 0.118 seconds with 17 queries.