跳转至

Nythros

PHP 游戏服务器引擎框架:Actor 模型 + AOI 视野管理 + 多进程拓扑 + 服务端权威状态同步, 基于 Workerman 5 与 PHP 8.3,用于搭建房间制与 MMORPG 大地图类多人在线游戏。

客户端 ── 社交连接(18285~18287) ──> Social 单元(gateway / chat / team 对称直连)
   ├──── 战斗直连(18081~18084) ──> Map 单元(一频道一进程一 World,AOI 视野广播)
   └──── 协调:Redis(多 scope token / 服务注册发现 / 快照 TTL)

它解决什么问题

  • 长连接游戏服务端的完整骨架:登录鉴权、视野管理、帧级状态同步、战斗结算、 匹配组队、经济背包、GM 运营、动态扩缩容——开箱即用,而不是只给一个 WebSocket echo。
  • 明确的分层engine(冻结契约 + 15 个核心模块,含 BaseActor 基类)/ framework(三基类 BasePlayer/BaseMonster/BaseNPC + 业务模块 + 插件)/ 组装层(skeleton 入门套件与 demo 参考实现), 依赖方向单向,CI 门禁强制 @internal 可见性。
  • 性能有实测背书:60 人热区混战每客户端 ≈3.8KB/s 下行、attack→hit p95 ≤51ms; CI 带 benchmark 回归门禁防性能劣化(数据见性能与压测)。

跑起来(两条路)

路线 A · 入门套件(推荐起步,5 分钟)

composer create-project nythros/skeleton my-game && cd my-game
php bin/launch.php                       # 起最小 Map 服务器(主城 AOI + 副本全量广播)
php client.php alice 18081               # 另一终端:登录→移动→看视野广播帧

随后按成长教程逐阶加功能(战斗→社交→集群)。

路线 B · monorepo demo(全功能参考实现,10~30 分钟)

docker compose up -d                 # Redis + MySQL 依赖栈
composer install
NYTHROS_CONFIG_DIR=packages/demo/config php bin/server start
php packages/demo/bin/verify-phase5.php   # 末行 RESULT: PASS 即链路通

详细步骤见快速启动

文档导览

我想… 去看
把服务器跑起来 快速启动
从入门套件一步步做出完整游戏(战斗/社交/经济/集群,每章可运行验收) 成长教程 · 路线图
理解整体结构与服务拓扑 架构总览
写业务 Actor / 玩法插件 Actor 指南 · 插件机制
做房间制游戏(匹配/开局/结算) 房间制玩法
做大地图 MMORPG(AOI/换线/扩缩容) MMORPG 大地图
搭战斗/技能/掉落/数值 战斗与数值
接好友/组队/公会/邮件/任务/拍卖 社交与经济
自研客户端 / Unity 接入 线协议 · 状态同步 · Unity/C# 接入
查某个类怎么用 公开 API 一览
部署上线 / 接监控 部署指南 · 安全指南

生态

说明
nythros/engine 引擎核心:Contracts 契约(v0.1 冻结)+ 15 核心模块
nythros/framework 开箱即用层:三基类 + Combat/Social/Economy/GM + 插件 + make CLI
nythros/skeleton create-project 入门套件:composer create-project nythros/skeleton my-game 起步的最小可运行骨架(仓库
nythros/demo 参考实现(对内验收):deploy.yaml 拓扑 + verify-* 端到端验收脚本族,不对用户发布
@nythros/client 官方 JS SDK:二进制协议 + 插值引擎 + 自动重连(Node ≥22 / 浏览器)
clients/unity Unity/C# 参考客户端(接入指南

设计决策与演进

全部架构决策(ADR-001~029)、阶段验收记录与分层审计在仓库 blueprint/ 目录—— 「不是按时间进入下一阶段,而是按验收结果进入下一阶段」是贯穿项目的开发原则。

License

MIT