A curated list of Battlesnake resources
NOTE: This list is now officially hosted by Battlesnake, you can find its new home here: https://github.com/BattlesnakeOfficial/awesome-battlesnake
You can still contribute if you follow that link. Huge thank you to everyone who has contributed!
Contributions welcome! Read the contribution guidelines first.
- Battlesnakes
- Developer Stories
- Game Rules and Logic
- Live Streamers
- Machine Learning and Data Science
- Starter Projects
- Strategies and Algorithms
- Third-Party Tools
- Tutorials
- Miscellaneous
- aleksiy325/snek-two
C++
- "asdf123", winner of Battlesnake Victoria 2018 Intermediate Division - altersaddle/untimely-neglected-wearable
Python
- A Python battlesnake featured as a strong opponent in the Brad and Joe Coding Badly live strea - bugabinga/battle_snake
Java
- A hand-rolled Battlesnake-AI-Server written for the JVM - ccSnake2018/ccsnake
Python
- cc snake on 2018 BattleSnake Competition - ChaelCodes/CorneliusCodes
Rust
- Cornelius, the Corn Snake who codes, is a Rusty Battlesnake Baby. - ChaelCodes/HettieCodes
Ruby
- An albino hognose battlesnake built using Ruby. Their arch-nemesis CorneliusCodes always takes valedictorian. - coreyja/battlesnake-rs
Rust
- A collection of many of Coreyja's battlesnakes, written in Rust - csauve/bookworm
Rust
- A BattleSnake bot for 2020. Available to challenge in public snake search - Flipez/battlesnake
Crystal
- Battlesnake 2018 Crystal Implementation - graeme-hill/snakebot
C++
- Team Graeme & Chris, winner of Battlesnake Victoria 2018 Expert Division, see post-mortem in Developer Stories - hirethissnake/2017
Python
- A Python AI for competition in the BattleSnake 2017 competition - jackisherwood/battleSnakeElon
JavaScript
- Snake that was entered in Battle Snake 2019 - JerryKott/Battlesnake2017
Smalltalk
- Repository for the battlesnake.io competition code written in Cincom Smalltalk - jhawthorn/snek
Ruby
- A battlesnake in Ruby, with C extensions - joenash/blockly-snake
HTML/JS
- Blockly Battlesnake; That's right, a battlesnake made using Blockly's visual programming framework. Legendary idea! - joshhartmann11/battlejake
Python
- Battlejake is an if-else snake - joshhartmann11/battleJake2019
Python
- Python, 2019 - kentmacdonald2/battle-snake-2017
Python
- 2017 Battlesnake Advanced Division Entry - Aggressive A-Star based implementation - L4r0x/snork
Rust/Python
- Fast battlesnake agents written in rust. - m-schier/battlesnake-2019
C#
- 2nd Intermediate Division @ Battlesnake 2019, Victoria by Team "Niedersächsische Kreuzotter" - McRaeAlex/RustySnake
Rust
- A battleSnake written in rust - miroesli/psscscs
Python
- Reinforcement Learning Battlesnake - MorganConrad/Sisiutl
JavaScript
- An aggressive Battlesnake written for NodeJS / Express - MorganConrad/tantilla
JavaScript
- Battlesnake written in node / micro - moxuz/Battlesnake-AI-2017
Python
- One Of Four Sendwithus Bounty Snakes - nbw/battlesnake_crystal
Crystal
- A bounty battlesnake written in Crystal - nbw/battlesnake
Ruby
- Ruby Battle Snake, 2017 - Nettogrof/Battlesnake-Nessegrev-Julia
Julia
- Battlesnake written in julia - Nettogrof/nessegrev-java-dev
Java
- Source code of Nessegrev snakes. - noahspriggs/battlesnake-python
Python
- TR-8R SnEk, winner of Battlesnake Victoria 2016 Advanced Division - OliverMKing/Battlesnake
Python
- My Battlesnake AI programmed in Python3 - pambrose/battlesnake-examples
Kotlin
- Battlesnake Quickstart Snake Examples - Petah/battle-snake-project-z
TypeScript
- A Battlesnake AI written in Javascript for NodeJS. - rdbrck/battlesnake-2017-btas
Python
- Better than Aleksiy's Snake, winner of Battlesnake Victoria 2017 Advanced Division - rdbrck/bountysnake2017
Lua
- Redbrick's bounty snake in 2017, went 42-3, see post-mortems in Developer Stories - rdbrck/bountysnake2018
Lua
- Redbrick's bounty snake in 2018, went 71-3, see see post-mortems in Developer Stories and design talk - ronaldosvieira/cobrinha
JavaScript
- Playing Battlesnake with reinforcement learning - smallsco/robosnake
Lua
- A port of Redbrick's Robosnake to the 2019 API with some minor enhancements - Spenca/BattleSnake2017
Python
- Vulture Snake, created for BattleSnake 2017 - tbgiles/FeistySnake-2019
Python
- A competition AI for the BattleSnake 2019 programming competition - Tch1b0/Esproso
Go
- A Battlesnake made in Go - The main goal of Esproso is to survive - TheApX/battlesnake-hungry
C++
- A simple hungry battlesnake that is able to reach Gold medal in Global Arena with detailed documentation and turorial - tim-hub/awesome-snake
Python
- This is battle snake bot in Flask, PostgreSql - ToucheSir/reinforced-snake
Python
- Reinforcement Learning, "In which we try to crack a walnut with a jackhammer" - tphummel/bobby-witt
JavaScript
- A snake with unit tests that can run locally and runs on Cloudflare workers - tyrelh/battlesnake-python
Python
- A BattleSnake AI Written in Python - tyrelh/battlesnake2018
Python
- BattleSnake AI server written in Python - tyrelh/battlesnake2019
JavaScript
- Battlesnake 2019 AI written in NodeJS. - woofers/battlesnake
Java
- Battlesnakes for 2018, 2019 and 2020 - Xe/since
Nim
- .i le mi nundambysince (Editor's translation to English: "My battlesnake") - xtagon/nagini
Elixir
- Battlesnake AI written in Elixir, 2019 - zacpez/scape-goat
Go
- Scape goat is a battle snake written in Go, and planned to be deployed on heroku when in battle. - zakwht/battlesnake-2018
Java
- 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
Go
- Battlesnake Game Rules and Logic - hughrawlinson/battlesnake
TypeScript
- Typescript/Javascript project generator, wrapper library, types, and dev tools - TheApX/battlesnake-engine-cpp
C++
- Unofficial C++ implementation of BattleSnake rules and snake server - TheMrSheldon/libsnake
C++
- The aim of libsnake is to provide an intuitive and fast library for simulating snake games. C++ - xtagon/battlesnake-rules-wasm
Go
- Experimental WebAssembly port of the Battlesnake rules - xtagon/Snek
Elixir
- Battlesnake-compatible rulesets and board positions in Elixir
These people live stream their Battlesnake adventures, let's show our support!. This is definitely not an exhaustive list, just a few that I have noticed are more active. Be sure to search for the "battlesnake" keyword on Twitch, and check the #livestreams announcement channel in Battlensake's Discord to find new streamers.
- ChaelCodes - ChaelCodes is a professional developer who likes "to live-code and play programming-adjacent games" - notably having streamed development on the snakes HettieCodes and CorneliusCodes, but has a variety of other projects.
- coreyja - Rust, Ruby, Battlesnake!
- defiines - Sometimes streams Battlesnake, Codewars, and more! Creator of the NES gamepad-controlled Battlesnake.
- geehlive - Developer advocate at Twilio and passionate about open source software.
- penelope_zone - Penelope (She/Her or They/Them pronouns) has been known to stream development of Rust battlesnakes, and has been very open about discussing interesting algorithms such as MCTS in the community
- ArthurFirmino/Gym-Battlesnake
C++
- 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
Python
- "Efficiently Updatable Neural Network" explained in the context of chess - Rainyforest/battlesnake_2020
Python
- 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, Nettogrof, EnderInvader - A react-typescript app for Battlesnake board visualization, now with Arcade Maze support!
- 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
- Game Simulator by penelopezone - A Rust crate to represent game types in the game of battlesnake
- Instant Observability Dashboard by New Relic - A tool you can use to monitor your Battlesnake server, including ensuring your server is compliant with the game's server requirements and that your Battlesnake is set up for success!
- Logging Proxy by penelopezone - A proxy server that sits between your Battlesnake and the Battlesnake Servers to save all request data to a local DB. Was built on this episode of Battlesnake's Deep Learning
- 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
- How to Monitor your Battlesnake with New Relic - This Quick Start Guide and accompanying video tutorial will help you begin instrumenting and monitoring your Battlesnake with New Relic platform
- 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 Python by Battling Bots - Full setup and strategies by ClarityCoders, featuring Python and Replit. Great for beginners!
- Learning to build an Express API for Battlesnake - How to build a basic Battlesnake HTTP server using NodeJS and Express
- Minimax in Battlesnake - An excellent explaination by Coreyja of Minimax, MaxN, and related algorithms, with neat visualizations for both Tic Tac Toe and Battlesnake
- 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
- Text Your Battlesnake's Progress with Twilio - This project allows developers to see their snake's progress in a league at regular interval using Twilio - because it's super easy to get messages sent to your phone)
- The Very Hungry Caterpillar - Turotial on building a simple hungry snake that can reach Gold medal in Global Arena
- Using Dijkstra's Algorithm for Battlesnake - By the end of this tutorial you will have a simple Battlesnake who will use Dijkstra's Algorithm to find the shortest path to food. Intended to be a second-step for a dev beginning to create their snake, after they have followed Battlesnake's initial tutorials
- Challenges - Tips & tricks - Tips & tricks for Battlesnake challenges
- ChatSnek - Chat plays Battlesnake on Twitch
- Hosting Credit from Digital Ocean - $100 in credits from 2022 Competitive Season Partner Digital Ocean for hosting a Battlesnake Server
- Musical Battlesnake Ballad by Luke Mitchell (aka exzizt) - Canadian Artist Luke Mitchell composed this epic ballad for the 2019 Battlesnake Victoria, British Columbia competition
- SnakeLED - A Raspberry Pi Powered Battlesnake Viewer
- Sorting Hat by Nicholas Carrigan - Sorting Hat for BattleSnake 2021 Summer League, where participants chose their favorite "caster houses" to support