特色玩法与PVE经验补全:实战、项目参与与源码复盘
自动关联目录:特色玩法与PVE经验补全:实战、项目参与与源码复盘
这篇不是背诵稿,而是玩法工作的完整技术底座。它把非对称玩法、PVP 和 PVE 放进同一套客户端架构中,再严格区分本人直接交付、项目内协作和事后源码复盘。最终背诵稿只抽取其中最可靠、最能承受追问的部分。
一、先限定经验边界
1.1 三种经验来源
| 层级 | 定义 | 面试中的主语 | 典型范围 |
|---|---|---|---|
X1 直接交付 | 有连续个人提交、实现、联调或维护证据 | 我负责、我实现、我联调 | HUD、物品/道具、交互、新手流程、时间线、配置与线上问题 |
X2 项目内参与 | 接过接口、修过链路或参与联调,但不是完整主责 | 我参与、我负责其中的…… | Gameplay Ability 接入、复制接入、局内外系统对接、服务端协议 |
X3 源码复盘 | 同项目团队能力,本人现在沿源码系统补全 | 团队系统、我复盘后的理解 | 地牢生成、完整战斗框架、怪物 AI、全量经济与运营体系 |
X3 可以证明系统理解和接手能力,不能改变历史 ownership。面试官问架构时可以讲完整系统;问“你做了什么”时必须切回 X1/X2。
1.2 三段工作重心
| 阶段 | 时间 | 工作重心 | 关系 |
|---|---|---|---|
G1 非对称玩法 | 2025.03 - 2025.08 | 局内 HUD、成长系统、配置、道具和角色表现 | 从 UGC 平台转向具体玩法交付 |
G2 PVP | 2025.08 - 2026.05 | 物品/道具、Gameplay Ability、交互对象、局内系统与复制接入 | 与后续 PVE 有共享底座和重叠维护 |
G3 PVE | 2025.12 - 2026.06 | 新手流程、任务/配置、时间线、局内外联调与线上维护 | 与 PVP 重叠,不能重复计算年限 |
源码是持续演进后的当前状态。表中的完整模块不等于在本人参与期已经具备同样形态,也不等于本人参与了所有实现。
1.3 一句话口径
我在玩法侧经历了非对称、PVP 和 PVE 三段连续工作。直接负责过 HUD、物品道具与交互接入,PVE 阶段重点做新手流程、局内外时间线、任务配置、界面和客户端/服务端联调;底层地牢、完整 AI 和战斗框架并非都由我实现,但我已经沿共享 Lua、玩法内容仓和原生插件把整套运行链路补成了系统认知。
二、PVE 不是“打怪功能”,而是一条完整产品闭环
PVE 客户端同时承担五类职责:
- 会话终端:组队、匹配、加载、进局、重连、退出和结算。
- 世界运行时:关卡、房间、机关、怪物、掉落和撤离阶段持续演进。
- 战斗表现端:输入、技能、武器、命中反馈、动画、相机和 HUD。
- 进度呈现端:任务、新手、职业、故事、收藏、仓库和长期成长。
- 线上运营节点:配置、活动、埋点、反作弊、性能和问题诊断。
典型业务闭环:
局外准备 / 组队 / 装备
-> 匹配和加载
-> 初始化关卡、玩家与任务
-> 探索房间 / 交互 / 战斗 / 拾取
-> 阶段推进 / Boss / 撤离判定
-> 生成权威结果
-> 结算、奖励与持久化
-> 返回局外并刷新任务、仓库和成长客户端架构的核心问题不是“有多少怪物和按钮”,而是:谁拥有权威状态、各域如何推进、断线和失败如何恢复、局内临时状态如何安全提交为局外永久结果。
三、客户端总体架构
| 层 | 职责 | 关键状态 | 设计边界 |
|---|---|---|---|
| 产品与会话层 | 大厅、组队、匹配、加载、重连、局内外切换 | 会话身份、队伍、关卡实例、连接状态 | 页面不是会话权威;切图必须可恢复 |
| 规则与流程层 | GameMode、阶段、目标、胜负、撤离、结算 | 局状态、阶段、计时器、参与者、结果 | 服务端推进权威状态,客户端消费快照和事件 |
| Gameplay 层 | 角色、技能、武器、Buff、交互、物品 | Ability、效果、装备、交互事务 | 输入意图与权威结果分离;表现允许预测 |
| 世界与 AI 层 | 地牢、房间、机关、怪物、导航、生成 | 房间图、实体、AI 意图、出生批次 | 数据驱动构建;对象生命周期统一治理 |
| UI 与表现层 | HUD、引导、地图、背包、观战、结算 | ViewModel、提示队列、表现状态 | 订阅式消费领域状态,不复制业务规则 |
| 数据与服务层 | 配置、任务、库存、奖励、存档、埋点 | 配置版本、事务号、永久进度 | 局内临时数据与局外永久数据分域 |
| 基础设施层 | 网络、复制、资源、对象池、日志、测试 | RPC、复制状态、缓存、诊断上下文 | 所有上层都可观测、可回收、可降级 |
六条主链:
- 会话链:大厅 -> 匹配 -> 加载 -> 进局 -> 重连/退出 -> 结算返回。
- 状态链:服务端规则 -> 快照/增量 -> 客户端领域模型 -> UI 与表现。
- 战斗链:输入 -> Ability/武器意图 -> 服务端校验 -> 效果结算 -> Cue/动画/HUD。
- 世界链:关卡数据 -> 房间/机关/怪物实例 -> 生命周期与对象池 -> 清理。
- 进度链:局内事件 -> 任务/掉落/结算 -> 幂等提交 -> 局外成长刷新。
- 诊断链:配置版本 + 会话身份 + 阶段 + 关键事件 -> 日志/埋点/回放线索。
四、完整模块图谱
4.1 会话、规则与关卡
| 模块 | 层级 | 业务价值 | 实现与追问点 |
|---|---|---|---|
| 玩法入口与队伍 | X2/X3 | 承接单人、组队和模式选择 | 队伍身份、准备态、队长权限、队员变化、跨服入口 |
| 匹配与实例分配 | X2/X3 | 把玩家送入正确的玩法实例 | 模式参数、超时、取消、重复回调、实例票据 |
| 加载与资源预热 | X2/X3 | 控制进局耗时和首帧卡顿 | 分阶段加载、依赖清单、预热、进度聚合、失败回退 |
| 客户端状态机 | X1/X2 | 约束局外、加载、局内、观战和结算切换 | 状态进入/退出、异步取消、重复通知、异常恢复 |
| GameMode/GameState | X2/X3 | 承载玩法规则与公共状态 | 服务端权威、客户端镜像、阶段钩子、迟到加入 |
| 局内阶段与计时器 | X1/X2 | 驱动探索、事件、Boss、撤离和结束 | 服务器时间、阶段序号、断线恢复、UI 倒计时 |
| 目标与胜负判定 | X2/X3 | 统一推进条件和结果 | 条件聚合、死亡/撤离边界、全队失败、幂等结束 |
| 撤离系统 | X1/X2 | 把局内收益转换为可提交结果 | 撤离点状态、资格、读条、打断、阶段关闭、结果锁定 |
| 观战与死亡流程 | X1/X2 | 让死亡玩家仍可理解战局 | 观战目标、切换、复活、目标销毁、相机恢复 |
| 结算与返回局外 | X1/X2 | 向玩家解释结果并刷新长期进度 | 权威结果、动画、奖励到账、重复打开、返回时序 |
| 重连与中途加入 | X2/X3 | 抵抗移动网络和切后台 | 会话重绑定、全量快照、阶段恢复、表现补偿、超时 |
| 跨局时间线 | X1 | 统一局内外活动、任务和奖励节奏 | 服务端时间、节点状态、跨场景恢复、补发、点击流 |
4.2 地牢、世界与交互
| 模块 | 层级 | 业务价值 | 实现与追问点 |
|---|---|---|---|
| 地牢资产数据 | X3 | 将关卡结构从硬编码变为可配置资产 | Schema、房间模板、连接点、版本、校验 |
| 地牢实例与核心 | X3 | 管理一次 PVE 世界的创建和销毁 | 实例身份、随机种子、生命周期、失败清理 |
| 房间图与 Tile | X3 | 组织探索拓扑和分区加载 | 连通性、门连接、空间坐标、确定性生成 |
| 手工/JSON 关卡 | X2/X3 | 支持策划白盒和精细关卡 | 数据导入、资源引用、版本兼容、运行时构建 |
| 小地图与探索状态 | X1/X2 | 反馈位置、房间和探索进度 | 世界到地图坐标、迷雾、标记、双指缩放、重连恢复 |
| 门、宝箱和机关 | X1/X2 | 承载探索节奏和风险奖励 | 权威状态、交互条件、开启动画、奖励幂等、持久显示 |
| 传送与场景切换 | X2/X3 | 连接分区、房间或多层世界 | 目标合法性、输入冻结、加载遮罩、失败回滚 |
| 通用交互组件 | X1/X2 | 统一靠近、按键、读条和打断 | 候选排序、占用、进度同步、距离复核、取消原因 |
| 可放置场景对象 | X2/X3 | 用统一基类承载机关和玩法物件 | 配置、网络身份、组件组合、生命周期、编辑资产 |
| 场景代理与分区 | X3 | 控制大场景实体加载和查询成本 | 代理对象、空间索引、可见性、按需激活 |
| 关卡事件与随机事件 | X2/X3 | 提供重复游玩的变化 | 触发条件、种子、互斥、全队同步、奖励 |
| 白盒、评分与调试 | X2/X3 | 提升关卡生产和验收效率 | 可视化、GM、路径检测、关卡评分、问题定位 |
4.3 战斗、技能与角色
| 模块 | 层级 | 业务价值 | 实现与追问点 |
|---|---|---|---|
| 角色基础与属性 | X2/X3 | 统一生命、移动、阵营和成长参数 | 属性来源、派生值、复制、死亡边界、重置 |
| Character State | X2/X3 | 约束移动、攻击、受击和控制状态 | 状态互斥、优先级、标签、进入退出、异常恢复 |
| Gameplay Ability | X1/X2 | 承载可组合技能和道具行为 | 激活条件、Commit、取消、冷却、预测、标签 |
| Able Task | X1/X2 | 拆分等待、动画、目标和时序步骤 | 生命周期、回调解绑、取消传播、网络角色 |
| Gameplay Effect/Buff | X2/X3 | 表达持续属性变化和控制效果 | 叠层、刷新、免疫、来源、到期、复制 |
| Gameplay Cue/表现 | X2/X3 | 将权威效果映射为音画反馈 | 去重、预测确认、对象池、迟到事件、回收 |
| 目标选择与指示器 | X2/X3 | 支持锁定、范围和落点确认 | 查询过滤、客户端预览、服务端复核、地形投影 |
| 武器、装备与槽位 | X1/X2 | 支持战斗流派和成长差异 | 装备身份、槽位约束、属性刷新、切换状态 |
| 投射物与命中 | X2/X3 | 承载远程攻击和轨迹表现 | 生成权威、预测表现、碰撞过滤、穿透、回收 |
| 伤害与受击 | X2/X3 | 统一攻击结果和反馈 | 伤害上下文、阵营、护盾、无敌、击杀归因 |
| 3C 与相机 | X1/X2 | 决定战斗手感和可读性 | 镜头遮挡、技能落点、自由视角、观战恢复 |
| 动画与 Montage | X2/X3 | 对齐技能窗口、移动和表现 | Notify、根运动、打断、网络同步、资源降级 |
4.4 AI、怪物与生成
| 模块 | 层级 | 业务价值 | 实现与追问点 |
|---|---|---|---|
| 怪物数据与类型 | X2/X3 | 支撑普通怪、精英和 Boss 差异 | 配置继承、能力集合、抗性、掉落、版本 |
| 怪物状态机 | X2/X3 | 约束 Idle、巡逻、追击、攻击、受控和死亡 | 状态切换条件、打断、动画、同步、清理 |
| 行为树 | X2/X3 | 组织可维护的 AI 决策 | Service/Decorator/Task 边界、黑板、可中止性 |
| EQS 与目标搜索 | X2/X3 | 在复杂空间选择目标和位置 | 候选生成、过滤、评分、预算、调试可视化 |
| 感知与仇恨 | X2/X3 | 形成稳定的战斗关注对象 | 视听觉、伤害贡献、脱战、目标失效、网络角色 |
| 导航与路径 | X2/X3 | 让动态地牢内移动可靠 | NavMesh、动态障碍、寻路失败、卡死恢复 |
| 刷怪器与波次 | X2/X3 | 控制节奏和难度 | 生成预算、位置合法性、批次、存活计数、回收 |
| Boss 阶段 | X2/X3 | 组织多阶段机制和演出 | 血量门槛、不可打断转换、场景机关、重连快照 |
| AI LOD 与休眠 | X3 | 控制大量怪物的 CPU 和网络成本 | 距离/可见性分级、降频、服务端休眠、唤醒 |
| 对象池 | X2/X3 | 降低高频生成销毁的抖动 | 池键、重置契约、预热、上限、泄漏检测 |
| 新手 AI 与脚本引导 | X1/X2 | 保证教学稳定且可控 | AI 状态、引导触发、导航、镜头、失败兜底 |
| AI 调试 | X2/X3 | 快速回答“为什么没行动” | 黑板、当前节点、目标、路径、状态转换日志 |
4.5 物品、任务与长期进度
| 模块 | 层级 | 业务价值 | 实现与追问点 |
|---|---|---|---|
| 物品定义与实例 | X1/X2 | 区分“配置类型”和“玩家持有实体” | 模板 ID、实例 ID、数量、耐久、随机词条、版本 |
| 拾取与掉落 | X1/X2 | 连接战斗、探索和收益 | 所有权、距离校验、表现先行、服务端确认、失败回滚 |
| 背包与格子 | X1/X2 | 管理局内携带和空间限制 | 格子占用、堆叠、移动、交换、扩展格、原子更新 |
| 仓库与局外库存 | X1/X2 | 承载跨局永久资产 | 分页、筛选、版本、局内外迁移、冲突处理 |
| 装备与撤离提交 | X1/X2 | 决定风险收益是否可信 | 入局快照、临时变更、成功提交、失败回滚、幂等事务 |
| 宝箱与保底 | X1/X2 | 控制奖励节奏和可解释性 | 开启事务、打断恢复、保底计数、奖励生成、表现一致 |
| 任务数据框架 | X1/X2 | 统一条件、进度和领奖 | 事件订阅、聚合、服务端进度、版本迁移、补发 |
| 新手任务 | X1 | 让新玩家建立完整玩法心智 | 步骤状态机、目标高亮、智能提示、跳过、恢复 |
| 职业与角色成长 | X1/X2 | 提供流派和长期追求 | 解锁条件、等级、属性、技能、任务联动 |
| 故事与传记 | X1/X2 | 串联叙事、奖励和长期目标 | 章节状态、条件、购买/领奖、跳转、断点恢复 |
| 收藏与图鉴 | X1/X2 | 提供收集驱动和内容展示 | 发现/拥有分离、活动页签、材质表现、版本 |
| 月卡、活动与运营 | X1/X2 | 支撑周期内容和付费权益 | 时间窗、特权格、过期回收、补偿、配置灰度 |
4.6 UI、网络与工程质量
| 模块 | 层级 | 业务价值 | 实现与追问点 |
|---|---|---|---|
| 局内 HUD | X1 | 聚合生命、技能、目标、队伍和阶段信息 | ViewModel、优先级、分辨率、生命周期、状态恢复 |
| 引导与智能提示 | X1 | 在正确时机给出最小必要信息 | 条件、互斥、遮罩、目标丢失、超时、跳过 |
| 技能按钮与交互按钮 | X1/X2 | 将输入映射到可用行为 | 可用态、冷却、焦点、移动端输入、重复触发 |
| 背包、仓库和详情页 | X1/X2 | 让复杂资产可理解、可操作 | 虚拟列表、拖拽、乐观更新、事务失败回滚 |
| 小地图和世界标记 | X1/X2 | 降低探索迷失和沟通成本 | 坐标转换、聚类、层级、缩放、目标追踪 |
| 观战、结算和回放表现 | X1/X2 | 保持失败后的信息完整性 | 目标切换、数据冻结、重复打开、跨阶段清理 |
| 复制图与相关性 | X1/X2 | 控制大量实体的同步成本 | 空间节点、连接相关性、Dormancy、调试统计 |
| RPC 与命令校验 | X2/X3 | 防止客户端直接修改公共结果 | 调用方向、身份、频率、状态前置条件、重放 |
| 快照与增量事件 | X2/X3 | 平衡首次进入、重连和实时更新 | 版本号、顺序、去重、缺口恢复、全量兜底 |
| 配置治理 | X1/X2 | 支撑频繁调数和跨版本兼容 | Schema、默认值、版本、热更新、安全阈值 |
| 埋点与漏斗 | X1 | 定位玩家在哪一步失败或流失 | 会话、阶段、步骤、结果、失败原因、口径版本 |
| 自动化与线上诊断 | X1/X2 | 降低回归和复杂故障定位成本 | GM、日志上下文、冒烟、弱网、性能采样、Crash 归因 |
五、本人可以主讲的五组工作
5.1 PVE 新手流程
- 业务:新手关不是一串弹窗,而是战斗、AI、导航、相机、任务和 UI 的受控演练。
- 实现:用步骤状态机保存当前节点;进入节点时注册目标和监听,退出时统一解绑;服务端或持久层保存关键里程碑,客户端只负责交互与表现;对目标消失、杀进程、跳过、重复进入和引导线缺失提供恢复路径。
- 难点:异步模块的完成顺序不稳定,任何一个模块丢事件都会造成永久卡关。
- 反思:应以“可恢复条件”而不是单次回调推进。步骤必须能根据当前世界状态重算是否已完成,并记录统一的
step/reason/result诊断信息。
5.2 局内外时间线
- 业务:统一活动节点、任务、奖励和界面在局内外的时间口径。
- 实现:服务端时间与时间线配置共同计算当前节点;客户端维护可恢复快照,场景切换后重新订阅;点击、领取和状态变化通过请求号和节点版本去重。
- 难点:本地时间不可信,跨日、切图、重连和配置更新会让旧回调污染新页面。
- 反思:时间线应是领域服务,不应散落在页面倒计时里;展示倒计时可以平滑,节点跃迁必须以权威时间重新校正。
5.3 物品、道具、背包与交互
- 业务:这是 PVP/PVE 风险收益和玩家信任的核心,不只是图标增删。
- 实现:区分物品定义和实例;拾取、移动、装备、开箱、消耗都建模为服务端事务;客户端可做表现预测,但必须等待版本化结果;交互组件统一候选、读条、打断和失败原因。
- 难点:开箱被打断、道具在两个格子、撤离后装备丢失等问题,本质上都是跨对象操作缺少原子性或客户端使用了过期快照。
- 反思:复杂库存操作应返回“新版本 + 变更集”,客户端检测版本缺口后请求全量,而不是继续用局部补丁猜状态。
5.4 HUD、相机和状态表现
- 业务:把复杂规则压缩为玩家此刻需要做的事。
- 实现:HUD 订阅领域 ViewModel;阶段、身份、技能、交互和队伍信息按优先级呈现;页面关闭、观战、复活和重连统一清理订阅;相机与输入焦点明确归属。
- 难点:UI 焦点会抢移动输入,视口变化会影响布局,观战目标销毁会留下错误相机,短时间多事件会造成提示互相覆盖。
- 反思:UI 只消费稳定状态,不自行推导规则;提示需要调度器和互斥策略;相机模式必须可回到安全默认态。
5.5 配置、埋点和长期线上维护
- 业务:验证玩法是否顺畅,并让跨版本问题能定位。
- 实现:关键流程统一携带会话、关卡、阶段、步骤、配置版本和结果;配置读取有默认值和版本门槛;线上修复保持最小影响并补回归用例。
- 难点:埋点上报成功不代表语义正确,零值、重复事件和漏报会制造错误结论。
- 反思:埋点应和状态机转移绑定,由同一事实源生成,而不是在 UI 点击处拼字段。
六、十二个必须能讲深的专题
6.1 权威状态与表现状态
伤害、掉落、库存、任务进度、撤离资格和结算由服务端权威;准星、相机、动画过渡和按钮反馈属于客户端表现。预测只缩短反馈时间,不能赋予客户端修改公共结果的权力。服务端结果到达后要以事务号或预测键确认、修正或回滚。
6.2 局内状态机
状态机应由服务端阶段序号和权威时间驱动。客户端的 Enter/Exit 必须幂等,迟到的旧阶段事件要按序号丢弃。重连时不要重放所有历史事件,而是先恢复当前快照,再补必要的未完成表现。
6.3 新手编排与可恢复性
每一步至少包含进入条件、完成条件、表现动作、监听集合、跳过策略、恢复检查和超时兜底。引导线或高亮只是表现,世界中的目标、任务和阶段才是事实源。杀进程后能从世界状态重新判断,是比“当时正常播完”更重要的验收标准。
6.4 物品身份与库存事务
配置 ID 回答“这是什么类型”,实例 ID 回答“玩家拥有的是哪一个”。带耐久、词条和绑定信息的装备不能只按配置 ID 合并。移动或撤离提交涉及多个容器时,要么由服务端原子完成,要么使用明确的预留和补偿协议。
6.5 Ability 生命周期
一次 Ability 包含 CanActivate、激活、Commit、Task 执行、取消/结束和效果清理。最常见的泄漏来自 Task 回调未解绑、动画中断未结束、重触发未取消旧实例。判断问题时先画生命周期,再看标签、预测键和网络角色。
6.6 通用交互事务
客户端发现候选并展示提示,按下后发送对象身份和交互类型;服务端重新验证距离、状态、权限和占用;读条期间任一前置条件变化都可打断;完成后服务端只提交一次结果。动画完成不能等同于业务成功。
6.7 地牢实例和确定性
随机内容必须绑定实例身份、配置版本和随机种子。客户端可以用同样数据构建表现,但服务端保留拓扑和关键实体权威。生成失败要能指出具体房间、连接或资源,而不是只报“加载失败”。
6.8 AI 意图与表现分离
行为树决定高层意图,移动、动画和技能分别交给对应系统执行。Task 必须支持中止;目标失效和寻路失败要显式回到可恢复状态。大量 AI 的优化顺序应是降频、休眠、空间相关性和对象池,而不是先牺牲决策正确性。
6.9 快照、增量与重连
实时事件只适合“从已知版本继续”。首次进入、版本断层和重连必须有全量快照。每个领域保存单调版本;收到旧版本丢弃,发现缺口重新拉快照。页面或对象销毁后必须释放订阅,防止旧回调写入新会话。
6.10 复制图与网络预算
复制图解决“哪些连接需要看见哪些 Actor”,并不替代业务同步。空间相关性、队伍相关性、全局状态和 Dormancy 应分层;高频瞬态数据尽量压缩或采用不可靠通道,库存和结算等结果必须可靠且可恢复。
6.11 结算与幂等提交
结束条件只能锁定一次,结算结果应绑定关卡实例和结算事务号。客户端重复请求、断线重连或返回局外时,服务端返回同一结果而不是再次发奖。局内表现完成与永久数据落库要有明确状态,避免玩家看到成功但资产未到账。
6.12 可观测性与故障复现
日志需要携带会话、关卡实例、阶段、玩家角色、关键对象、配置版本和事务号。对“偶现”问题,状态转移日志比逐帧打印更有效。自动化至少覆盖进局、关键交互、断线重连、结算和返回局外,性能采样则固定设备、地图和阶段。
七、面试回答模板
7.1 “请描述一个 PVE 玩法的客户端架构”
我会从一次对局的生命周期讲。最上层是组队、匹配、加载和重连组成的会话层;进入局内后,由服务端权威的 GameMode/GameState 推进阶段、目标、撤离和结算;角色、Ability、武器、Buff、交互和物品组成 Gameplay 层;地牢、房间、机关、怪物、行为树和导航组成世界层;HUD、引导、小地图、背包和结算只订阅领域状态;底层再由复制、RPC、配置、存档、埋点和自动化支撑。关键设计是区分权威状态与表现状态,用快照加版本化增量支持首次进入和重连,并把局内收益到局外资产的转换做成幂等事务。
7.2 “你在 PVE 里具体做了什么”
我直接投入最多的是四块:第一是新手流程,包括第二个新手关、智能提示、镜头步骤和偶现引导线问题;第二是局内外时间线及客户端/服务端联调;第三是任务、职业传记、HUD、小地图和配置接入;第四是撤离、装备、仓库、埋点等跨系统线上问题。我还在 PVP 阶段做过物品道具、交互、宝箱和 Gameplay Ability 接入。地牢生成、完整怪物 AI 和底层战斗框架不是我独立负责的,我能讲它们,是因为这些模块和我的流程有大量接口,而且我后来按源码把完整运行链路复盘过。
7.3 “新手引导为什么难”
它不是 UI 顺序问题,而是一个跨系统、可恢复的流程状态机。AI、导航、任务、相机、战斗和 UI 都是异步的,任一事件丢失都会卡死。我会把步骤写成进入条件、完成条件、监听资源、恢复检查和超时兜底;关键里程碑由权威侧保存,客户端重进后根据当前世界状态重算,而不是依赖上一次回调。线上偶现问题也围绕步骤、目标、阶段和失败原因记录诊断信息。
7.4 “你没有做完整 PVE,为什么能讲架构”
我会区分历史 ownership 和当前能力。我当时直接负责的是新手、时间线、任务配置、界面及跨端联调,这些工作本身就穿过会话、规则、AI、物品、网络和 UI 多个层。地牢、完整 AI、底层战斗等由团队其他成员负责;我不会说成自己的交付,但已经结合接口、调用链和源码把它们补成可以设计、排障和接手的系统认知。
八、个人能力收口
这段经历最能证明的不是“做过很多界面”,而是三种能力:
- 能把跨系统玩法需求还原成状态、事件、事务和恢复路径。
- 能在 Lua、C++、配置、网络和 UI 之间定位真实权威与生命周期问题。
- 能从线上偶现故障反推架构缺口,并把修复沉淀为版本、幂等、快照或自动化机制。
暂时不能使用的夸张说法:
- 我主导了整套 PVE 架构。
- 地牢生成、完整 AI 或战斗框架都是我设计的。
- 某项优化提升了明确百分比,但没有同口径数据或报告。
- 文件量、提交量等同于个人影响力。
后续专题文档应从本篇拆出:PVE 架构背诵稿、新手流程 STAR、局内外时间线 STAR、库存一致性案例、Gameplay Ability 追问卡和弱网重连设计题。