Jack’s Friends Part II: Computed Fairy Tales
March 22, 2017
From that very first playtest I saw an immersive experience that was widely accessible and simple enough that it practically teaches itself. The problems however, were wide enough to drive a truck through. Every three player was won by the giant and every four player game was won by the humans. This was without exception and entirely unacceptable. My playtesters were a forgiving bunch but I had no desire to subject them to the endless tweaking that would be needed to balance the game up and down the player count.
To further this cause I shelved the game and thought about it holistically. In this reprieve we streamlined the rules, settled on an actual theme, and formulated a plan for tackling the problem of player scaling. To keep the game as playable as possible we decided to have a fixed number of turns and just vary starting resources with player count. Balancing a game is not possible if there is no goal for what balance actually looks like. My goal when balancing was to achieve about a (50–60)% win rate for the humans at all player counts. It is all well and good to say it should exactly 50% at every player count but, in the real world where perfect is the enemy of good, it is better to have a plan for dealing with deviations than planning on elimination all of them. I decided to try to isolate the deviations to a slight advantage to the humans.
This was done for two major reasons. Since the human players usually outnumber the giant, if the humans have the slight edge, the number of winning players would be maximized; and who does not like winning? It also makes winning as the giant an actual accomplishment and fit the theme perfectly. Beset on all sides by a never ending stream of humans the giant must use equal parts guile and intrigue to outsmart those he is outnumbered by.
Since the game is an iterated game theory decision I thought to a reasonable first order approximation the game could be modelled as players choosing at random. This may seem counter intuitive and wrong but at very least random selection is not an easily dominated strategy and maps well to how actual humans actually play in aggregate. If there there are any flaws in this reasoning please let me know.
The actual program to play Jack’s Friends I wrote in C++. Now I am by no means an actual programmer but the democratization of computation has lead to a multitude of amateurs and that is a good thing. It can be best described as one class that does everything. Object oriented code doing its best impression of a procedural program. Just the kind of code an amateur would write but also exactly the tool I needed to narrow in on reasonable starting resources.
The results were night and day. That very next playtest the games were split almost even between human and giant wins with a slight edge to the humans. From there some minor usability tweaks were made and rule variations were tested but the scaling problem had since been solved.
Without further ado you can find the code in question at this github link. https://github.com/piggybankgames/jacksfriends