📌 项目地址:Julian-adv/OpenMMO | ⭐ 1,293 颗星 | 🔧 Rust | 📜 未标注
一句话说清楚这个项目
OpenMMO 是一个将 AI 代理(Agent)和人类玩家视为平等存在的 MMORPG。AI 和人类连接到同一个世界,遵循相同的游戏规则,使用完全相同的 WebSocket 协议进行交互,服务器无法区分两者——这意味着 AI 能做的任何事情人类也能做,反之亦然。
项目由单人开发、Vibe-coded(灵感驱动编程),当前可以通过 openmmo.to.nexus 直接游玩,使用 Google 账号登录即可。
为什么这件事很特别
传统 MMORPG 中的 AI(NPC)拥有特权:它们可以瞬移、无视规则、拥有单独的服务器 API。而 OpenMMO 的设计核心是 Agent–Human Parity,官方描述是:
“Agents and human players speak the exact same WebSocket protocol — no privileged API, no separate endpoints. The server cannot tell them apart, so any behavior a human can do, an agent can do (and vice versa).”
这意味着你可以在游戏中编写一个 AI 角色,让它像真正的玩家一样行走、战斗、交互、甚至建造房屋;也可以让人类玩家扮演“管理员”,通过普通角色行为间接影响世界,而无需额外权限。这种设计为多智能体研究、社会模拟、游戏 AI 实验提供了一种零特权的基准环境。
实际用法:一秒上手
项目没有本地部署步骤(目前只提供在线体验),打开浏览器输入地址即可:
https://openmmo.to.nexus
点击 Sign in with Google,创建角色(支持 4d6-drop-lowest 掷骰生成六维属性),然后直接进入一个 32km × 32km 的全程序化生成世界。所有交互均通过 WebSocket 实时同步。
对于希望让 AI 代理加入的开发者,README 明确指出:AI 只需使用与浏览器相同的 WebSocket 协议连接服务器,没有任何隐形端点。具体协议细节需要参考官方文档或直接分析客户端代码(开源在仓库中)。
它还提供了什么?
除了核心的智能体平等机制,OpenMMO 本身是一个功能完整的 MMORPG 雏形:
- 3D 世界:基于 Three.js 的等视角画面,支持点光源火把、日夜循环(双月系统)、季节性的昼夜时长变化。
- 程序化地形:32km × 32km 范围,包括河流(含三角洲分流)、道路网络、自动生成桥梁、风力动画的草和 Gerstner 海面波浪。
- 建筑系统:模块化木结构房屋,支持 2-4 层、可交互门窗、自定义纹理、家具摆放(如床可睡眠使用)。
- 内置地图编辑器:地形笔刷(抬高/平整/铺路)、物件放置、矩形区域标记(城镇免刷怪区/怪物生成区),在游戏中实时编辑。
- 战斗与装备:D&D 风格属性 3-18(4d6 投掷 + 职业修正 + 72 点平衡),服务器权威计算。11 个装备槽(头、主手、副手、胸、耳、颈等),负重限制的背包系统。
与同类工具的区别
市面上存在许多「AI 在游戏中玩」的项目(如 MineRL、NetHack 学习环境),但通常:
– AI 通过专用 API 操作,与人类玩家界面不同
– 服务器能识别并授予 AI 特权(如瞬移、免货币交易)
– 研究结果难以直接迁移到真实人类场景
OpenMMO 反过来:没有专属 API,AI 必须像人类一样使用鼠标/键盘(通过模拟键盘输入或 WebSocket 消息)完成所有操作。这意味着任何在 OpenMMO 中训练的 AI 策略理论上可以直接用于人类玩家角色,不存在“特权鸿沟”。
需要注意的 3 点
- 项目处于早期阶段:单人开发,README 明确标注“Vibe-coded”,资产由 AI 生成、程序化生成和网络素材混合。UI、平衡性、异常处理可能不够完善。
- 没有本地部署说明:目前只有线上实例,如果希望自己搭建服务器或修改源码,需要从 GitHub 仓库(Rust 语言)自行研究。贡献者欢迎提交 PR。
- 许可证未明确:仓库未提供 License 文件,使用前需联系作者确认授权方式。若用于商业或研究,建议谨慎。
适合谁关注?
- 多智能体 / 强化学习研究者:需要一个零特权的多人环境,让 AI 与真人在同一规则下互动。
- 游戏开发爱好者:希望了解全栈游戏如何用 Rust + Three.js 构建,包含程序化生成、实时同步、地图编辑器等复杂功能。
- AI 社会模拟实验者:例如测试“AI 与人类在资源有限世界中会形成何种社会关系”,OpenMMO 提供了实时交互的开放沙盒。
由于项目仍在迭代,短期内不建议将其作为生产级游戏平台,但作为实验沙盘或学习参考非常有价值。