Developing a Splinterlands Bot is both fascinating and frustrating at the same time. I've been working on mine for 6 months, but I'm still not in the Top 50 and neither in the Top 10.
Procrastination
The main issue is my unyielding determination to procrastinate. Pretty much since the start, I intended to implement the universal "algorithm" to get good at any game. Alpha Zero. Or by now, Mu Zero.
The method requires no human input, just a computer program trying to beat itself indefinitely. Nothing but the game rules. Plus some machine learning magic. It's younger brother Mu Zero works even without rules.
Now, what did I actually do in those 6 months? I implemented the Monte Carlo Tree Search algorithm from scratch, wrote a simulation of the Splinterlands Battle Simulator. The first part is needed for Alpha Zero, the second is optional. But for some reason, I didn't program the rest. Probably because of my irrational distaste of neural networks.
But now I've started working on that part. Pretty much because I can't do anything else. Classic Temporal Difference Learning- doesn't work. Breadth-first initialisation - nope. RAVE - double nope. Thompson Sampling - comparable.
I hope I'll finish soonish because @wonsama with his Deep Reinforcement Learning approach plays pretty successfully. He did pretty good work on his bot.
Current Season
In the current season, Aicu performs as always. Somewhere between rank 110 and Rank 50.
Win streaks followed by loss streaks.
Some work out:
https://steemmonsters.com/?p=battle&id=5ff9d7f40ac52835c6631a18ff198bcc7f09cb6c&ref=aicu
Some matches are close:
https://steemmonsters.com?p=battle&id=b73020be7ab6fb4b7dab59b5e3eedb49a64d62f1&ref=aicu
Some just fail miserably:
https://steemmonsters.com/?p=battle&id=d75bee665c448829d70b7ed9c8093ab8d8587481&ref=aicu
Anyway, lot's of works to be done until rank 1.
Giveaway
Onto the giveaway:
The giveaway works as usual. Comment down below with your Splinterlands username. And after seven days I'll draw the winners randomly.
Hey, glad you enjoyed my article.
And regarding beating the top players: you're heading in the right direction with your theory. But there are two/three sides to the story.
One is, that people start to develop an intuition which moves work and which don't. That intuition comes from repetition and challenges. Then that intuition is combined with logical planning. And that's how you reach a team selection as a human.
My bot uses a logical approach without any intuition. It tries to learn an optimal behavior from scratch against an opponent by trial and error. That puts it at a disadvantage. Imagine you trying to learn a game withing just two minutes. That's what my bot is essentially doing.
The better approach would be to use intuition combined with that logical approach. That's what Google did with alpha zero. Their system played for weeks against itself and started to develop an intuition how to play.
They achieved that by training a machine learning model on the "discoveries" of the logical planning system and used the estimates to guide the planning. With that approach they beat a famous go champion and the leading chess engine stockfish. (Which already played much better than any human)
That system is what I'm going to work on next. With that I think beating aicu might become pretty difficult. It's still possible due to the probabilistic nature of the game. But it should be much harder.
Another aspect is, that there are a couple optimal teams for each ruleset /mana cap situation. They don't win every time, but they win frequently.
Just by using those consistently you can reach the top 50. Plus a max level deck. But that approach seems boring to me. That's why I've never really looked into it.
Another major one is a bit more technical, but it has to do with probabilities. Some matches can depend on a single successful dodge. And learning a optimal behavior for a non deterministic game is harder than for a deterministic game like go or chess. Especially within the time limit.
That's pretty much all there is to it. Good luck with the giveaway :D