这个项目能做什么

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 工具包的创建者提供的灵感。