MazeExplorer
MazeExplorer is a customisable 3D benchmark for assessing generalisation in Reinforcement Learning.
Simply put, MazeExplorer makes it easy to create separate training and test environments for your agents.
It is based on the 3D first-person game Doom and the open-source environment VizDoom.
This repository contains the code for the MazeExplorer Gym Environment along with the scripts to generate baseline results. The paper can be found here.
By Luke Harries*, Sebastian Lee*, Jaroslaw Rzepecki, Katja Hofmann, and Sam Devlin.
- Joint first author
The Mission
The goal is to navigate a procedurally generated maze and collect a set number of keys.
The environment is highly customisable, allowing you to create different training and test environments.
The following features of the environment can be configured:
- Unique or repeated maps
- Number of maps
- Map Size (X, Y)
- Maze complexity
- Maze density
- Random/Fixed keys
- Random/Fixed textures
- Random/Fixed spawn
- Number of keys
- Environment Seed
- Episode timeout
- Reward clipping
- Frame stack
- Resolution
- Action frame repeat
- Actions space
- Specific textures (Wall,
ceiling, floor) - Data Augmentation
Example Usage
from mazeexplorer import MazeExplorer
train_env = MazeExplorer(number_maps=1,
size=(15, 15),
random_spawn=True,
random_textures=False,
keys=6)
test_env = MazeExplorer(number_maps=1,
size=(15, 15),
random_spawn=True,
random_textures=False,
keys=6)
# training
for _ in range(1000):
obs, rewards, dones, info = train_env.step(train_env.action_space.sample())
# testing
for _ in range(1000):
obs, rewards, dones, info = test_env.step(test_env.action_space.sample())
Installation
- Install the dependencies for VizDoom: Linux, MacOS or Windows.
pip3 install virtualenv pytest
- Create a virtualenv and activate it
virtualenv mazeexplorer-env
source maze-env/bin/activate
- Git clone this repo
git clone https://github.com/microsoft/MazeExplorer
- cd into the repo:
cd MazeExplorer
- Pull the submodules with
git submodule update --init --recursive
- Install the dependencies:
pip3 install -e .
- Run the tests:
bash test.sh
Baseline experiments
The information to reproduce the baseline experiments is shown in baseline_experiments/experiments.md
.
Citation
If you use this environment please cite the following:
@article{harrieslee2019, title={MazeExplorer: A Customisable 3D Benchmark for Assessing Generalisation in Reinforcement Learning}, author={Harries*, Luke and Lee*, Sebastian and Rzepecki, Jaroslaw and Hofmann, Katja and Devlin, Sam}, journal={In Proc. IEEE Conference on Games}, year={2019} }