AI VS AI - Street Fighter III
Description
DIAMBRA Arena is a software package featuring a collection of high-quality environments for Reinforcement Learning research and experimentation. It provides a standard interface to popular arcade emulated video games, offering a Python API fully compliant with OpenAI Gym/Gymnasium format, that makes its adoption smooth and straightforward.
It supports all major Operating Systems (Linux, Windows and MacOS) and can be easily installed via Python PIP, as described in the installation section below. It is completely free to use, the user only needs to register on the official website.
In addition, its GitHub repository provides a collection of examples covering main use cases of interest that can be run in just a few steps.
Main Features
All environments are episodic Reinforcement Learning tasks, with discrete actions (gamepad buttons) and observations composed by screen pixels plus additional numerical data (RAM values like characters health bars or characters stage side).
They all support both single player (1P) as well as two players (2P) mode, making them the perfect resource to explore all the following Reinforcement Learning subfields:
Available Games
Interfaced games have been selected among the most popular fighting retro-games. While sharing the same fundamental mechanics, they provide slightly different challenges, with specific features such as different type and number of characters, how to perform combos, health bars recharging, etc.
Whenever possible, games are released with all hidden/bonus characters unlocked.
Additional details can be found in the dedicated section of our Documentation.
Dead Or Alive ++ |
Street Fighter III 3rd Strike |
Tekken Tag Tournament |
Ultimate Mortal Kombat 3 |
Samurai Showdown 5 Special |
The King of Fighers '98 Ultimate Match Hero |
Marvel VS Capcom |
X-Men VS Street Fighter |
Soul Calibur |
Many more are coming soon...
Competition Platform
Our competition platform allows you to submit your agents and compete with other coders around the globe in epic video games tournaments!
It features a public global leaderboard where users are ranked by the best score achieved by their agents in our different environments.
It also offers you the possibility to unlock cool achievements depending on the performances of your agent.
Submitted agents are evaluated and their episodes are streamed on our Twitch channel.
Installation
Step 1
- Register on diambra.ai, Sign up and log in with your own account : diambra.ai
Step 2
- Install Docker Desktop
1. Linux: installation
2. Windows: installation
3. MacOS: installation
Make sure you have permissions to run it see here. On Linux, it’s usually enough to run
log out and log back in.
Step 3
- Create virtual environments and activate it.
sudo apt update
sudo apt upgrade -y
sudo apt -y install virtualenv
virtualenv -p python3 venv
cd venv/
source bin/activate
- Install DIAMBRA Command Line Interface make sure you have activate the venv before you execute following command:
Step 4
- Install DIAMBRA Arena
Step 5
- Download democode from GitHub
- Install dependencies with
make install
orpip install -r requirements.txt
,please refer to following commands:
cd venv/
git clone https://github.com/OpenGenerativeAI/llm-colosseum
cd llm-colosseum/
pip install -r requirements.txt
Step 6
- Create ROM dir and Download the ROM and put it in
~/.diambra/roms
foler. - Street Fighters III ROM zipped file: Download
mkdir -pv ~/.diambra/roms
cd ~/.diambra/roms/
wget http://mgy-slm-private.chinanorth3.cloudapp.chinacloudapi.cn/sfiii3n.zip
Step 7
-
Download Game ROM(s) and Check Validity
-
Check out available games:
Output extract:
[...]
Title: Dead Or Alive ++ - GameId: doapp
Difficulty levels: Min 1 - Max 4
SHA256 sum: d95855c7d8596a90f0b8ca15725686567d767a9a3f93a8896b489a160e705c4e
Original ROM name: doapp.zip
Search keywords: ['DEAD OR ALIVE ++ [JAPAN]', 'dead-or-alive-japan', '80781', 'wowroms']
Characters list: ['Kasumi', 'Zack', 'Hayabusa', 'Bayman', 'Lei-Fang', 'Raidou', 'Gen-Fu', 'Tina', 'Bass', 'Jann-Lee', 'Ayane']
[...]
Search ROMs on the web using Search Keywords provided by the game list command reported above. Pay attention, follow game-specific notes reported there, and store all ROMs in the same folder, whose absolute path will be referred in the following as your/roms/local/path
.
Specific game ROM files are required, check validity of the downloaded ROMs:
The output for a valid ROM file would look like:
Correct ROM file for Dead Or Alive ++, sha256 = d95855c7d8596a90f0b8ca15725686567d767a9a3f93a8896b489a160e705c4e
Make sure to check out our Terms of Use, and in particular Section 7. By using the software, you accept them in full.
Step 8
- Create a .env file and fill it with the content like in the .env.example file
- .env file will be like:
Step 9
- Run the arena with local models using Ollama.
- Make sure you have ollama installed, running, and with a model downloaded.
run
ollama run phi3
for example. - Run
make local
to start the fight or execute following command:
- If ROM file are not in
~/.diambra/roms/
location.
To execute the script run:
Replaces the
your/roms/local/path
if you put ROM file in other location. If you have already put ROM file in~/.diambra/roms/
folder, ignore-r
Options.
Examples
The examples/
folder contains ready to use scripts representing the most important use-cases, in particular:
- Single Player Environment
- Multi Player Environment
- Wrappers Options
- Episode Recording
- Episode Data Loader
These examples show how to leverage both single and two players modes, how to set up environment wrappers specifying all their options, how to record human expert demonstrations and how to load them to apply imitation learning. They can be used as templates and starting points to explore all the features of the software package.
Reinforcement Learning Libs Compatibility
DIAMBRA Arena is built to maximize compatibility will all major Reinforcement Learning libraries. It natively provides interfaces with the two most import packages: Stable Baselines 3 and Ray RLlib, while Stable Baselines is also available but deprecated. Their usage is illustrated in detail in the documentation and in the DIAMBRA Agents repository. It can easily be interfaced with any other package in a similar way.
Native interfaces, installed with the specific options listed below, are tested with the following versions:
- Stable Baselines 3 |
pip install diambra-arena[stable-baselines3]
(Docs - GitHub - Pypi): 2.1.* - Ray RLlib |
pip install diambra-arena[ray-rllib]
(Docs - GitHub - Pypi): 2.7.* - Stable Baselines |
pip install diambra-arena[stable-baselines]
(Docs - GitHub - Pypi): 2.10.2
References
- Documentation: https://docs.diambra.ai
- Paper: https://arxiv.org/abs/2210.10595
- Website: https://diambra.ai
- Discord: https://diambra.ai/discord
- Linkedin: https://www.linkedin.com/company/diambra
- Twitch: https://www.twitch.tv/diambra_ai
- YouTube: https://www.youtube.com/c/diambra_ai
- Twitter: https://twitter.com/diambra_ai
Terms of Use
DIAMBRA Arena software package is subject to our Terms of Use. By using it, you accept them in full.