A curated list of Battlesnake resources
Contributions welcome! Read the contribution guidelines first.
- Battlesnakes
- Developer Stories
- Game Rules and Logic
- Machine Learning and Data Science
- Starter Projects
- Strategies and Algorithms
- Third-Party Tools
- Tutorials
- Miscellaneous
- aleksiy325/snek-two ("asdf123", winner of Battlesnake Victoria 2018 Intermediate Division)
- altersaddle/untimely-neglected-wearable (A Python battlesnake featured as a strong opponent in the Brad and Joe Coding Badly live stream)
- bugabinga/battle_snake (A hand-rolled Battlesnake-AI-Server written for the JVM)
- ccSnake2018/ccsnake (cc snake on 2018 BattleSnake Competition)
- com/tim-hub/awesome-snake (This is battle snake bot in Flask, PostgreSql)
- com/ToucheSir/reinforced-snake (Reinforcement Learning, "In which we try to crack a walnut with a jackhammer")
- csauve/bookworm (A BattleSnake bot for 2020. Available to challenge in public snake search)
- Flipez/battlesnake (Battlesnake 2018 Crystal Implementation)
- fuele/battlensake (Implementation of the battlesnake.io API in order to get those sweet, sweet victories)
- graeme-hill/snakebot (Team Graeme & Chris, winner of Battlesnake Victoria 2018 Expert Division, see post-mortem in Developer Stories)
- hirethissnake/2017 (A Python AI for competition in the BattleSnake 2017 competition)
- jackisherwood/battleSnakeElon (Snake that was entered in Battle Snake 2019)
- JerryKott/Battlesnake2017 (Repository for the battlesnake.io competition code written in Cincom Smalltalk)
- jhawthorn/snek (A battlesnake in Ruby, with C extensions)
- joshhartmann11/battlejake (Battlejake is an if-else snake)
- joshhartmann11/battleJake2019 (Python, 2019)
- kentmacdonald2/battle-snake-2017 (2017 Battlesnake Advanced Division Entry - Aggressive A-Star based implementation)
- L4r0x/snork (Fast battlesnake agents written in rust.)
- m-schier/battlesnake-2019 (2nd Intermediate Division @ Battlesnake 2019, Victoria by Team "Niedersächsische Kreuzotter")
- McRaeAlex/RustySnake (A battleSnake written in rust)
- miroesli/psscscs (Reinforcement Learning Battlesnake)
- MorganConrad/Sisiutl (An aggressive Battlesnake written for NodeJS / Express)
- MorganConrad/tantilla (Battlesnake written in node / micro)
- moxuz/Battlesnake-AI-2017 (One Of Four Sendwithus Bounty Snakes)
- nbw/battlesnake_crystal (A bounty battlesnake written in Crystal)
- nbw/battlesnake (Ruby Battle Snake, 2017)
- Nettogrof/Battlesnake-Nessegrev-Julia (Battlesnake written in julia)
- Nettogrof/battlesnake-nessegrev (Release of all Nessegrev snakes binairies)
- Nettogrof/nessegrev-java-dev (Source code of Nessegrev snakes.)
- noahspriggs/battlesnake-python (TR-8R SnEk, winner of Battlesnake Victoria 2016 Advanced Division)
- OliverMKing/Battlesnake (My Battlesnake AI programmed in Python3)
- pambrose/battlesnake-examples (Battlesnake Quickstart Snake Examples)
- Petah/battle-snake-project-z (A Battlesnake AI written in Javascript for NodeJS.)
- rdbrck/battlesnake-2017-btas (Better than Aleksiy's Snake, winner of Battlesnake Victoria 2017 Advanced Division)
- rdbrck/bountysnake2017 (Redbrick's bounty snake in 2017, went 42-3, see post-mortems in Developer Stories)
- rdbrck/bountysnake2018 (Redbrick's bounty snake in 2018, went 71-3, see see post-mortems in Developer Stories and design talk)
- ronaldosvieira/cobrinha (Playing Battlesnake with reinforcement learning)
- smallsco/robosnake (A port of Redbrick's Robosnake to the 2019 API with some minor enhancements)
- Spenca/BattleSnake2017 (Vulture Snake, created for BattleSnake 2017)
- tbgiles/FeistySnake-2019 (A competition AI for the BattleSnake 2019 programming competition)
- tyrelh/battlesnake-python (A BattleSnake AI Written in Python)
- tyrelh/battlesnake2018 (BattleSnake AI server written in Python)s
- tyrelh/battlesnake2019 (Battlesnake 2019 AI written in NodeJS.)
- woofers/battlesnake (Battlesnakes for 2018, 2019 and 2020)
- Xe/since (.i le mi nundambysince) (Editor's translation to English: "My battlesnake")
- xtagon/nagini (Battlesnake AI written in Elixir, 2019)
- zakwht/battlesnake-2018 (Java BattleSnake)
- Battlesnake: The Rusty Tapeworm Chronicles (Background on The Rusty Tapeworm's experience in the 2020 Battlesnake Saskatchewan Tournament)
- Battling the Snake: A Tournament Retrospective (Journey, Lessons Learned, and Future Plans from a Developer following a Battlesnake Tournament Experience)
- Building an AI for Battlesnake (A post-mortem from the winner of the Battlesnake Victoria 2018 Expert Division)
- Building the Bounty Snake (A post-mortem from 2017 describing techniques and challenges in creating Redbrick Robosnake, including creating their own arena!)
- Can’t stop the snake in Port Townsend, Washington USA (Port Townsend Leader showcases a local program teaching kids how to create their own Battlesnakes)
- Live-Streaming Battlesnake on a Budget (Awesome insights into the Twitch live-streaming setup for the 2019 Battlesnake Victoria Tournament)
- Nettogrof BattleSnake Blog (Blog posts about Battlesnake)
- Son of Robosnake: an Aggressive Bounty Snake (A post-mortem for the 2018 bounty snake called Son of Robosnake, from Redbrick)
- BattlesnakeOfficial/rules (Battlesnake Game Rules and Logic)
- xtagon/battlesnake-rules-wasm (Experimental WebAssembly port of the Battlesnake rules)
- xtagon/Snek (Battlesnake-compatible rulesets and board positions in Elixir)
- ArthurFirmino/Gym-Battlesnake (Multi-agent reinforcement learning environment)
- Battlesnake Post Mortem by Asymptotic Labs (Using a desktop GPU to top the global arena in under a week)
- Exploring Data From Battlesnake Tournament Games (Article exploring various stats across all games run during the 2019 Battlesnake Victoria Tournament)
- Rainyforest/battlesnake_2020 (Simple environment for machine learning training, and A* for food finding)
- Scaling your AI-powered Battlesnake with distributed reinforcement learning in Amazon SageMaker
Battlesnake has an official list of starter projects, including those from the community. This section is reserved for any notable project templates that haven't made that list.
This is not exhaustive--these topics are ones that members of the Battlesnake community have decided to share that they use for their snakes. Juicy secrets!
- A* (A-star) (A graph traversal and path search algorithm)
- Flood Fill (An algorithm that helps determine areas that are open/connected)
- Minimax (A tree search algorithm popular among battlesnakes, often paired with Alpha-beta pruning)
- Monte Carlo tree search (MCTS) (A tree search algorithm with many variants, sometimes using random rollouts and Upper Confidence Trees)
- Voronoi (Useful for estimating board area control)
- Battlesnake Downloader (Firefox extension to download battlesnake games)
- cbinners/battlesnake-download-tool (Chrome Extension to download game states for Battlesnake)
- joshhartmann11/BattleSnakeArena (A modified, terminal based, battle snake arena to bypass servers and have complete access to data)
- lworkman/battle-snake-board-generator (A quick and dirty react-typescript app for battlesnake testing)
- Nettogrof/battle-snake-board-generator (A fork based on lworkman's board generator, with some awesome updates)
- niecore/BattlesnakeTester (Smoke tests for Battlesnake behaviour)
- smallsco/mojave (A Battlesnake app for Windows/Mac/Linux supporting simultaneous play of snakes from 2017 and up, human players, built-in opponents, and more!)
- Stats Tracker (Dashboard to follow your snake rating throughout time. Username/password: tester)
- Code a BattleSnake and compete with your friends - Eddie Jaoude (A video on getting started with Battlesnake, the TypeScript starter snake, and Codespaces)
- Learn to Battlesnake - Fork by Nettogrof (A fork of Learn to Battlesnake bringing it up to date with Battlesnake API v1)
- Learn to Battlesnake - Original by Colin Walker (An interactive tutorial with live Battlesnake coding goodness!)
- Learning to build an Express API for Battlesnake (How to build a basic Battlesnake HTTP server using NodeJS and Express)
- Preparing to Compete in a Battlesnake Tournament (Primer on programming a snake that can at least sort of stand on its own two, metaphorical, legs)
- Challenges - Tips & tricks (Tips & tricks for Battlesnake challenges)
- ChatSnek (Chat plays Battlesnake on Twitch)
- Musical Battlesnake Ballad by Luke Mitchell (aka exzizt) (Canadian Artist Luke Mitchell composed this epic ballad for the 2019 Battlesnake Victoria, British Columbia competition)