Another Season ends. Bot update and Giveaway

in #steemmonsters5 years ago

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
Sort:  

Alright, giveaway is closed. I'll try to get to the distribution asap :)

Posted using Partiko Android

I'll distribute the cards tomorrow, CET. I hope that is fine with everyone :)

Ok, the random number generator decided:

@lebastion sea genie, 2x vampire, Goblin Mech, 4 x Javelin Thrower

@jmehta Exploding Dwarf, Crystal Werewolf, 7x Undead Minotaur, Pirate Archer

@ssg-community sea genie, Divine Sorceress, 3 x Undead Minotaur, Gold Creeping Ooze

@iike Naga Fire Wizard, Divine Sorceress, 3 x Goblin Mech

@philippekiene Imp Bowman, Vampire, 2x Goblin Mech, Silvershield Archers

@lordwinty Naga Fire Wizard, 3x Vampire, 2x Sea Monster, Silvershield Archers

@kiokizz 4 x Undead Minotaur, Goblin Mech, Wood Nymph, 4x Silvershield Archers

All the cards should already be at their designated address :)

Awesome, thank you so much.

Posted using Partiko Android

That is an interesting Blast + Magic counter. I'll have to keep it in mind 👍
@kiokizz

That's true, I think I should run the bot against some of the most used teams and see which counter teams it discovers. that might actually be interesting :)

Keep up the good work man! I love reading these posts of yours. Inspiring!

Keep up the good work
Man! I love reading these posts
Of yours. Inspiring!

                 - xtrimmer


I'm a bot. I detect haiku.

So glad to see the bot performing as expected. I like reading about how youre coming up with solutions to problems.

Its me again @welshstacker, but if we get lucky again (thank you for the last giveaway), please send any cards to the @ssg-community account. Cheers

Thanks, I'll try my best to improve it further :) and if the random number generator decides to send some cards your way, I'll send them to ssg-community :)

What are you thanking me for ;) but you are welcome :) I hope the random number generator favors you :D

Posted using Partiko Android

I have to thank you for your generosity, even if I don't win, you still gave me a free ticket :)

wow, with only 5 minutes to spare.... please count me in!
@philippekiene

Sure, I'll add you as well, you are well within the limit :)

Posted using Partiko Android

Upvoted!

My aim for next season is to receive greater than 7 cards - @jmehta

Thank you :D

And good luck with your goal. Bronze II is a solid league to aim for :)

Your bot is amazing, the last few times I played against it, it kicked me.
I'm not interested in participating in the giveaway, I just wanted you to know how great you are doing

Thanks, that means a lot.

But you've managed to wipe the floor with my bot countless times as well ;)

Count me in for the cards ;) player name is @lebastion
Grats on the work achieved, and yeah i already had to face the big bang

Thanks a lot :) sadly I haven't seen the big bang since then, not sure whether he's playing in a lower league

Count me in, also didn't know bots were as effective, yours is pretty nice

Sure do :) and thank you, it depends all how advanced you make it. Artificial intelligence allows for pretty flexible Bots.

Posted using Partiko Android