特色玩法与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 PVP2025.08 - 2026.05物品/道具、Gameplay Ability、交互对象、局内系统与复制接入与后续 PVE 有共享底座和重叠维护
G3 PVE2025.12 - 2026.06新手流程、任务/配置、时间线、局内外联调与线上维护与 PVP 重叠,不能重复计算年限

源码是持续演进后的当前状态。表中的完整模块不等于在本人参与期已经具备同样形态,也不等于本人参与了所有实现。

1.3 一句话口径

我在玩法侧经历了非对称、PVP 和 PVE 三段连续工作。直接负责过 HUD、物品道具与交互接入,PVE 阶段重点做新手流程、局内外时间线、任务配置、界面和客户端/服务端联调;底层地牢、完整 AI 和战斗框架并非都由我实现,但我已经沿共享 Lua、玩法内容仓和原生插件把整套运行链路补成了系统认知。

二、PVE 不是“打怪功能”,而是一条完整产品闭环

PVE 客户端同时承担五类职责:

  1. 会话终端:组队、匹配、加载、进局、重连、退出和结算。
  2. 世界运行时:关卡、房间、机关、怪物、掉落和撤离阶段持续演进。
  3. 战斗表现端:输入、技能、武器、命中反馈、动画、相机和 HUD。
  4. 进度呈现端:任务、新手、职业、故事、收藏、仓库和长期成长。
  5. 线上运营节点:配置、活动、埋点、反作弊、性能和问题诊断。

典型业务闭环:

局外准备 / 组队 / 装备
  -> 匹配和加载
  -> 初始化关卡、玩家与任务
  -> 探索房间 / 交互 / 战斗 / 拾取
  -> 阶段推进 / 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/GameStateX2/X3承载玩法规则与公共状态服务端权威、客户端镜像、阶段钩子、迟到加入
局内阶段与计时器X1/X2驱动探索、事件、Boss、撤离和结束服务器时间、阶段序号、断线恢复、UI 倒计时
目标与胜负判定X2/X3统一推进条件和结果条件聚合、死亡/撤离边界、全队失败、幂等结束
撤离系统X1/X2把局内收益转换为可提交结果撤离点状态、资格、读条、打断、阶段关闭、结果锁定
观战与死亡流程X1/X2让死亡玩家仍可理解战局观战目标、切换、复活、目标销毁、相机恢复
结算与返回局外X1/X2向玩家解释结果并刷新长期进度权威结果、动画、奖励到账、重复打开、返回时序
重连与中途加入X2/X3抵抗移动网络和切后台会话重绑定、全量快照、阶段恢复、表现补偿、超时
跨局时间线X1统一局内外活动、任务和奖励节奏服务端时间、节点状态、跨场景恢复、补发、点击流

4.2 地牢、世界与交互

模块层级业务价值实现与追问点
地牢资产数据X3将关卡结构从硬编码变为可配置资产Schema、房间模板、连接点、版本、校验
地牢实例与核心X3管理一次 PVE 世界的创建和销毁实例身份、随机种子、生命周期、失败清理
房间图与 TileX3组织探索拓扑和分区加载连通性、门连接、空间坐标、确定性生成
手工/JSON 关卡X2/X3支持策划白盒和精细关卡数据导入、资源引用、版本兼容、运行时构建
小地图与探索状态X1/X2反馈位置、房间和探索进度世界到地图坐标、迷雾、标记、双指缩放、重连恢复
门、宝箱和机关X1/X2承载探索节奏和风险奖励权威状态、交互条件、开启动画、奖励幂等、持久显示
传送与场景切换X2/X3连接分区、房间或多层世界目标合法性、输入冻结、加载遮罩、失败回滚
通用交互组件X1/X2统一靠近、按键、读条和打断候选排序、占用、进度同步、距离复核、取消原因
可放置场景对象X2/X3用统一基类承载机关和玩法物件配置、网络身份、组件组合、生命周期、编辑资产
场景代理与分区X3控制大场景实体加载和查询成本代理对象、空间索引、可见性、按需激活
关卡事件与随机事件X2/X3提供重复游玩的变化触发条件、种子、互斥、全队同步、奖励
白盒、评分与调试X2/X3提升关卡生产和验收效率可视化、GM、路径检测、关卡评分、问题定位

4.3 战斗、技能与角色

模块层级业务价值实现与追问点
角色基础与属性X2/X3统一生命、移动、阵营和成长参数属性来源、派生值、复制、死亡边界、重置
Character StateX2/X3约束移动、攻击、受击和控制状态状态互斥、优先级、标签、进入退出、异常恢复
Gameplay AbilityX1/X2承载可组合技能和道具行为激活条件、Commit、取消、冷却、预测、标签
Able TaskX1/X2拆分等待、动画、目标和时序步骤生命周期、回调解绑、取消传播、网络角色
Gameplay Effect/BuffX2/X3表达持续属性变化和控制效果叠层、刷新、免疫、来源、到期、复制
Gameplay Cue/表现X2/X3将权威效果映射为音画反馈去重、预测确认、对象池、迟到事件、回收
目标选择与指示器X2/X3支持锁定、范围和落点确认查询过滤、客户端预览、服务端复核、地形投影
武器、装备与槽位X1/X2支持战斗流派和成长差异装备身份、槽位约束、属性刷新、切换状态
投射物与命中X2/X3承载远程攻击和轨迹表现生成权威、预测表现、碰撞过滤、穿透、回收
伤害与受击X2/X3统一攻击结果和反馈伤害上下文、阵营、护盾、无敌、击杀归因
3C 与相机X1/X2决定战斗手感和可读性镜头遮挡、技能落点、自由视角、观战恢复
动画与 MontageX2/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、网络与工程质量

模块层级业务价值实现与追问点
局内 HUDX1聚合生命、技能、目标、队伍和阶段信息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、底层战斗等由团队其他成员负责;我不会说成自己的交付,但已经结合接口、调用链和源码把它们补成可以设计、排障和接手的系统认知。

八、个人能力收口

这段经历最能证明的不是“做过很多界面”,而是三种能力:

  1. 能把跨系统玩法需求还原成状态、事件、事务和恢复路径。
  2. 能在 Lua、C++、配置、网络和 UI 之间定位真实权威与生命周期问题。
  3. 能从线上偶现故障反推架构缺口,并把修复沉淀为版本、幂等、快照或自动化机制。

暂时不能使用的夸张说法:

  • 我主导了整套 PVE 架构。
  • 地牢生成、完整 AI 或战斗框架都是我设计的。
  • 某项优化提升了明确百分比,但没有同口径数据或报告。
  • 文件量、提交量等同于个人影响力。

后续专题文档应从本篇拆出:PVE 架构背诵稿、新手流程 STAR、局内外时间线 STAR、库存一致性案例、Gameplay Ability 追问卡和弱网重连设计题。