Another Season ends. Bot update and Giveaway

@bauloewe · 2019-07-31 14:39 · steemmonsters

Another season draws to a close and I present you with another update on my Steem Monsters Bot. I've been working on improving my bot since the last update. This took way more time than expected and there are so many ways of improving the bot that it actually pushed back my other project for now. Anyway, let's discuss what happened.

Match highlight

One of the coolest matches which I've discovered is this little gem:

Amazing counter to a magic + Blast like the Elemental Phoenix.

It seems my bot came across a counter to a magic unit with Blast.

Overall Season Performance

This season was comparable to the last season, the bot performed slightly better than last season, reaching the Champion II league with a rank of 4346. This improvement was actually caused by a bug fix within the last minute. Essentially there was a mistake with the reward propagation in the Search Tree, causing a strong bias towards the first results. Which lead to good teams, but was prone to get stuck in suboptimal team selections.

Discussion and Further work

Since the last version, I started to store past teams of an opponent as well, but this didn't lead to any noticeable improvement. Since I was pretty much stuck with this version of the bot, I tried something new. The thing was, that I implemented a non-standard variant of the Monte Carlo Tree Search algorithm.

Usually, this algorithm is used to plan the next moves within a turn-based two-player game. It's doing that by using the current game state as a starting point and evaluates a sequence of moves from that point. Usually until the end of the game. This process is split into multiple parts which I omit for the purpose of this post as I don't want to bore you to death with technicalities.

Due to the nature of Steem Monsters, I tried to exploit a mechanic of the game: I set the number of enemy turns fixed, meaning the team selection. My bot then tries to find the most rewarding counter to this team selection. E.g. if each win is one point, then it tries to find a team which accumulates the most point rewards. And if a team wins against multiple teams this leads to a significantly higher score.

This approach decreases the search space extremely but it has its flaws. Especially if the opponent player tries to tailor a team to each opponent. By using multiple of his last teams the algorithm should try to find an optimal counter to his selection strategy, but this is not guaranteed.

Therefore I'm currently switching to a more "standard" implementation of Monte Carlo Tree Search, where the algorithm tries to build the best teams from both monster collections. Rebuilding my implementation took up most of my time over the last couple of days. Currently, I'm testing this version on the sidelines and try to improve it. I think with this version a machine learning-based pruning strategy might actually be worthwhile. Especially since its branching factor increased significantly from my original version. I'll keep you updated on my progress with my Steem Monsters Bot.

Giveaway

The giveaway will run until the payout time for the post is reached. So you do have a week time on entering the giveaway. This time there will be no first commenter reward.

If you want to participate you must comment down below and your comment must contain the username of a valid Steem Monsters account. After this period the cards will be distributed randomly to the participants. The cards to be distributed are as follows:

Random Distribution

Gold CREEPING OOZEEXPLODING DWARF lvl 32 x NAGA FIRE WIZARDImp Bowman2 x SEA GENIE
CRYSTAL WEREWOLF2 x DIVINE SORCERESS6 x VAMPIRE14 x UNDEAD MINOTAUR7 x GOBLIN MECH
2 x SEA MONSTERPIRATE ARCHERWOOD NYMPH4 x JAVELIN THROWER6 x SILVERSHIELD ARCHERS
#steemmonsters #splinterlands #bot
Payout: 0.000 HBD
Votes: 31
More interactions (upvote, reblog, reply) coming soon.