该技能是 AlterLab GameForge 中的多人联网与网络代码架构设计技能,以网络程序员 Idris Kovac 的角色工作,目标是为团队产出可执行的网络架构决策记录(ADR)和 QA 可运行的多人测试计划。
用途
- 在写玩法代码之前决定是否联网,以及联网后的拓扑、同步模型、引擎栈、会话服务、安全与测试方案。
- 指出联网会放大每个功能的工作量,帮助独立团队避免低估成本。
主要能力
- 先判断是否该联网:询问谁一起玩、每局人数与类型、平台与跨平台、预算与运维能力,并给出 GO ONLINE、LOCAL + REMOTE PLAY、ASYNC ONLY、LATER 等结论选项。
- 拓扑选择:本地同屏、P2P 网格(经中继)、Listen 服务器、专用权威服务器、托管房间、分布式权威,并对比作弊抵抗力、服务器成本与适用场景。
- 状态同步模型:快照插值、客户端预测与校正、服务器端延迟补偿、回滚、确定性锁步、事件/命令复制;多数动作游戏组合使用预测、插值和延迟补偿。
- 引擎栈:Godot 4.7(4.8 beta)、Unity 6、Unreal 5.8、Web(Three.js、Phaser、PixiJS)的内置路径与常见替代库,并附各引擎参考文档。
- 大厅、匹配、中继与托管:Steamworks、Epic Online Services、Unity Multiplayer Services SDK、Photon、Nakama、Colyseus、Cloudflare Durable Objects 等;并给出会话规则,如协议版本校验、断线重连、主机离开处理、按玩家选择区域。
- 安全与反作弊:客户端只发意图、权威端决定结果;服务器端命中检测、RPC 校验与限流、密钥不下发客户端、兴趣管理、中继隐藏 IP、排行榜服务端记录等。
- 弱网测试:每个构建本地多客户端加模拟延迟抖动丢包,覆盖好/典型/差/极差/尖峰/断线矩阵,测试重连、中途加入、主机离开、版本不匹配,锁步与回滚需逐 tick 校验和。
- 托管成本估算:按快照字节数、快照频率、平均 CCU、峰值 CCU 计算出口流量与服务器数量,并要求使用决策当日供应商价格。
使用方式
- 从文件读取 .gameforge/project.json、design/ 下的 GDD 和现有网络代码,并识别 Godot @rpc、Unity NetworkBehaviour、Unreal 复制标记、Web 的 Colyseus/partysocket/WebSocket/Supabase Realtime 等现有网络代码。
- 决策写入 docs/architecture/adr-<NNN>-netcode.md,测试计划写入 tests/multiplayer/test-plan.md,并把决策与下一步追加到 production/session-state/active.md。
- 按阶段推进:是否联网 → 拓扑 → 同步模型 → 引擎栈 → 大厅/匹配/中继/托管 → 安全反作弊 → 弱网测试 → 成本估算。
- 若引擎尚未确定,先转交 game-technical-director。
关键规则
- 先于玩法代码做决定;客户端只发意图,分数、伤害、库存、货币和购买绝不接受客户端结果。
- 固定 tick 模拟,渲染在 tick 之间插值;带宽按每实体每 tick 字节数预算;客户端不含密钥;每个处理器都校验;优先用引擎内置或文档最完善的库;朋友优先于陌生人匹配;提前规划服务器关闭后的可玩方案。
- 确定性警告:浮点结果可能跨平台/编译器/浏览器不同,锁步与回滚需定点数或受控数学,并用逐 tick 校验和检测不同步。
适用场景
- 独立团队设计合作、竞技、派对、RTS、格斗、Web 社交游戏、异步排行榜类游戏的联网架构。
- 需要评估联网成本、反作弊投入与弱网测试计划的团队。
限制
- 资料为技能文档,未提供实际安装命令或运行命令;需在相应技能运行环境中使用。
- 部分版本、价格与供应商状态为资料记录时点信息,使用时应以当前官方信息为准。
- 不覆盖引擎选型本身,仅把网络技术栈作为其中一项输入。