第 46 章 · 项目改造对照表
这一章解决:合作防守项目已经跑通之后,如何把同一套架构改造成其他玩法,而不是从零重写。
先看一下
第八部主项目是 2–4 人合作防守。它是一个完整样本。真正可迁移的是状态归属和同步边界:PlayerObject 存每位玩家的状态,GameState 存全局流程,玩法对象存单体状态,本地层处理体感。
这一章会拿到什么
- 一张合作防守 → 其他玩法的改造总表
- 卡牌、解谜、派对、轻 PvE、PvP 一对多的字段替换方向
- 哪些章节要回查,哪些代码可以保留
- 改造时最容易破坏的边界
- 本卷最后的回查索引
依赖前面
- 第 40 章 ADR
- 闭环 4 最小可玩版本
- 第 42 章 EnemyObject + 对象池
- 第 43 章体感优化
- 第 45 章迭代与拆新世界判断
先看哪些东西不动
Section titled “先看哪些东西不动”把合作防守改成其他玩法时,底层骨架大多不动。
| 保留 | 原因 |
|---|---|
| PlayerObject | 每位玩家一份状态和请求入口仍然需要 |
| GameState | 全局阶段、版本号、结算和 Owner 候选仍然需要 |
requestId / lastProcessedRequestId | 网络重复和乱序仍然存在 |
stateVersion | 远端整批应用状态仍然需要 |
matchId | 跨局残留和旧事件仍然需要隔离 |
| 测试矩阵 | 迟入、Owner 离开、重开、拥塞仍然要测 |
真正变化的是玩法对象和节奏:敌人可以变成卡牌、机关、派对道具、Boss、小队目标。只要状态归属不乱,项目不需要推倒重来。
| 目标玩法 | 保留最多的部分 | 主要替换 | 回查章节 |
|---|---|---|---|
| 回合制卡牌 | PlayerObject 请求、GameState 阶段、结算 | EnemyObject → Card / Board;时间 tick → 回合 tick | 第 25、19、22、24 章 |
| 多人解谜 | GameState 阶段、可恢复状态、对象状态 | EnemyObject → PuzzleObject;分数 → 进度 | 第 5、16、19、28 章 |
| 派对小游戏 | 大厅、Ready、轻实时 tick、体感反馈 | 敌人 → 多个短小游戏模块 | 第 15、26、29、44 章 |
| 轻 PvE / Boss 战 | EnemyObject、对象池、体感反馈 | 多个普通敌人 → 少量关键 Boss 阶段 | 第 34、36、39、43 章 |
| PvP 一对多 | PlayerObject、GameState、结算 | 队伍、胜负、权限和旁观策略 | 第 17、27、28、33 章 |
这张表的用法是先选目标玩法,再回查对应章节。不要先复制代码。先复制 ADR,再改字段。
改成回合制卡牌
Section titled “改成回合制卡牌”合作防守的核心是时间驱动,卡牌的核心是行动窗口。改造重点是把 wave 换成 turn,把 EnemyObject 换成 board state。
| 合作防守字段 | 卡牌替换 |
|---|---|
waveIndex | turnNumber |
waveStartServerTime | turnStartServerTime |
enemyAliveCount | remainingActions 或 deckCount |
| EnemyObject | Card / Board slot |
| 命中请求 | 出牌请求 |
teamScore | 玩家生命 / 回合分 / 胜负快照 |
卡牌更适合命令同步。每次出牌是一条低频命令,命令日志有价值:复盘、撤销、迟入时重建棋盘,都能从命令流或快照里做。第 24 章的 VRCJson 也更适合这类低频复杂状态。
对象池通常不再是主轴。卡牌可以是 UI 或预放置对象,重点是棋盘状态和手牌归属。
改成多人解谜
Section titled “改成多人解谜”解谜玩法的关键是可恢复状态。机关开关、门、镜子、压力板、密码进度,都要让迟入玩家看到当前状态。
| 合作防守字段 | 解谜替换 |
|---|---|
enemyAliveCount | puzzleSolvedCount |
| EnemyObject HP | PuzzleObject 状态 |
| 命中特效 | 机关反馈事件 |
resultReason | 解谜完成 / 超时 / 放弃 |
teamScore | 可选,通常不需要 |
解谜世界可以少用体感预演,多用同步字段。玩家拉下拉杆后,所有人都要看到门开了;迟入玩家也要看到门已经开。Network Event 只播音效和粒子,门状态必须是同步字段。
旁观和重入要按第 28 章处理。解谜中途加入的人通常可以直接参与,但如果谜题依赖前置知识,可以先给旁观或提示状态。
改成派对小游戏
Section titled “改成派对小游戏”派对玩法通常是一串短局:选小游戏、倒计时、玩 30 秒、结算、换下一轮。合作防守的大厅和轻实时 tick 可以保留。
| 合作防守字段 | 派对替换 |
|---|---|
waveIndex | roundIndex |
| EnemyObject | MiniGameObject |
enemyAliveCount | 当前小游戏目标计数 |
matchDuration | 每轮时长 |
resultReason | 本轮结束原因 |
派对玩法的风险是模块边界。每个小游戏都想加自己的字段,最后 GameState 会膨胀。更稳的写法是每个小游戏模块自己保存局部状态,GameState 只保存当前小游戏 ID、轮次、倒计时和总分。
第 44 章测试矩阵要扩大:不只测一局,还要测连续 5 轮小游戏切换。旧模块字段不能串到下一轮。
改成轻 PvE / Boss 战
Section titled “改成轻 PvE / Boss 战”Boss 战和合作防守很接近。差异是敌人数量少,单体状态更重要。
| 合作防守 | Boss 战 |
|---|---|
| 多个普通 EnemyObject | 一个或少量 BossObject |
enemyAliveCount | bossPhase / bossHp |
| 对象池耗尽 | 技能对象池耗尽 |
| 普通命中特效降级 | Boss 关键技能反馈保留 |
| 波次推进 | 阶段推进 |
Boss 的 HP、阶段、技能冷却要同步。小怪和技能弹幕可以降级成本地表现或对象池。第 34 章讲过:影响胜负的关键 NPC 必须同步,制造压力的装饰敌人可以只做本地表现。
Boss 战更需要第 43 章的体感优化。玩家按技能后要立刻有反馈,但 Boss HP 和阶段仍等 Owner 确认。
改成 PvP 一对多
Section titled “改成 PvP 一对多”PvP 一对多是本部对照小练 D 的方向。它改动最大,但仍然复用骨架。
| 合作防守 | PvP 一对多 |
|---|---|
| 一支合作队 | 攻击方 vs 防守方 |
teamScore[0] | teamScore[attacker] / teamScore[defender] |
| 敌人对象 | 玩家目标 / 资源点 / 守护目标 |
resultReason=ALL_TARGETS_CLEARED | 攻击方达成目标 / 防守方守到时间结束 |
| INGAME 迟入默认旁观 | 按队伍人数决定旁观或补位 |
PvP 的关键是把胜负条件写清楚。一对多通常需要不对称目标:攻击方摧毁目标,防守方拖到时间结束。ComputeWinningTeam 不能只比较 teamScore[],要按模式写专门规则。
权限也要更保守。玩家不能自己声明「我赢了」;PlayerObject 只能发请求,GameState 裁决目标是否被占领、目标是否被破坏、时间是否到。
改造前的五个问题
Section titled “改造前的五个问题”每次改造前,先回答这五个问题。
- 这类玩法的 tick 由什么驱动:玩家行动、时间,还是阶段事件?
- 迟入玩家必须看到哪些状态?
- 哪些对象影响胜负,哪些只是表现?
- 结算依据是什么:分数、时间、目标状态,还是队伍条件?
- 第 40 章 ADR 里哪些行需要改?
答完这五个问题,再写字段表。字段表写清楚后,代码通常只是闭环 4 的替换。
挑一条试。
- 把合作防守改成「两队抢占据点」。只改 ADR 和字段表,不写代码。
enemyAliveCount会变成什么?resultReason有哪些新值? - 把合作防守改成「两人回合制卡牌」。哪些第八部章节可以直接跳过?哪些第四部章节反而要回查?
| 场景 | 预期 | 实际 |
|---|---|---|
| 1. 改造前 ADR | 新玩法的状态归属表完整,能指出保留和删除的字段 | … |
| 2. 迟入恢复检查 | 新玩法中迟入必须看到的状态都走同步字段 | … |
| 3. Owner 离开 | 新玩法的全局状态能继续或安全回 Lobby | … |
| 4. 结算条件 | 胜负只由 GameState 裁决,不由 PlayerObject 直接写 | … |
| 5. 降级入口 | 高风险对象都有对象池耗尽、网络拥塞或性能降级策略 | … |
| 6. 连续 3 局 | matchId 隔离旧局事件,新玩法字段不串局 | … |
- 能说出合作防守改造时哪些底层骨架不动
- 能把 wave / enemy / score 替换成目标玩法自己的字段
- 能说明卡牌、解谜、派对、Boss、PvP 一对多各自回查哪些章节
- 能用五个问题开始一次玩法改造
- 能判断一个改造适合继续迭代还是拆新世界
- 第 40 章 · 从玩法反推架构决策记录:所有改造先回到 ADR。
- 第 25 章 · 回合制范式:卡牌 / 桌游改造方向。
- 第 26 章 · 轻实时范式:派对 / PvE 改造方向。
- 第 27 章 · 计分、奖励与结算进阶:复杂分数和不对称队伍。
- 第 28 章 · 观战、旁观、掉线后重入进阶:旁观和补位策略。
- 第 45 章 · 上线后的迭代:判断继续迭代或拆新世界。