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)
- TheApX/battlesnake-hungry (A simple hungry battlesnake that is able to reach Gold medal in Global Arena with detailed documentation and turorial)
- tphummel/bobby-witt (A snake with unit tests that can run locally and runs on Cloudflare workers)
- 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)
- Backstory of the Caterpillar BattleSnakes family (Journey and future plans of the developer of Hungry Caterpillar, Smart Caterpillar and test/educational The Very Hungry Caterpillar)
- 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)
- Entering the Battlesnake Arena (An introduction to Battlesnake using Rust for examples, by Thomas Weitzel)
- 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)
- TheApX/battlesnake-engine-cpp (Unofficial C++ implementation of BattleSnake rules and snake server)
- 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)
- NNUE-Pytorch ("Efficiently Updatable Neural Network" explained in the context of chess)
- 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!
See also Useful Algorithms from the official documentation, where folks are beginning to contribute more details on how these algorithms apply to Battlesnake specifically.
- 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)
- NNUE (A neural network-based evaluation function that runs efficiently on CPUs)
- Voronoi (Useful for estimating board area control)
- BattlesnakeArena by joshhartmann11 (A modified, terminal based, battle snake arena to bypass servers and have complete access to data)
- BattlesnakeTester by jfgodoy (An app to create tests for your battlesnakes using imported games from the arena)
- BattlesnakeTester by niecore (Smoke tests for Battlesnake behaviour)
- Board Generator by lworkman (A quick and dirty react-typescript app for battlesnake testing)
- Board Generator by Nettogrof (A fork based on lworkman's board generator, with some awesome updates)
- Game Download CLI (CLI tool to download battlesnake games in json format that can be sent directly to your battlesnake)
- Game Download Extension for Chrome (Chrome extension to download battlesnake games)
- Game Download Extension for Firefox (Firefox extension to download battlesnake games)
- Mojave by smallsco (A Battlesnake app for Windows/Mac/Linux supporting simultaneous play of snakes from 2017 and up, human players, built-in opponents, and more!)
- Snek-Spec by mike-anderson (Generates boards from ASCII plain text mockups, designed to be used in typescript spec testing or as a standalone command line tool)
- 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)
- The Very Hungry Caterpillar (Turotial on building a simple hungry snake that can reach Gold medal in Global Arena)
- 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)