schneiderbox


Erastus: Introduction

January 15, 2022

It’s January, which means it’s time for a new Harding computer science senior capstone class, and it’s time for me to write a new game-playing AI.

This year the game is Santorini (rules), specifically the base 2-player game without the added god powers. My nascent AI is named Erastus.

Unfortunately, that GitHub link won’t work at the moment. I typically open-source my AIs, but since the students are writing their own for the class, I keep the source restricted until the class is over.

I plan to keep a small development log for the project here. For the same reason, I’ll probably keep some (most?) entries unpublished until the class is over. At the end, I hope to do a walkthrough of the code as well.

In the meantime, here are some unstructured thoughts I have at the beginning of the project:

  • I like the game (at least for now). It has that core simplicity and (in theory) emerging strategy that is a good fit for the class project.
  • I’m a little worried that the players placing both workers at once (versus one at a time, trading back and forth) will result in a strong second player advantage. It allows the second player to directly respond to whatever strategy the first player commits to. On the other hand, it can be easy to make wrong guesses about this sort of thing; we’ll see how the data plays out.
  • I’m also a little concerned how a Monte Carlo algorithm (my standard approach) will respond to the win condition of this game. To win, a player needs to make specific moves to maneuver a worker up to the third level of buildings, and that sequence can be interrupted if a player moves the worker so that it falls down to a lower level. The random moves of a Monte Carlo playout could have a hard time with this. But again, we’ll see!
  • The core of this game is way quicker to implement than last year’s game.