Governor

A Balancing Act

“Sabotage!”, the representative to the Solar Council of Mercury approached his colleague, who was fulminating from behind his screen. “Sabotage, I tell you! We’ve lost all of our credits and Antihydrogen, sir!” 

“What!? How? More importantly, who?” The representative asked. His colleague shook his head and turned to the screen. He pointed at a log entry showing a transaction to an address. The address was all too familiar to the Mercurian representative. “Mars.” He said, turned around and headed back to the Solar Council room, where next session of debate was about to commence. 

It’s been a while. Apologies for the long absence of updates, the last few months have seen disappointingly little Governor action.  Last Saturday, the 27th of October 2018, however, we organized the latest Governor play test.

Before I get into a report of that session, I would like to dedicate a few words to my efforts in balancing the game.

27-10 Preparation
Lobbyists and representatives to the Solar Council preparing for the afternoon’s session.

Bring in the robots!

Governor is a game played with 18 to 27 players. Even in games where we didn’t meet the minimum required number of players, setting up the game and getting the players together can be quite a challenge. After each play test I receive valuable feedback from players. Unfortunately, much of that feedback was to do with balancing the game. Some players would always feel that their starting position gave them such a large disadvantage that they had no chance of winning.

Now, after each session I am able to incrementally add more balance to the game.  The pace of this was much too slow, however. Time for some automation!

My first attempt at creating an Artificial Intelligence (or AI, if you’ve been living under a rock for the last year) involved creating a Python script that sent HTTP calls to the Governor back-end. This, unfortunately, ended in tears as I had no control over the timing of the calls. Okay, maybe I could have gotten some control over this, but it was getting frustrating. So, I decided to incorporate the AI into the game itself.

Added bonus of this is that I can now potentially let human players play the game against the AI. And once and for all answering the question: Who is more capable of conquering the Solar System, humans or robots?

Each player (or nation, in game terms) has control over one fleet. This fleet is used to gather resources and wage war with other players by attacking regions and other fleets. Each nation also has a number of regions that gain them income (credits) each turn. This represents the gathering of taxes from the inhabitants of those regions. Some regions are owned by players at the beginning of the game, but most regions are unoccupied. Resources appear on random regions each turn and can be gathered by players whose fleets have the ability to mine these resources.

I decided to build my AI player according to a few simple rules:

  • All fleets have the ability to mine resources;
  • Each round each player moves its fleet to the region that has the highest resource value;
  • If no such region can be moved to, they attempt to claim a random region;
  • Each round each player converts all resources and credits into Governor Points (victory points);
  • If any region is claimed by only one player, that player gains control of the region at the start of the next round;
  • Else, if more than one player claimed that region, it remains neutral.

In the video below, you can see my AI in action:

It took a few iterations, but eventually I managed to balance the nations in the game, while keeping their characteristic starting conditions. I.e. the inner planets started with more credits and income and the outer worlds were richer in resources. Out of the twenty or so games I simulated, there were only a few nations that one more than once (there’s still a disproportionate chance of winning when playing the United Nations of Earth, but that just adds to the world building, in my opinion). Time to put my newly balanced game to the test in a live session!

Keep your friends close

Back to last Saturday. I invited some friends, colleagues, friends of colleagues and colleagues of friends to our home in the Hague to play the latest version of Governor. This time I had the pleasure of having a guest Chairman (thanks Nick!) to oversee the debate in the Solar Council. This left me free to roam around to answer questions and make small adjustments to the game where needed.

27-10 Solar Council
The Solar Council being updated on the latest round’s claims, fleet movement and battles.

To summarize the session: Mars tried to steal all of Mercury’s resources. Mercury retaliated by moving the Solar Council to divide all of Mars’ resources evenly over the Solar System’s nations. Triton made friends of enemies and enemies of friends, every time gaining the most out of every deal. Titan waged war on every fleet that was in its range. And the representative of Miranda set up the legal scaffolding that would shape the democratic backbone of the Solar Council while his partner tried to steal as much territory from other nations as possible.

All in all, no one felt they were at a disadvantage because of their starting position. Balancing the game using AI has been a success. In the last few games the inner planets (Earth, Mars and Mercury) always had a distinct advantage. However, in this game, despite Mars’ efforts to steal all of Mercury’s resources, the winner was the small mining colony on asteroid of Beatrix-311.

Now, with the game more or less in balance, it’s time to look towards the next improvements. Going by last session’s feedback, this means more ways to wage war, more ways to conquer regions and more ways to conduct subterfuge and espionage. In other words: More ways to have a fun afternoon with friends!

If you have any questions or remarks or just want to stay informed about developments and future sessions, keep checking this site or e-mail me at gijsvmalsen@gmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *