No description
Find a file
Torben 397d925110
DEV-765 pipeline refactor (#64)
Refactor rulesets into smaller composable operations

In order to mix up the functionality from different rulesets like Solo, Royale, etc. the code in these classes needs to be broken up into small functions that can be composed in a pipeline to make a custom game mode.
2022-03-16 16:58:05 -07:00
.github Update golangci-lint to 1.43.0 2022-01-10 22:26:45 +00:00
cli DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
client DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
test DEV 559: Refactor CLI and add customizations (#57) 2021-11-25 14:07:56 -08:00
.gitignore Bump to Go 1.17 2022-01-10 22:25:46 +00:00
.goreleaser.yml Working goreleaser. 2020-12-10 21:08:08 -08:00
board.go Remove equidistant food spawns that are closer to center. 2022-01-18 20:51:01 +00:00
board_test.go Remove equidistant food spawns that are closer to center. 2022-01-18 20:51:01 +00:00
cases_test.go DEV-765 add some additional tests (#65) 2022-03-15 16:41:39 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT (#36) 2021-04-05 22:34:36 -07:00
constrictor.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
constrictor_test.go DEV-765 add some additional tests (#65) 2022-03-15 16:41:39 -07:00
CONTRIBUTING.md Create CONTRIBUTING.md 2021-10-01 15:33:48 -07:00
go.mod Bump to Go 1.17 2022-01-10 22:25:46 +00:00
go.sum Bump to Go 1.17 2022-01-10 22:25:46 +00:00
LICENSE Add standard LICENSE 2020-01-01 17:40:37 -08:00
README.md Bump to Go 1.17 2022-01-10 22:25:46 +00:00
royale.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
royale_test.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
ruleset.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
ruleset_internal_test.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
ruleset_test.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
solo.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
solo_test.go DEV-765 add some additional tests (#65) 2022-03-15 16:41:39 -07:00
squad.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
squad_test.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
standard.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
standard_test.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
wrapped.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00
wrapped_test.go DEV-765 pipeline refactor (#64) 2022-03-16 16:58:05 -07:00

BattlesnakeOfficial/rules

codecov

Battlesnake rules and game logic, implemented as a Go module. This code is used in production at play.battlesnake.com. Issues and contributions welcome!

CLI for Running Battlesnake Games Locally

This repo provides a simple CLI tool to run games locally against your dev environment.

Installation

Download precompiled binaries here:
https://github.com/BattlesnakeOfficial/rules/releases

Install as a Go package. Requires Go 1.17 or higher. [Download]

go get github.com/BattlesnakeOfficial/rules/cli/battlesnake

Compile from source. Also requires Go 1.17 or higher.

git clone git@github.com:BattlesnakeOfficial/rules.git
cd rules
go build -o battlesnake ./cli/battlesnake/main.go

Usage

Example command to run a game locally:

battlesnake play -W 11 -H 11 --name <SNAKE_NAME> --url <SNAKE_URL> -g solo -v

For more details, see the CLI README.

FAQ

Can I run games locally?

Yes! See the included CLI.

How is this different from the old Battlesnake engine?

The old game engine was re-written in early 2020 to handle a higher volume of concurrent games. As part of that rebuild we moved the game logic into a separate Go module that gets compiled into the production engine.

This provides two benefits: it makes it much simpler/easier to build new game modes, and it allows the community to get more involved in game development (without the maintenance overhead of the entire game engine).

Feedback

  • Do you have an issue or suggestions for this repository? Head over to our Feedback Repository today and let us know!