Skip to content

Bomberland: a multi-agent AI competition based on Bomberman. This repository contains both starter / hello world kits + the engine source code

License

Notifications You must be signed in to change notification settings

CoderOneHQ/bomberland

Repository files navigation

Engine Version

Bomberland engine + starter kits

About

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 engine + the engine source!

Bomberland multi-agent environment

Contributing

Contributions are always welcome, see our contribution guidelines here

Usage

Basic usage

See: Documentation

  1. Clone or download this repo (including both base-compose.yml and docker-compose.yml files).
  2. To connect agents and run a game instance, run from the root directory:
docker-compose up --abort-on-container-exit --force-recreate
  1. While the engine is running, access the client by going to http://localhost:3000/ in your browser (may be different depending on your settings).
  2. From the client, you can connect as a spectator or agent (to play as a human player)

Open AI gym wrapper (experimental)

docker-compose -f open-ai-gym-wrapper-compose.yml up --force-recreate --abort-on-container-exit

Starter kits

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
Rust Link Basic Rust starter K-JBoon

Discussion and Questions

Join our community on Discord.

Please let us know of any bugs or suggestions by raising an Issue.

Changelog

See changelog here