I'd like to put together and participate in a competition where people write scripts to play fixed sets of kingdom cards optimally.
My main goal is to capture what optimal play looks like. On the whole, our simulations are good at assessing big-picture strategies, but they lack the nuance and adaptation present in a real game. Some examples:
- You're buying a key engine card this turn and want to avoid triggering a shuffle.
- It becomes obvious that your opponent is going for Duke/Duchy.
- You're going for Conspirator and have several available cantrips.
- The Kingdom makes Fairgrounds or Menagerie viable.
- Your opponent pulled Lighthouse from the Black Market on turn 3.
- Embargo is available. Perhaps your opponent has even used it.
My thinking is that optimizing simulated players against fixed Kingdoms will bring out some of these nuances, and that will hopefully produce meaningful improvements to our current simulators and to our understanding of optimal play. As a side-effect, we'd also end up with some really thorough board analysis.
First question: Would anyone participate in such a thing?
Now let's talk mechanics. I'm open to any and all ideas of how this should work or why my thinking is wrong.
Firstly, it seems like we'd almost have to use Dominiate rather than Geronimoo's simulator. Geronimoo's simulator is already excellent about hard-coding many of the game nuances (massive thanks for his dedication to this), but Dominiate's openness and extensibility are completely compelling. As far as I can tell, it's possible to program any decision in the game in Dominiate, using a fully-featured programming language. It also seems better suited to a server-side environment.
It's difficult to rank bots. There are two problems: (1) Three bots may all beat each other in rock-paper-scissors fashion, and (2) it should not be possible to beat the current first-place bot using a functionally identical strategy. I was thinking each bot could play each other bot 100 times and its score would be its total number of wins. This would resolve the first problem but not the second. I'm not sure what to do about the second, but I'm betting the answer has the words "Standard Deviation" in it.
I do think it's important to make the bots publicly viewable for educational reasons. I also think people should be encouraged to tweak and tune the best bots to make them even better. It'd be nice if there were some meaningful way to give credit to the authors of previous iterations.
Finding a good source of Kingdoms is tough, too. The 2011 Championship finals seems like one good place. We could just let people submit Kingdoms at will. Presumably the more interesting Kingdoms would get played more. This could also be a way to involve people who are interested in Dominion but not in simulation.
That's a long enough post for now. Thoughts?