领英 • Discord • Twitch • YouTube • Twitter
DIAMBRA Arena
目录
概述
DIAMBRA Arena是一个软件包,包含一系列用于强化学习研究和实验的高质量环境。它为流行的街机模拟视频游戏提供了标准接口,提供完全兼容OpenAI Gym/Gymnasium格式的Python API,使其使用变得简单直接。
它支持所有主要操作系统(Linux、Windows和MacOS),并且可以通过Python PIP轻松安装,详见下方的**安装部分。它完全免费使用**,用户只需要在官方网站注册。
此外,它还附带全面的文档,本仓库提供了涵盖主要用例的示例集合,只需几个步骤即可运行。
主要特性
所有环境都是情节性强化学习任务,具有离散动作(游戏手柄按钮)和由屏幕像素加上特定RAM状态(如角色生命条或角色舞台位置)组成的观察。
它们同时支持单人(1P)和双人(2P)模式,使其成为探索以下所有强化学习子领域的完美资源:
标准强化学习 | 竞争性 多智能体 | 竞争性 人机对抗 | 自我对弈 | 模仿学习 | 人机协作 |
可用游戏
接口游戏是从最受欢迎的格斗复古游戏中精选而来。虽然它们共享相同的基本机制,但提供了略微不同的挑战,具有特定功能,如不同类型和数量的角色、如何执行连击、生命条充能等。
在可能的情况下,游戏会解锁所有隐藏/奖励角色。
更多详细信息可以在我们文档的专门章节中找到。
生死格斗++ | 街头霸王III 3rd Strike | 铁拳 Tag Tournament | 终极 真人快打3 | 侍魂 晓 特别版 | 拳皇'98 终极之战 英雄版 |
漫画英雄 对战 卡普空 | X战警 对战 街头霸王 | 灵魂能力 |
更多游戏即将推出...
竞赛平台
我们的竞赛平台允许您提交您的智能体,并与全球其他程序员在史诗级视频游戏锦标赛中一决高下!
它设有一个公开的全球排行榜,根据用户的智能体在我们不同环境中取得的最佳分数对用户进行排名。
根据您智能体的表现,它还为您提供了解锁酷炫成就的机会。
提交的智能体将被评估,其游戏回合将在我们的Twitch频道上直播。
我们致力于使提交过程尽可能顺畅,立即加入我们并尝试吧!
安装
-
在我们的网站上创建账户,只需点击几下即可完成,而且完全免费
-
安装DIAMBRA命令行界面:
python3 -m pip install diambra
-
安装DIAMBRA Arena:
python3 -m pip install diambra-arena
强烈建议使用虚拟环境来隔离Python包的安装
快速入门与示例
DIAMBRA Arena的使用遵循标准的强化学习交互框架:智能体向环境发送动作,环境处理该动作并相应地执行转换,从初始状态到新状态,然后将观察结果和奖励返回给智能体以完成交互循环。下图展示了这种典型的交互方案和数据流。
下载游戏ROM并检查有效性
查看可用游戏:
diambra arena list-roms
输出示例:
[...]
标题: Dead Or Alive ++ - 游戏ID: doapp
难度等级: 最低 1 - 最高 4
SHA256 校验和: d95855c7d8596a90f0b8ca15725686567d767a9a3f93a8896b489a160e705c4e
原始ROM名称: doapp.zip
搜索关键词: ['DEAD OR ALIVE ++ [JAPAN]', 'dead-or-alive-japan', '80781', 'wowroms']
角色列表: ['Kasumi', 'Zack', 'Hayabusa', 'Bayman', 'Lei-Fang', 'Raidou', 'Gen-Fu', 'Tina', 'Bass', 'Jann-Lee', 'Ayane']
[...]
使用上面游戏列表命令提供的搜索关键词在网上搜索ROM。请注意,遵循那里报告的特定游戏说明,并将所有ROM存储在同一个文件夹中,该文件夹的绝对路径在以下内容中将被称为 your/roms/local/path
。
需要特定游戏的ROM文件,检查下载的ROM的有效性:
diambra arena check-roms your/roms/local/path/romFileName.zip
有效ROM文件的输出应类似于:
Dead Or Alive ++的正确ROM文件,sha256 = d95855c7d8596a90f0b8ca15725686567d767a9a3f93a8896b489a160e705c4e
请务必查看我们的使用条款,特别是第7条。使用本软件即表示您完全接受这些条款。
基础脚本
使用随机智能体运行一个完整回合只需约10行Python代码:
import diambra.arena
env = diambra.arena.make("doapp", render_mode="human")
observation, info = env.reset(seed=42)
while True:
env.render()
actions = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(actions)
if terminated or truncated:
observation, info = env.reset()
break
env.close()
要执行脚本,请运行:
diambra run -r your/roms/local/path python script.py
文档的入门部分提供了更多详细信息和使用案例。
示例
examples/
文件夹包含了代表最重要用例的即用脚本,特别是:
- 单人环境
- 多人环境
- 包装器选项
- 回合录制
- 回合数据加载器
这些示例展示了如何利用单人和双人模式,如何设置环境包装器并指定所有选项,如何记录人类专家示范以及如何加载它们以应用模仿学习。它们可以作为模板和起点,用于探索软件包的所有功能。
强化学习库兼容性
DIAMBRA Arena 的构建旨在最大化与所有主要强化学习库的兼容性。它原生提供与两个最重要的包的接口:Stable Baselines 3 和 Ray RLlib,同时 Stable Baselines 也可用但已过时。它们的使用在文档和DIAMBRA Agents存储库中有详细说明。它可以以类似的方式轻松地与任何其他包对接。
原生接口,通过以下列出的特定选项安装,已经与以下版本进行了测试:
- Stable Baselines 3 |
pip install diambra-arena[stable-baselines3]
(文档 - GitHub - Pypi): 2.1.* - Ray RLlib |
pip install diambra-arena[ray-rllib]
(文档 - GitHub - Pypi): 2.7.* - Stable Baselines |
pip install diambra-arena[stable-baselines]
(文档 - GitHub - Pypi): 2.10.2
参考
- 文档:https://docs.diambra.ai
- 论文:https://arxiv.org/abs/2210.10595
- 网站: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
支持、功能请求和错误报告
要获得支持,请使用我们Discord 服务器中的专用频道。
要请求功能或报告错误,请使用GitHub 问题追踪器。
引用
论文:https://arxiv.org/abs/2210.10595
@article{Palmas22,
author = {{Palmas}, Alessandro},
title = "{DIAMBRA Arena: a New Reinforcement Learning Platform for Research and Experimentation}",
journal = {arXiv e-prints},
keywords = {reinforcement learning, transfer learning, multi-agent, games},
year = 2022,
month = oct,
eid = {arXiv:2210.10595},
pages = {arXiv:2210.10595},
archivePrefix = {arXiv},
eprint = {2210.10595},
primaryClass = {cs.AI}
}
使用条款
DIAMBRA Arena 软件包受我们的使用条款约束。使用它即表示您完全接受这些条款。