跳转到主要内容

未提供项目描述

项目描述

pre-commit Code style: black

Stable-Retro

gym-retro('让您将经典视频游戏转换为强化学习Gymnasium环境')的分支,增加了额外的游戏、模拟器和支持的平台。由于gym-retro目前处于维护状态,不接受新的游戏、平台或错误修复,您可以将带有新游戏或功能的PR提交到stable-retro。

在gym-retro基础上增加的游戏

  • 超级马里奥兄弟2日本版(失落层) - NES
  • Hang On - SMS
  • Punch Out - NES
  • WWF摔跤狂热街机游戏 - Genesis
  • NHL 94 - Genesis
  • NHL 94(1对1修改版)- Genesis
  • 超级悬挂 - Genesis
  • 俄罗斯方块 - GameBoy
  • 虚拟斗士 - 32x
  • 虚拟斗士2 - Genesis
  • 虚拟斗士2 - Saturn
  • 街头霸王1 - Sega CD

支持两个模型相互战斗的PvP游戏

  • 剑客对决 - Genesis
  • WWF摔跤狂热街机游戏 - Genesis
  • 街头霸王2 - Genesis
  • NHL 94 - Genesis

以及已经集成游戏上的额外状态。

仿真系统

  • 雅达利
    • 雅达利2600(通过Stella)
  • NEC
    • TurboGrafx-16/PC Engine(通过Mednafen/Beetle PCE Fast)
  • 任天堂
    • Game Boy/Game Boy Color(通过gambatte)
    • Game Boy Advance(通过mGBA)
    • 任天堂娱乐系统(通过FCEUmm)
    • 超级任天堂娱乐系统(通过Snes9x)
  • 世嘉
    • GameGear(通过Genesis Plus GX)
    • Genesis/Mega Drive(通过Genesis Plus GX)
    • Master System(通过Genesis Plus GX)
    • 32x(通过Picodrive)
    • Saturn(通过Beetle Saturn)
    • Sega CD(通过Genesis Plus GX)

实验性(在fbneo分支中可访问)

  • 街机
    • Neo Geo(MVS硬件:1990-2004)
    • 世嘉系统1(1983-1987)
    • 世嘉系统16(及类似。1985-1994)
    • 世嘉系统18(1989-1992)
    • 世嘉系统24(1988-1994)
    • Capcom CPS1(1988-1995)
    • Capcom CPS2(1993-2003)
    • Capcom CPS3(1996-1999)

支持街机的完整列表在此

安装

pip3 install git+https://github.com/Farama-Foundation/stable-retro.git

Apple Silicon安装(在python3.10上测试过)

  • 注意:Game Boy(gambatte)仿真器在Apple Silicon上不受支持

从源码构建

  1. pip install cmake wheel
  2. brew install pkg-config lua@5.1 libzip qt5 capnp
  3. echo 'export PATH="/opt/homebrew/opt/qt@5/bin:$PATH"' >> ~/.zshrc
  4. export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
  5. pip install -e .

构建集成UI

  1. 从源码构建包
  2. cmake . -DCMAKE_PREFIX_PATH=/usr/local/opt/qt -DBUILD_UI=ON -UPYLIB_DIRECTORY
  3. make -j$(sysctl hw.ncpu | cut -d: -f2)
  4. 打开 "Gym Retro Integration.app"

如何在Ubuntu和Windows上设置的教程视频: https://youtu.be/LRgGSQGNZeE

M1 Mac的Docker镜像: https://github.com/arvganesh/stable-retro-docker

示例

使用PPO在Airstriker-Genesis环境(rom已包含在存储库中)训练的'Nature CNN'模型

在Ubuntu 20.04和Windows 11 WSL2(Ubuntu 20.04虚拟机)上测试过

sudo apt-get update
sudo apt-get install python3 python3-pip git zlib1g-dev libopenmpi-dev ffmpeg

您需要安装一个支持gymnasium的稳定baselines 3版本

pip3 install git+https://github.com/Farama-Foundation/stable-retro.git
pip3 install stable_baselines3[extra]

开始训练

cd retro/examples
python3 ppo.py --game='Airstriker-Genesis'

引用

@misc{stable-retro,
  author = {Mathieu and Poliquin},
  title = {Stable Retro, a fork of OpenAI's gym-retro},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/Farama-Foundation/stable-retro}},
}

教程

游戏集成工具: https://www.youtube.com/playlist?list=PLmwlWbdWpZVvWqzOxu0jVBy-CaRpYha0t

Discord频道

加入这里: https://discord.gg/dXuBSg3B4D

贡献

查看CONTRIBUTING.md

有一个将此项目达到Farama基金会项目标准的努力。这些开发工作正在Farama基金会Discord的stable-retro频道中进行协调。点击这里获取邀请

支持的规格

平台

  • Windows 10,11(通过WSL2)
  • macOS 10.13(High Sierra),10.14(Mojave)
  • Linux(manylinux1)

CPU具有SSSE3或更好

支持的Python版本:3.7到3.10

文档

文档可在https://stable-retro.farama.org/(工作正在进行中)找到

有关各个核心许可的信息,请参阅LICENSES.md

ROMs

每个游戏集成都包含列出游戏变量内存位置的文件,基于这些变量的奖励函数,游戏回合结束条件,关卡开始时的存档状态,以及包含与这些文件兼容的ROM哈希值的文件。

请注意,ROM文件不包括在内,您必须自行获取。大多数ROM哈希值来自各自的无Intro SHA-1总和。

以下非商业ROM包含在Stable Retro中用于测试目的

由以下组织支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面