Download DIAMBRA Environment

GET DIAMBRA

The time has come: DIAMBRA Environment is finally available for download! Built with the OpenAI-Gym standard, is super easy to interface and use. Are your ready to take up the challenge, train your AI algorithm and compete for the championship?

GitHub Public Repo

REQUIREMENTS

Hardware

  • (*) 16 Gb RAM
  • (*) 4 Gb GPU

Operating System

  • Linux Mint 19 or newer
  • Linux Ubuntu 18 or newer

OS Packages

  • Mint 19 / Ubuntu 18
    • sudo apt-get install libboost1.65-dev libssl-dev libsdl2-ttf-dev
  • Mint 20 / Ubuntu 20
    • sudo apt-get install libboost1.71-dev libboost-system1.71-dev libssl-dev libsdl2-ttf-dev
  • (*) Mint / Ubuntu
    • sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev

Python Packages

To create a working python environment allowing to successfully execute all examples, first install your virtual environment manager of choice, then execute:

  • virtualenv / pip
    • python3 -m venv env
    • source env/bin/activate
    • pip install -r diambraPipRequirements.txt
  • conda
    • conda create --name envName --file diambraCondaRequirements.txt

For a manual python packages installation, you need to install the following packages:

  • pip install jupyter opencv-python gym
  • (*)(**) pip install stable-baselines[mpi]

Repository content

SHA256 for each rom are found in the json file inside the roms/ folder

(*)  Specific for PPO Algorithm (based on Stable Baselines Reinforcement Learning library)

(**) For additional details on Stable Baselines dependencies, visit their documentation here.

GETTING STARTED

General advice

  • Make sure you are connected to the Internet when running the environment
  • Extract mame binary contained in mame/mame.zip archive and place it inside mame/ folder
  • Rename DIAMBRA Environment library file inside diambraEnvLib/ folder:
    • Mint 19 / Ubuntu 18: rename libdiambraEnv18.so to libdiambraEnv.so
    • Mint 20 / Ubuntu 20: rename libdiambraEnv20.so to libdiambraEnv.so
  • Download games roms and place them in a folder of choice
    • WARNING #1: Downloading roms can be illegal depending on different conditions and country. It is your sole and only responsibility to make sure you respect the law. More info can be found here.
    • WARNING #2: Only a specific rom will work for each game. It is uniquely identified by means of its SHA256 sum value. Check it with the specific shell command:

      sha256sum path-to-file

  • Absolute base path inside Jupyter Notebooks has to be updated accordingly to where you extracted/cloned the repository
  • Paths to mame/ and diambraEnvLib/ folders are needed, if you move them from the downloaded archive, make sure to update them accordingly
  • Watch our tutorials you find below for a step by step walkthrough
  • Join our Discord server to interact with other developers and share ideas and questions, or simply have a chat!

TRAIN YOUR AGENT AND TAKE PART IN DIAMBRA TOURNAMENT

Want to try to win the championship? Register here.

TUTORIALS

Below you find a collection of our tutorials on DIAMBRA Environment usage.
They provide a step by step walkthrough, allowing a super straightforward familiarization with all main DIAMBRA aspects. Starting from the usage of the simple OpenAI Gym standard interface, up to the complete setup of a Reinforcement Learning model ready to be trained, they cover a wide range of fundamental AI topics.


Tutorial #1 | Getting started with DIAMBRA Gym interface

Tutorial #2 | Gym Wrappers (Part 1)

Tutorial #3 | Gym Wrappers (Part 2)

Tutorial #4 | Coding a State of the Art AI Algorithm (Part 1)

Tutorial #5 | Coding a State of the Art AI Algorithm (Part 2)

Tutorial #6 | Imitation Learning - Experience Recording Wrapper

Tutorial #7 | Imitation Learning - Special Gym Environment (Part 1 - Live from Abu Dhabi!)

Tutorial #8 | Imitation Learning - Special Gym Environment (Part 2 - Live from Abu Dhabi!)