Battlesnake – Competitive Snake Games over HTTP
play.battlesnake.io
play.battlesnake.io
Write a program to play the game Snake
Step 2
Deploy using whatever technology you like
Step 3
Battle other snakes and compete in arenas!
"
Sounds cool, that title make it sound like yet another worms.io clone, but this is programmatic gaming - I feel the title should include that, or "make a snake bot to battle in a classic 'snake' arena".
I have a question - with AI nowadays that can dominate pretty much any board game - is there any hope for anyone 'hand coding' a strategy here against someone who just trains an AI model.
How does the problem space change in a game such as this where it may be 1v8 opponents vs a 1v1 game such as chess I wonder
Not sure if it's what you meant, but it's less "hand coding" and more about trying to enumerate board-state possibilities (i.e. "I'm hungry" or "there's a snake at x") and addressing them via generalized algorithms.
I'd love to know how the problem space looks in this game vs chess for example as I mentioned.
My terming is a little vague what I had meant is 'black box' solutions I guess where the logic can not be inferred via looking at the code
What we've learned so far is that playing against multiple snakes, especially AI/ML driven snakes, adds an incredible amount of complexity to the game and the top ranked snakes tend switch around quite a bit as players adjust to attack/defend specific strategies.
If anyone has formal theory around this sort of problem, we'd love to investigate further.
In a 8 player game, it's a little different because there are 'side' and 'corner' positions. Obviously this isn't symmetric anymore, so if you played many games, one position would make itself clearly superior. That likely depends again, on the probability of food appearing in a snakes "zone of control" which you could represent with a voronoi diagram.
My gut instinct is that a 'side' position would eventually be revealed to be stronger because the snake has more options and freedom.
Of course, in a tournament setup, it's fully possible for an AI to have 100% win rate just by random chance, because you are only playing a finite number of games.
We should expect any proper AI to read and understand the others and work out who should be avoided or ganged up on. Rock-Paper-Scissors tournaments have bots that use game moves to recognize eachother and then dump all their points onto a single player -- something similar could happen in Snake as well.
However, this contest looks unpopular enough that you can likely still compete because no one has spent the effort to actually build a proper deep-neural-network agent, etc.
You can work out the problem space yourself by simply calculating all the possible board states. Or you could calculate the move states (3 moves per player, to the power of the average number of turns).
I don't know if that method is applicable to this particular game though, since the processing is done by the user.
I'm aware of http://fruitbots.org/, which I had a lot of fun with.
I found the following while browsing AlternativeTo, it might be nice to fill in the others as well: https://codecombat.com/, https://robocode.sourceforge.io/,
What continent is this in? From the sound of things it's in a Commonwealth country but that really doesn't narrow it down much ;)
https://github.com/battlesnakeio/community/blob/master/start...
Alternatively aws offers 12 months limited 'free' usage on many of its services last time I checked - you should be able to use their most basic ec2 instance within that free tier I believe
slither.io
Be warned, this can ruin productivity in your day.
Write up: https://devblog.kogan.com/blog/kogame-django-channels
Game: https://kogame-snek.herokuapp.com/
Disclaimer: it’s not very good. It was a one day project.