6 ms·
Battlesnake – Competitive Snake Games over HTTP
- gschier 8y agoJust curious, what would be the best hosting option for beginners to use for their snake API server?
- bvanvugt 8y agoHeroku is a really good option for beginners (and it's free!) We've got a few repos on GitHub that can be forked and deployed directly to Heroku: https://github.com/battlesnakeio/community/blob/master/starter-snakes.md https://github.com/battlesnakeio/community/blob/master/start...
- tills13 8y agoHistorically, they've recommended Heroku... however, their dynos have a cold-start problem, causing your snake to sometimes timeout. I would recommend using an AWS free-tier instance if you have the option.
- cakebrewery 8y agoI remember that, they recommended a workaround last minute for it. Our snake depended on simulations so we just spun up a beefy GCP instance for a short period at the expense of a few cents.
- tills13 8y agohah! last year, for our bounty snake, we used a c4.2xlarge. Still, we could only manage a depth of 6-7 before hitting the response-time limit.
- nullandvoid 8y agoIf you're looking for something easy to get started with digitalocean / linode offer reasonable plans ( and you can always host a site or something with the extra power you'll have spare ) 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
- deleted 8y ago[deleted]
- xtagon 8y agoAll the options other people are suggesting are good, but if you host on Google Cloud Compute's us-west1 region you'll get very low latency as that's the region from which they send the HTTP requests.
- rkangel 8y agoI'm a fan of Google app engine for pain free deployment of simple things. If I have a go at this later, it'll be a Phoenix (Elixir) app running on app engine flex.
- phoe-krk 8y agoI just realized that a multiplayer Snake is basically the TRON racing game played on a discrete grid.
- bvanvugt 8y agoHaha, yes! We actually had a "Tron Mode" at the tournament last year that just flooded the board with food to replicate light cycles.
- tills13 8y agoWasn't there also a bounty snake with tail pinning on?
- dt_rsp 8y agoI remember playing xtron in the office maybe 20 years ago. https://screenshots.debian.net/package/xtron https://screenshots.debian.net/package/xtron
- teekert 8y agoCool, I'd love an xtron (or waylandtron ;)) legacy, 3D with multiple levels... hmmm...
- pbhjpbhj 8y ago" Step 1 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".
- hiccuphippo 8y agoThat sounds just like armagetron.
- bvanvugt 8y agoYeah I like something like this: "Build a bot to play the classic game 'Snake'"
- MattyRad 8y agoDoes anyone have a list of competitive programming challenges like this? Specifically where you're programming a board game against other algorithms. Googling "competitive programming challenges" doesn't yield a lot of good results. I'm aware of http://fruitbots.org/ http://fruitbots.org/, which I had a lot of fun with.
- roblabla 8y agoScalatron[0] is a fun one. There's also screeps[1] available on steam. Screeps is probably my favorite because it supports webassembly. So you can use any language with it, like Rust, C++, etc... [0]: https://scalatron.github.io/ https://scalatron.github.io/ [1]: https://store.steampowered.com/app/464350/Screeps/ https://store.steampowered.com/app/464350/Screeps/
- squidpack 8y agoThese are seasonal and for recruiting but you might be interested: https://halite.io/ https://halite.io/ https://terminal.c1games.com/ https://terminal.c1games.com/
- make3 8y agohttps://www.pommerman.com/ https://www.pommerman.com/
- deleted 8y ago[deleted]
- mentat 8y agohttps://screeps.com/ https://screeps.com/ is pretty neat, lots of different ways you can try to adapt to different situations.
- MayeulC 8y agoI know https://leekwars.com/ https://leekwars.com/ and have seen a couple others coming by, both on HN and played by my friends, but I haven't seen such a list. There also seems to be a few interesting single player ones, like ruby-warrior. I found the following while browsing AlternativeTo, it might be nice to fill in the others as well: https://codecombat.com/ https://codecombat.com/, https://robocode.sourceforge.io/ https://robocode.sourceforge.io/,
- nullandvoid 8y agoLooks very cool! 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
- tills13 8y agoLast year, I believe only one team even _tried_ an ML snake and they didn't make enough progress to actually compete. "Hand coding," so far, has been the way to go. 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.
- nullandvoid 8y agoThat's interesting I updated my comment to be a bit more specific. 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
- bvanvugt 8y agoThis is a super interesting question to us, and to be honest we're not sure of the answer. Is it possible for a single ML snake to achieve 100% 1v1 win rate? What about 1v7? 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.
- nullandvoid 8y agoGlad to know that the answer isn't a definitive 'yes' right now then! It's certainly an interesting space I bet you enjoy reading through the solutions :)
- deleted 8y ago[deleted]
- mayli 8y agoDunno if anyone still play/remember this version. http://www.hacker.org/worm/ http://www.hacker.org/worm/
- obilgic 8y agoCouldn't this be distributed?
- wyldfire 8y ago> Battlesnake Tournament March 2, 2019 || Victoria Conference Centre 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 ;)
- dkelsey 8y agoVictoria BC Canada Eh?! :)
- dkelsey 8y agoLooks better every year!!
- jaimex2 8y agoFor those that clicked thinking there be an actual multiplayer snake game over http: slither.io Be warned, this can ruin productivity in your day.
- anonytrary 8y agoThat game is super addicting. You will need a mouse. You will have fun testing out various bait-and-switch moves you can use to get noobs. Once you get good enough to make it into the top 10, everyone starts trying to kill you and it becomes exponentially more difficult to stay alive. I used to edit the script to increase my event-out rate a little bit to give me an edge, but I'm not sure it worked, seeing as the server could just throttle the events anyway. Once your snake gets long enough, you can enclose other snakes in a loop and torture them as they face their impending demise. Fun times.
- jsmeaton 8y agoWe ran a hackday where we attempted to build a multiplayer snake over websockets using Django channels. I don’t think I touched on it in the write up, but websockets/tcp is the wrong choice for this kind of game. Write up: https://devblog.kogan.com/blog/kogame-django-channels https://devblog.kogan.com/blog/kogame-django-channels Game: https://kogame-snek.herokuapp.com/ https://kogame-snek.herokuapp.com/ Disclaimer: it’s not very good. It was a one day project.
- davewasthere 8y agoI'm surprised that Websockets is the wrong choice. What would be the right choice? WebRTC?
- jsmeaton 8y agoYes, UDP is needed, otherwise you get lockups. We incorrectly attributed rendering delays to react rendering rather than TCP.
- FrozenVoid 8y agoFew scripts for slither.io that enhance gameplay. http://void.wikidot.com/system:page-tags/tag/slither.io#pages http://void.wikidot.com/system:page-tags/tag/slither.io#page...
- snek 8y agowe need more snakes in programming
- deleted 8y ago[deleted]
- 0xBA5ED 8y agoThis could be appropriately called Snakes on a Plane. Sorry, couldn't resist.