Giter VIP home page Giter VIP logo

sagemaker-battlesnake-ai's Introduction

BLOG POST DOCUMENTATION : Consider reading our detailed blog posts about this project:

Amazon SageMaker for Battlesnake AI

This project shows how to build and deploy an AI for the platform Battlesnake on AWS with Amazon Sagemaker!

It is ready to deploy and contains learning materials for AI enthusiasts.

What is Battlesnake? (taken from battlesnake.com):

Battlesnake is an autonomous survival game where your snake competes with others to find and eat food without being eliminated. To accomplish this, you will have to teach your snake to navigate the serpentine paths created by walls, other snakes, and their own growing tail without running out of energy.

Intention

This project contains a ready-to-use AI for Battlesnake as well as a development environment that can be used to modify and improve the AI. The included AI makes movement decisions in two steps:

  1. Run a Neural Network Model
  2. Run Heuristics (ie: additional code that can override the neural network's predicted best action so that your snake avoids colliding with walls, eats food if it is safe to do so, attempts to eat a competitor snake, ...)

Several pre-trained neural network models are provided within this project as well as some default heuristics. These pre-trained models (snakes) are not designed to win the Battlesnake competition, so you'll have to improve them in order to have a chance of winning. The training environment is provided for you to make modifications and to retrain the neural network models in order to obtain better results.

Project Organisation

This project can be used in three steps:

  • Step 1 - Deploy a Snake : Deploy a snake with pre-trained AI. After this step, you'll be able to participate in a Battlesnake game! Don't skip this step! (This step also deploys a local environment which is needed for the following steps.)
  • Step 2 - Build some Heuristics : Write some rules for your snake to navigate common scenarios, visualize your snake, and publish the upgraded version of your snake!
  • Step 3 - Upgrade your Reinforcement Learning Model : This is the most rewarding step. Retrain your snake with different settings, visualize your snake, and publish an upgraded version!

Reinforcement learning packages

Architecture

If you use Steps 1-3, you will have the following deployed within your AWS account:

General Architecture

Cost

This project has been designed to run within the AWS free tiers for some time. Refer to each step above in order to understand the costs that may be incurred after the free tiers are exceeded.

Content

The included Jupyter notebooks are bundled with a step-by-step Battlesnake visualizer:

Battlesnake visualizer

With the Battlesnake visualizer, you can load any initial state and test how your snake will behave in various situations (See the Visualize your algorithm section for the full list of features.)

The source code of the project is organized as follows:

deployment                              # contains the templates and scripts to automate deployment
	> 
source                     
	> MXNetEnv                          # training environment with the MXNet implementation (deprecated - for reference only)
	> BattlesnakeGym					# openAI gym to simulate the battlesnake environment
	> RLlibEnv      					# contains the Jupyter notebook for model training and heuristics development
    > training           			    # contains source code for training
    > inference             			# contains source code for inference

License

This project is licensed under the Apache-2.0 License.

sagemaker-battlesnake-ai's People

Contributors

xavierraffin avatar jonomon avatar 5cp avatar dependabot[bot] avatar phossen avatar vishaalkapoor avatar crostoker avatar sbathgate avatar bmitch avatar jbnunn avatar johncalhoun avatar jonchung111 avatar xtagon avatar kshahzada avatar pelirrojo avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.