One of the most frequently asked question I get about bots on SCHNAIL, or just in general is “how strong are these bots?”. I believe you can’t really answer that with confidence – bot vs. bot rankings are relative to each other, and we didn’t have a bot vs. human ranked ladder. Until now.
We have implemented a ranked ladder, where you can try out yourself against bots, and this time, you actually get an ELO to do that!
Everyone – bots and humans – are seeded with 1500 ELO. The score calculation is pretty much textbook ELO (with 32 as our K-rating). I saw no reason to change that to something esoteric, or proprietary. We decided to have a Season 0 going, where we see how to the scores develop, how stable is the syystem, and what needs to be added and refined.
This is how it looks:
Currently only displaying the current season, and your ELO rating. Yes, I lost many games before taking this screenshot 🙂 I can also set my own ELO to ten million, so who cares.
If you select practice mode, you can see the bots’ ratings as well – practice games will not change that!
Practice only bots
For authors who don’t want to participate, there is an option to mark your bots as “practice only” – this means that they can be still played on the SCHNAIL platform, they are just not participating in ranked play. If you decide that you do want to change, and remove the practice only flag, the bot’s ELO gets reset.
Bot anonymization
Another feature is bot anonymization – if you play a ranked match, your opponent will be “Anonymous AI”. Currently, sending messages are not disabled for the bots, so you can still know which bot are you up against
Matchmaking
I’ve been thinking of a fair matchmaking system for a while. The goal is to have an opponent in close range of your skill level, but at the same time, have a variety of opponents. The solution we come up with goes something like this:
- Sort the bots by ELO difference compared to the player. Put these in “buckets”.
- Each bucket gets a different chance. There is a base chance, and depending on the number of buckets, they get placed on an exponential curve where the last element gets 100% chance to get chosen. tl;dr: math.
- Each bot in the same bucket has the same chance, and a random number will be generated between 1-100 for each of them in order – if this is smaller than the chance, the bot gets chosen.
Submitting replays
Submitting ranked replays is mandatory, and automatic – this serves an anti-cheating, and accounting measure. You can browse them in the match history tab.
Leaderboard and a replay browser
The next logical thing is a big leaderboard with bot and human ratings, and a detailed game browser – all of these are on the website. It is the next major feature that we will work on. As always, check the development roadmap for what is up next. (You can also become a Patron to influence that!).
Edit: There was a replay contest, but we decided not to work with the particular caster.
Thanks for reading! Go check out the new version on the SCHNAIL website, and I hope you’ll enjoy stomping (or getting stomped by) some AI!