Tigris and Euphrates solo bot development


Dev notes

An initial idea was born

  • Strange that there hasn’t been a solo bot made for this old game. There’s 1 version in the period 1995-2024 that just says “do for the opponent what you think is best”, which doesn’t set any bar, and is too vague, it feels too “optional”, like playing chess against yourself it would feel like a pointless activity.
  • First and foremost, bot rules should not be too complicated: it should be feasible to memorize them and not having to look up every time. If that results in a bot that would lose against competent players, then so be it. Hopefully the heuristics will prove to be intuitive.
  • Second, the bot should mimic same goals as against humans, follow the same rules and score the same way as the human. In other words, the bot should play the same game, and not play “ET accent” game. Learning from plays against the bot should improve your skills against humans in ET, not ET’.
  • Third, the bot should not require any “player decision” but would play mechanically. It should be able to complete a game and win against poor human players. Rule deviations should be minimal and should feel intuitive.
  • Fourth, it must be simple to replicate a bot, in case someone wants two opponents or three instead of just one.
  • As kingdoms grow, you need to “pivot" around a kingdom to find a suitable location to place a tile. Ideally it would be placed to form a 2x2 grid, so nearest to bot leader then north east south west as tie breaker among those candidate spots.
  • In this document a treasure cube notation as in 1-10 is assumed, but you can just as well use any 10 distinct symbols (I-X or A-L (except I,J).
  • A clean coffee cup, preferably is with a rounded bottom and non-transparent (like the one you would use in Puerto Rico). Chips should fit and be able to be shuffled.
  • If you don’t have cups, you can turn them face down and wiggle them manually as well.
  • Numbers on outer edges to find the corresponding treasure fast.
  • The bottom right corner is closed off by water and if the bot has a green leader there it would not get out. Green tiles cannot be placed after the kingdom has expanded maximally. And since I hadn’t written a rule for moving leaders, it would get stuck.
  • The pacifist nature of the bot gives too strong kingdoms to invade, and eventually it would feel like invisible barriers that limit growth. By staying close to the bot you effectively could strangle it.
  • Adding blue tiles for a blue bot leader suffers from the fact you can’t trigger an external conflict. If you can’t place blue tiles, they become dead weight (like the greens eventually).
  • In the first 1/3 of the game the bot expands at a ridiculous speed if you allow it to play all its tiles, there’s nothing to stop it until it meets the human player.

 

Had been playing with the idea of an automaton bot for a while. Since you can’t hope to devise something out of the blue, I started with writing out requirements, which are as follows:

 

Since the game has no dice but uses “draw from bag without replacement” it felt natural to use chips from a cup method. This led to a set of 10 chips to identify each initial treasure cube, because any leader would need a temple tile to support him.

 

Also to keep things simple, let’s just keep the bot pacifist – no moving of leaders, no internal conflict, no external conflict, no battling for a monument. Let’s first get the basics right.

 

  • This would give a fast way to determine which temple to attach to, but there are 4 spots (initially at least) so the next step would be to determine which of those spots to select. You can’t simply use the “nesw” rule, it makes no sense if the goal is to get nearer to a treasure, so for determining use a draw from another chip, if then two spots remain ambiguous use “nesw””.
  • To mimic human (defensive) play, you would place temple tiles adjacent to “weak” leaders, but not helping the player at the same time of course.
  • You want to employ the merchant to connect two treasure tiles.
  • The above two lead to a placement preference – when it places tiles it should play red then green, and with blue/black clearly blue should be prioritized since that has the most limitations.

So, this was version 1.0, a pacifist, autonomous automaton. As you can see it was (to me) a straightforward implementation.

 

All that remained was to test it out and, why not, videotape it to YouTube.

Cup system

At game start, the bot will put leaders next to a treasure cube temple tile.

Tiles are usually added to a kingdom of the corresponding bot leader. Cup numbers are also used to send ruin tiles to.

Version 1.3

Well, the multiple bots idea seems fine, but needs some further testing. And now the opponent would be depressingly overpowered, and too much administration and not enough player action. Version 1.3 balanced initial placing (not all six bot leaders). Ending turn / take another action: now the bot stops taking turns when it has scored in its turn. And I had to print out new versions for each bot. This time with b1,b2,b3 on each side and T and larger for the treasure numbering.

 

Version 1.3.2 is mainly for typesetting, rewriting more concisely and for layout.

Version 1.2

Version 1.2 is a generalization for multiple bots. Required some rewriting. Also double negatives were tiring to process mentally so rewrote instructions for lower cognitive load.

Version 1.1

Version 1.1 was born out of some shortcomings I found in 1.0 (admittedly all subjective):

 

Improvements made:

  • Bots don’t actively target other bots but may (accidentally) remove leaders, and external conflicts are carried out as if the bots were humans.
  • To stop the bot from drawing new tiles and to continue placing, I set as limit “whenever the cup is emptied”. The cup is not refilled immediately after, only when a ruin tile is placed (or at least that case was executed).
  • The bot starts processing red tiles first (after leaders) and will keep placing until either condition is met place ruin tile, or cup runs empty or has no tiles anymore.
  • If it runs out of tiles, it will be prone to conflicts.

 

Bot heuristics

  • Each bot acts in its own self-interest, if an action does not benefit him he will not do it – except for placing leaders (obviously);
  • Bots don’t focus on balancing out for end game tiers, only what they can gain now.
  • If the bot can’t do something it wanted, it will place a ruin tile on something of the player.
  • If a bot can place a tile so that it can build a 2x2 of same color, it will build a monument, if such a monument is available, regardless whether or not it weakens its leaders of the tile’s color, but not if that would mean a leader loses its last support (2x2 red tiles).
  • If all eligible monuments would also benefit opponent… that’s debatable, should you place it or not. In general, I decided the bot should build it.
  • Merchant of bot without two potential treasures to connect or who does not benefit from green monument is pointless, and should be moved so something better.
  • Priest of bot benefits from red tiles, if no priest then red tiles should be added to king to provide cubes.
  • Placing a tile adjacent to two tiles of same color should be preferred, as this might lead to a 2x2 spot to build a monument.
  • placing tiles algo:

1. first find all spots around, the kingdom of the leader that are legal spots.

2. only consider spots that are adjacent to leader

3. if no such spots, only consider spots that are adjacent to same colored tile.

  • Ruin tiles. Rather than placing ruin tiles to defend against nearby kingdoms, or to wrestle an opponent out of monument gains, the bot only targets temple tiles adjacent to player leaders.

* if it cannot place a monument because there are none that would fit in the game,

* or if it cannot gain a cube by placing a tile from what is drawn,

* out of spite it will place a ruin tile, then end its turn.

Version 1.0

2024-3-20 First draft was easy, after some drafts stopped and started with requirements first. After that, it felt natural to derive. Had been toying with the idea for a while. After the video series on Warhammer quest ACG decided to make things more concrete. Started a 10-part video on Tigris with 1 bot.

After that, making meticulous notes on what left things to be desired on each video…

Basic tactics

In the rare case you might need some tips:

  • No bot will strengthen its leader if that would strengthen your leader as well, so it’s generally safe to stick near bot leaders. It won’t bomb you with ruin tiles that way.
  • When you kick out leaders the bot will focus on placing them asap, usually on a weak spot, so you can kick it out again.
  • Leave an opening for the bot, otherwise it will cycle through its cup and do more actions and ruin your civ. That counts for monuments as well.
  • With more bots running, more situations will occur that lead the bot to place a ruin tile on your kingdoms, so be flexible and aggressive.
  • Use the static nature of the recipe – try to kick out bot priest and king, this results in you getting hit with a ruin tile, but afterward you can start an internal conflict – the bot has no red tiles.

Files

prototype-1-fronts-and-backs.pdf 779 kB
May 15, 2024
Tigris-and-Euphrates-solo-v1.3.2-printed-edition.pdf 266 kB
May 15, 2024
Tigris-and-Euphrates-solo-v1.3.2-geriatric-edition.pdf 288 kB
May 15, 2024

Get Tigris and Euphrates Solo bot

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.