update readme
Some checks are pending
Test / Format (gofmt) (push) Waiting to run
Test / Lint (golangci-lint) (push) Waiting to run
Test / Test (go test) (push) Blocked by required conditions
Test / Build CLI (go install) (push) Blocked by required conditions

This commit is contained in:
Bhavnoor Singh Saroya 2025-08-18 23:39:45 -07:00
parent 3e8a4b8f87
commit 137adee58b

View file

@ -1,9 +1,9 @@
# BattlesnakeOfficial/rules # Custom battlesnake game engine implementation
[![codecov](https://codecov.io/gh/BattlesnakeOfficial/rules/branch/master/graph/badge.svg)](https://codecov.io/gh/BattlesnakeOfficial/rules)
[Battlesnake](https://play.battlesnake.com) rules and game logic, implemented as a Go module. This code is used in production at [play.battlesnake.com](https://play.battlesnake.com). Issues and contributions welcome! [Battlesnake](https://play.battlesnake.com) rules and game logic, implemented as a Go module. This code is used in production at [play.battlesnake.com](https://play.battlesnake.com). Issues and contributions welcome!
play.battlesnake.com custom games are not working at the time of this commit, this custom implementation can be hosted and allows for games to be stored to a relational database, it is accompanied by a second server that can read and serve from the db, while maintaining full compatibility with the battlesnake gameboard
## CLI for Running Battlesnake Games Locally ## CLI for Running Battlesnake Games Locally
@ -28,6 +28,8 @@ go build -o battlesnake ./cli/battlesnake/main.go
### Usage ### Usage
Run the hosting with ./battlesnake host
Example command to run a game locally: Example command to run a game locally:
``` ```
battlesnake play -W 11 -H 11 --name <SNAKE_NAME> --url <SNAKE_URL> -g solo -v battlesnake play -W 11 -H 11 --name <SNAKE_NAME> --url <SNAKE_URL> -g solo -v
@ -40,14 +42,16 @@ For more details, see the [CLI README](cli/README.md).
### Can I run games locally? ### Can I run games locally?
Yes! [See the included CLI](cli/README.md). Yes! [See the included CLI](cli/README.md). Local games will output different json than the official cli in an effort to improve consistency with the api.
### How is this different from the old Battlesnake engine? ### How is this different from the old Battlesnake engine?
The [old game engine](https://github.com/battlesnakeio/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. The [old game engine](https://github.com/battlesnakeio/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). Yet the current implementation is designed around running 1 game at a time, and will require further modification for true concurrency.
### Feedback ### Feedback
* **Do you have an issue or suggestions for this repository?** Head over to our [Feedback Repository](https://play.battlesnake.com/feedback) today and let us know! * **Do you have an issue or suggestions for this repository?** Head over to our [Feedback Repository](https://play.battlesnake.com/feedback) today and let us know!