这个项目能做什么
Godot RL Agents 是一个完全开源的软件包,它桥接了 Godot 引擎和基于 Python 的机器学习算法,使游戏开发者、AI 研究人员和爱好者能够为非玩家角色(NPC)或智能体训练复杂行为。
该仓库提供:
- 在 Godot 引擎创建的游戏与 Python 中运行的机器学习算法之间的接口。
- 四个知名 RL 框架的封装:StableBaselines3、Sample Factory、Ray RLLib 和 CleanRL。
- 支持使用 LSTM 或基于注意力的接口的记忆型智能体。
- 支持 2D 和 3D 游戏。
- 一套 AI 传感器,增强智能体观察游戏世界的能力。
- Godot 和 Godot RL Agents 在宽松的 MIT 许可下完全免费且开源。
该项目在 AAAI-2022 研讨会论文(arXiv:2112.03636)中有详细描述。
## 快速入门指南
快速入门指南帮助用户使用 StableBaselines3 后端开始运行,该后端支持 Windows、Mac 和 Linux。还提供视频教程。
### 安装和首次训练
1. 安装库:`pip install godot-rl`
2. 从中心下载示例环境,例如 `gdrl.env_from_hub -r edbeeching/godot_rl_JumperHard`
3. 如有需要,为游戏可执行文件添加运行权限。
4. 使用 Stable Baselines 3 示例脚本进行训练和可视化:
```bash
python examples/stable_baselines3_example.py --env_path=examples/godot_rl_JumperHard/bin/JumperHard.x86_64 --experiment_name=Experiment_01 --viz
```
### 编辑器内交互式训练
用户还可以直接在 Godot 编辑器中训练智能体,无需导出游戏可执行文件。步骤包括下载 Godot 4 .NET 版本、导入示例项目并运行训练脚本。
### 教程
- 自定义环境教程
- 使用新传感器的简单环境教程
- 过马路小游戏教程
- 模仿学习教程
### 以 ONNX 格式导出和加载训练好的智能体
最新版本提供对 Stable Baselines 3、RLLib 和 CleanRL 的 ONNX 模型的实验性支持。用户可以使用 mono 版本和插件导出训练好的模型并在 Godot 编辑器中加载。
## 高级用法
Godot RL Agents 支持四种不同的 RL 训练框架,每个都有详细指南:
- StableBaselines3(Windows、Mac、Linux)
- SampleFactory(Mac、Linux)
- CleanRL(Windows、Mac、Linux)
- Ray RLLib(Windows、Mac、Linux)
## 贡献
欢迎贡献,包括新环境、README 改进和 Python 代码库添加。流程包括分叉仓库、克隆、创建虚拟环境并执行可编辑安装。可以使用 `make test` 运行测试,使用 `make style` 和 `make quality` 进行代码格式化。
## 常见问题解答
- **为什么开发 Godot RL Agents?** 为深度强化学习研究和游戏开发提供免费开源工具,实现独特的 NPC 行为,并允许自动化游戏测试。
- **如何贡献?** 试用它、查找错误、提出问题或提交拉取请求。
- **Mac 支持?** 现在应该可以工作了。
- **与 Unity ML Agents 的相似性?** 受 Unity ML Agents 启发,但旨在更紧凑、简洁和可破解,减少抽象。
- **训练期间周期性冻结?** 使用默认 SB3 脚本时,模型更新期间是正常的;导出到 ONNX 可实现更快的推理。
## 许可证
Godot RL Agents 采用 MIT 许可。"Cartoon Plane" 资源采用知识共享署名许可。
## 引用
提供了 BibTeX 条目用于引用论文。
## 致谢
感谢 Godot 引擎作者、Sample Factory、CleanRL、Ray 和 Stable Baselines 的开发者,以及 Unity ML Agents 工具包的创建者提供的灵感。
评论
0 评分人数达到10人后显示
登录后参与讨论。