Bomberland is a multi-agent AI competition inspired by the classic console game Bomberman.
Teams build intelligent agents using strategies from tree search to deep reinforcement learning. The goal is to compete in a 2D grid world collecting power-ups and placing explosives to take your opponent down.
This repo contains starter kits for working with the game API.
See: Documentation
- Clone or download this repo (including both
base-compose.yml
anddocker-compose.yml
files). - To connect agents and run a game instance, run from the root directory:
docker-compose up --abort-on-container-exit --force-recreate
docker-compose -f open-ai-gym-wrapper-compose.yml up --force-recreate --abort-on-container-exit
Kit | Link | Description | Up-to-date? | Contributed by |
---|---|---|---|---|
Python3 | Link | Basic Python3 starter | ✅ | Coder One |
Python3-fwd | Link | Includes example for using forward model simulator | ✅ | Coder One |
Python3-gym-wrapper | Link | Open AI Gym wrapper | ✅ | Coder One |
TypeScript | Link | Basic TypeScript starter | ❌ | Coder One |
TypeScript-fwd | Link | Includes example for using forward model simulator | ❌ | Coder One |
Go | Link | Basic Go starter | ✅ | dtitov |
C++ | Link | Basic C++ starter | ✅ | jfbogusz |
Contributions for Bomberland starter kits in other languages (as well improvements to existing starter kits) are welcome!
Starter kits in new languages should implement the simulation logic for handling game state updates (see example) and follow the validation schema.
For any help, please contact us directly on Discord or via email.
Ver. | Changes | Date | Binary |
---|---|---|---|
1608 | Inject game_id into game state | 18th Dec 2021 | Link |
1555 | Changes to support open ai gym wrapper | 6th Dec 2021 | Link |
1523 | Forward model bug fixes + unit move blocking on moving to same cell + reset game with a set world and prng seed (See: Docs) | 29th Nov 2021 | Link |
1065 | Added UNITS_PER_AGENT environment flag (See: Docs) |
9th Oct 2021 | - |
974 | Added functionality:
|
18th Sep 2021 | Link |
Join our community on Discord.
Please let us know of any bugs or suggestions by raising an Issue.