No description
Find a file
2020-12-07 18:11:00 -08:00
.github Update main.yml 2020-07-29 10:49:50 -07:00
.gitignore Create .gitignore 2020-01-01 17:48:46 -08:00
feast.go New "feast" game mode (alpha) 2020-12-07 18:11:00 -08:00
feast_test.go New "feast" game mode (alpha) 2020-12-07 18:11:00 -08:00
go.mod init go module 2020-01-01 17:46:01 -08:00
go.sum Never spawn food within one move of any snake. 2020-11-10 13:00:13 -08:00
LICENSE Add standard LICENSE 2020-01-01 17:40:37 -08:00
README.md Update README.md 2020-09-07 09:03:10 -07:00
royale.go Rename "EliminatedByStarvation" > "EliminatedByOutOfHealth" 2020-09-10 12:00:56 -07:00
royale_test.go Rename "EliminatedByStarvation" > "EliminatedByOutOfHealth" 2020-09-10 12:00:56 -07:00
ruleset.go Fix function name and interface tests. 2020-05-17 14:38:39 -07:00
solo.go Add solo gameplay ruleset. 2020-05-17 14:29:30 -07:00
solo_test.go Fix function name and interface tests. 2020-05-17 14:38:39 -07:00
squad.go Rename TeamRuleset -> SquadRuleset 2020-07-21 14:58:56 -07:00
squad_test.go Rename "EliminatedByStarvation" > "EliminatedByOutOfHealth" 2020-09-10 12:00:56 -07:00
standard.go Add parameters for food spawn chance and min food. 2020-11-20 12:00:58 -08:00
standard_test.go Add parameters for food spawn chance and min food. 2020-11-20 12:00:58 -08:00

BattlesnakeOfficial/rules

codecov

Battlesnake rules and game logic, implemented as a Go module. Issues and contributions welcome!

FAQ

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 a result, the majority of engine code was concerned with scalable game execution and not the actual game rules. As part of that refactor we moved the game logic implementation 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).

Can I run games locally?

This was functionality that an older version of the game logic provided, including a release binary. We'd like to recreate that behaviour and include it in this repo, but for now it doesn't exist. See Issue #20 for more info.

The Y-Axis appears to be implemented incorrectly?

This is because the game rules implement an inverted Y-Axis. Older versions of the Battlesnake API operated this way, and several highly competitive Battlesnakes still rely on this behaviour and we'd still like to upport them. The current game engine accounts for this by translating the Y-Axis (or not) based on which version of the API each Battlesnake implements. More info here and here.

In the future we might switch this to make the rules easier to develop? But until we drop support for the older API version it doesn't make sense to make that change.