Lisp 2025 年 SVN 提交 UE4 技术回顾
1. 总览
- 统计范围:
2025-01-01到2025-12-31 - SVN 作者:
lisp - 提交次数:
578 - 版本区间:
r57886到r64699 - 提交高峰:
2025-06 (99 次)、2025-09 (90 次)、2025-05 (75 次)、2025-10 (70 次)
从提交路径和提交说明看,你在 2025 年的工作重心非常明确,主要集中在以下几个方向:
- 流关卡 / 传送门 / 导航修复 / 副本加载流程
- 载具拼装系统的完整研发与大量迭代
- 尸潮副本的通道进入、积分、UI、退出、异常恢复
- 海洋水体与 Ocean 相关优化,以及后期 Oceanology 插件集成
- AI / NPC / 简单僵尸 / 性能优化 / 崩溃保护
- UI/HUD 调试信息、GM 命令、打包与工程化脚本
你的改动画像不是单一功能开发,而是偏“系统型开发 + 疑难问题修复 + 线上工程化”的组合。
2. 你在项目里的技术重心
2.1 流关卡、传送门、导航、LS/DS 差异处理
这是你在上半年非常明显的一条主线,核心问题都围绕:
- 流式关卡加载时机不稳定
- LS 模式和 DS 模式行为不一致
- 玩家传送后掉入地下
- 导航数据未及时创建或客户端不可用
- 副本/传送门回调时序不正确
你做过的代表性工作:
- 把传送门的蓝图逻辑逐步转到 C++,减少蓝图时序不确定性
- 为关卡传送、关卡加载、角色上线/复活增加状态判断
- 修复地下下水道、尸潮副本、PVP 副本等多个场景中的“掉入地下”问题
- 修复导航在客户端不可用、导航数据未创建、静态网格导航配置不正确的问题
- 增加调试命令和 HUD 输出,辅助定位流关卡与导航状态
- 反复区分 LS / DS 的特殊处理路径
这说明你对 UE4 下面这些点有实际踩坑经验:
ULevelStreaming相关加载时序LatentAction回调链的触发点控制- 玩家传送后位置修正和落地保护
- 导航数据在服务端/客户端上的创建条件
- 资源加载完成不等于场景可安全落地
- Listen Server 模式下“主机即玩家”的特殊性
可回忆的代表 revision:
r58050-r58052关卡传送门蓝图逻辑转 C++r58072LS 模式传送门后掉入地下修复r58182-r58215导航刷新、传送门与地下下水道问题修复r58222-r58223批量修复静态网格导航设置,覆盖大量资源r60713-r60740新增导航 GM 命令,DS 只在服务器修复导航r61501副本关卡传送门回调用FLatentActionInfo::ExecutionFunctionr63118-r63243尸潮副本场景加载、掉入地下、Loading 流程多轮修复r64149-r64197副本加载流程优化,继续处理掉地、UI、光照、雾 Actor
2.2 海洋水体、海洋 Actor 与 Ocean 插件
2 月到 3 月你对海洋相关功能做过一波比较典型的“蓝图实验 -> C++ 托管 -> 运行时优化”的工作:
- 海洋水体优化测试
- 海洋蓝图转移到 C++
- 根据玩家位置自动隐藏海洋 Actor
- 在持久关卡中增加海水管理 Actor
- 增加调试命令控制海洋显示
这类改动体现的是你在处理“大地图性能 + 流关卡下的显示控制”:
- 不只是会配蓝图,还会把高频逻辑转到 C++
- 会针对持久关卡做集中式管理 Actor
- 会加 GM/Console 命令做运行时排障
代表 revision:
r58060海洋水体优化测试r58106海洋蓝图转 C++r58110根据玩家位置自动隐藏海洋 Actorr58115增加海水管理 Actorr58164隐藏所有海洋的调试命令r58233海洋 Actor 优化r58286-r58290关闭海洋优化命令与自由模式地图中的海水优化 Actor
到 11 月底,你又提交了整套 Oceanology_Plugin:
r64321一次性提交963个插件相关路径- 覆盖
Binaries、Content、Source、Resources、.uplugin
这说明你后期已经不只是做项目内的海洋优化,而是把外部海洋插件集成到工程中,具备插件接入和工程落地能力。
2.3 载具拼装系统:你 2025 年最重的系统开发
从 4 月开始,载具拼装系统是你最核心的一条研发主线,而且不是小修小补,而是“从无到有 + 大量迭代”。
从提交规模看:
Content/Root/Vehicle是你全年最高频的三级目录Source/ProjectWar/Vehicle、Character、HUD、GameData、Construct都被大量联动修改- 资源、DataTable、UI、碰撞、权限、伤害、同步、存档、掉落、背包都被你串起来了
你做过的事情大致可以分成这些技术块:
A. 系统搭建
- 载具拼装系统初版的 C++ 框架搭建
- 配套蓝图、配置、碰撞预设、资源、DataTable 一起落地
- 工作台、底盘、车体、拼装块、载具券等对象体系成型
代表 revision:
r58487载具拼装系统初版(C++)r58488载具拼装系统初版(蓝图、配置、资源)r58579原分支拼装载具资源包一次性并入,大量Content/Root/Vehicle资源落地
B. 数据驱动与资源配置
- 配新载具、超大履带载具、武器块、轮子、履带
- 增加属性表格、武器表格、图纸配置、字符串表、本地化
- 修改块类型、子类型、品质、属性显示、图纸随机属性
你明显在做“代码 + DataTable + 本地化 + UI”四位一体的数据驱动。
C. 交互与 UI
- 工作台 UI 刷新
- Grid 拖拽
- Tips 展示
- 载具券信息显示
- Block 信息显示
- 底盘面板显示隐藏
- 首次打开 UI 无数据修复
- ESC/输入模式/UI 焦点问题
说明你对 UE4 UMG 和游戏逻辑联动很熟,不只是改界面,而是处理:
- 数据刷新时机
- 客户端回调
- 交互权限
- 输入模式切换
- UI 与背包、装备、工作台之间的状态同步
D. 碰撞、吸附、拼装约束
- 吸附点显示、隐藏、颜色、数组索引保护
- 拼装块数量限制
- 轮子数量限制
- 吸附区域初始化
- 初始旋转 / 旋转偏移
- Landscape Block 规则
- 只允许一个车体
- 伤害框 / Destroy Box / 碰撞预设修改
这反映出你对 UE4 场景交互常见问题都实际处理过:
Collision Preset- 组件层级
- 物理体/胶囊体碰撞
- 资源上的碰撞配置和代码中的过滤逻辑一起配套修改
E. 伤害、耐久、武器和护甲
- 块耐久、车体耐久、整体耐久显示
- 护甲、生效顺序、护甲穿深属性
- 武器弹夹容量、射速、转速、射程属性生效
- 炸膛 / FX Socket / 音效 / 熄火 / 损毁材质
- 范围伤害下多个护甲块向车体转换时的逻辑修复
这里体现你不仅在做载具外观和交互,还深入到了:
- 武器与伤害结算
- 属性系统落地
- UI 数值表现
- 资源 Socket / 特效 / 音效的配套修正
F. 存档、上下线、同步、异常恢复
- 上下线恢复工作状态
- LS 服未完成拼装就被存档
- 存档恢复后吸附区域清理
- 存档恢复损毁特效
- 载具券回收后弹药 / 物品返还
- 下发不同步、UI 不刷新、远离后再回来状态错误
这说明你处理了大量“多人联机 + 持久化 + 中途异常状态”的难题。
G. LS/DS、崩溃与线上 Bug
- LS/DS 放入底盘、取下底盘行为不一致
- 载具券、工作台、背包逻辑在不同网络模式下差异很大
- 反复增加
ensure优化、空指针保护、崩溃修复
代表 revision 可以重点回忆:
r58487-r58580系统初版、资源导入、武器支持r58632-r58732吸附点、UI、碰撞、Block 提示、动画蓝图r58863-r59094属性、图纸、DataTable、UI、随机属性、耐久r59149-r59315Tips、速度、伤害、接口命名统一、武器属性生效r59876-r60472旋转、UI、损毁、载具死亡、持久化、LS/DS Bug、崩溃修复r60541-r61281属性继续生效、交互权限、资源摧毁框、武器旋转同步、护甲穿深、碰撞规则r62474拼装块载具电锯攻击僵尸崩溃修复r63795-r63838只允许一个车体、UI 区分车体/底盘、范围伤害护甲块结算修复r64523Ship 测试提交r64684-r64685老工程迁移蜘蛛腿相关 C++ 与蓝图资源
一句话总结:你在 2025 年已经把“载具拼装”从概念验证推进到了一个跨 C++、蓝图、资源、UI、伤害、网络同步、存档恢复、工程配置的完整系统。
2.4 尸潮副本:通道、积分、限制条件、异常状态恢复
8 月到 10 月,你的另一条超重主线是“尸潮副本支持选择通道进入逻辑”。
这部分非常像你在做一个独立的副本系统产品化迭代,涉及:
- 通道进入
- 不同通道公用配置
- 公会限制 / 队伍限制
- 商店虚拟货币购买
- 独立积分与详细积分计算
- 击杀倍率
- 副本内死亡复活点
- 掉落包处理
- LS / DS / 下线 / 断线 / 杀进程 / 副本结束的异常流程
- 副本结束后玩家转移、大世界入口恢复
- UI、Loading、退出确认、遗留物品取回
这部分反映出你对 UE4 中“副本状态机”有很强的实战修改经验。你处理的问题,已经不是单个函数,而是完整流程:
- 玩家如何进入副本
- 副本中 UI、积分、商店如何联动
- 中途死亡、下线、断线、强退如何恢复
- 副本结束后怎么清理、怎么结算、怎么转移玩家
- 组队、公会、通道、GroupId 如何参与逻辑判断
代表 revision:
r61607-r61659通道进入逻辑初版r61710-r61829公用配置、公会限制、UI 和蓝图补充r61760-r61803LoadingUI、积分独立、积分详细计算r61901-r62151商店虚拟货币、玩家是否在副本中、GM 命令、击杀倍率显示r62207-r62468退出、复活点、战场清理、配置名修改、NPC 距离限制r62678-r62981不同副本组积分图标、爆炸桶积分、商店刷新、组队积分规则r63060-r63307副本内退出、掉地、Loading、下线恢复、掉落包处理r63318-r63945LoadingUI 时机、退出确认、积分存档、独立冷却、交互式传送门、遗留物品取回、GroupId 问题、音乐配置r64100-r64197商店扣分 bug、加载流程持续优化、雾 Actor / 光照 / LS 传送异常继续修复
这条线说明你非常熟悉:
- 关卡状态同步
- 副本中玩家状态持久化
- 服务端权威逻辑
- HUD/UMG 与副本数据绑定
- GM 调试命令辅助定位
- 复杂异常流程兜底
2.5 AI / NPC / 简单僵尸 / 性能与刷怪
你全年也持续做了不少 AI / NPC 相关工作:
- 自动删除远离玩家的 NPC
- 刷怪器限制调整
- 服务器启动延迟后再开始刷怪循环
- 输出 NPC 位置 / 数量统计
- 简单僵尸 C++ 与蓝图原型
- NPC 积分、爆炸桶击杀、玩家载具击杀计分
- 远离玩家 NPC 跳帧优化
RunGameThread等线程相关修正
这说明你既做行为逻辑,也做性能调优和调试观测。
代表 revision:
r58167自动删除不在玩家周围的 NPCr58239关卡加载完成后再生成 NPCr60798服务器启动后延迟 10 秒开始刷怪循环r61237使用RunGameThreadr61348-r61367HUD / Framework 输出 NPC 数量统计r62512远离玩家的 NPC 跳帧优化r62608-r62967简单僵尸 C++、蓝图和整体修改
2.6 HUD、调试信息、GM 命令与可观测性
从很多 revision 能看出,你在做系统功能时,会顺手补齐可调试能力:
- HUD 输出加载状态、NPC 数量、对象数量、属性信息
- GM 命令控制导航刷新、玩家冷却、退出副本、删除尸体、停止 NPC 重生等
- 日志输出、警告开关、调试信息展示
这是很典型的“线上问题定位思维”,不是只修功能,而是先建立观测手段。
代表 revision:
r58014关卡加载调试信息显示r58182刷新关卡导航信息的 GM 命令r60713SetAutoRefreshNavFlagr62170RefreshPlayerLocNavr62241-r62242修改关卡游戏时间、输出服务器 NPC 数量r63444-r63446玩家冷却时间 GM 命令优化r63990RemoveAllDeadFighterr64185StopAllNPC
2.7 工程化、打包、版本、第三方插件与线上发布
你并不只在写玩法,也在处理项目工程化:
- 打包脚本自动读取 SVN 提交编号
- 不同 BuildConfig 拥有独立母包版本号
- 停止 FTP 上传改为本地存储
- Test 包也保存符号文件
- Development/Test/Shipping 的 dll、pdb 名称特殊处理
- 符号服务器地址修改
- Linux 编译错误修复
- EasyAntiCheat 升级
- Workshop 插件编译
- CatchyPlugin / Steam OnlineSubsystem 的保护处理
- icsdk 假 Development lib 接入
代表 revision:
r57905打包脚本自动获取 SVN 提交编号r58344符号服务器地址变更r58392打包脚本增加OnlyExe参数r61320Development 包与 Test/Shipping 名称差异处理r61323EasyAntiCheat 1.6.0 升级到 1.9.0r61500根据 BuildConfig 区分母包版本号r62014停止 FTP 上传改为本地存储r62142Test 包完成后保存符号文件r64142Workshop 插件编译提交r64291-r64294Steam 子系统获取失败次数限制r64461Socket 连接有效性保护
2.8 崩溃修复、空指针保护、线上稳定性
你全年多次做“线上崩溃保护型提交”,而且分布在不同模块:
- Character
- Vehicle
- AI
- Framework
- GamePlay
- BaseClasses
说明你承担了不少线上稳定性问题处理。
常见手段包括:
- 空指针保护
- 延迟 Spawn 相关崩溃修复
- Development 包崩溃保护
- 线上外网崩溃日志后定点修复
- 等价重写危险代码并记录日志
- 资源加载未完成时的保护逻辑
代表 revision:
r58116、r58136空指针保护r60472载具拼装崩溃修复r61292-r61310外网崩溃与 Development 包崩溃处理r61422服务器崩溃空指针保护r62303UConstructManager::PickupOverlapSphere崩溃临时修复r63022-r63103延迟 Spawn、爆炸桶相关崩溃修复r63342潜在空指针保护r63908-r63942Character / AI / 客户端崩溃保护
3. 你改动里体现出的 UE4 技术能力
从 2025 全年提交看,你在这个项目中体现出的 UE4 技术能力主要有:
3.1 蓝图转 C++ 的工程化落地能力
你不是简单“会写 C++”,而是会把蓝图中时序敏感、性能敏感、稳定性敏感的逻辑迁移到 C++:
- 传送门逻辑
- 海洋管理逻辑
- 简单僵尸逻辑
- 多个副本/载具相关核心流程
这说明你知道什么时候蓝图够用,什么时候必须转 C++。
3.2 多系统联动能力
你的大功能都不是单点修改,而是会同时联动:
SourceContentConfigDataTableUILocalizationBuild Script
这说明你对 UE4 项目的整体结构很熟,不是只改某个类。
3.3 联机模式差异处理能力
你大量提交都在处理:
- Listen Server
- Dedicated Server
- 客户端
- 上下线
- 中途断线
- 杀进程
说明你在网络模式差异、状态恢复、服务端权威处理方面有扎实经验。
3.4 数据驱动思维
你经常通过这些方式落地功能:
- DataTable
- 枚举
- 资源表配置
- 字符串表 / 本地化
- 碰撞预设 / ini 配置
这类习惯说明你做功能时考虑长期维护,而不是把逻辑全硬编码在类里。
3.5 调试与线上排障意识
你经常补:
- HUD 调试信息
- GM 命令
- 日志输出
- 空指针保护
- 临时兜底逻辑
这说明你很适合接“线上问题难复现”的系统性 Bug。
4. 按时间线回忆你 2025 年做了什么
1-3 月
- Linux 编译错误修复
- UI 载具速度显示调整
- 关卡传送门蓝图逻辑转 C++
- 海洋水体优化与管理 Actor
- 导航批量修复
- 关卡 / 副本掉地与导航问题集中处理
4-7 月
- 载具拼装系统初版启动
- 大量 C++、蓝图、资源、UI、DataTable、碰撞配置接入
- 载具武器、护甲、属性、图纸、耐久、伤害、同步、存档持续完善
- LS/DS 差异、工作台、载具券、背包联动、损毁效果、旋转与吸附大量修正
8-10 月
- 尸潮副本通道进入逻辑完整推进
- 商店虚拟货币、积分系统、公会限制、退出与下线恢复
- LoadingUI、交互式传送门、掉落包与遗留物品、GroupId 等问题大量修复
- 同期继续补充载具、AI、崩溃保护和打包脚本
11-12 月
- 副本加载流程继续优化
- 玩家尸体休眠 / 删除长时间不登录玩家尸体
- Workshop、CatchyPlugin、Oceanology_Plugin 等工程与插件工作
- 船载具测试
- 老工程蜘蛛腿相关内容迁移
5. 你可以怎么用这份文档快速回忆
如果你想快速恢复对项目的记忆,建议按下面顺序回忆:
- 先看“载具拼装系统”这一章,因为这是你全年最重的产出
- 再看“尸潮副本”,因为它体现了你后半年的系统性工作
- 然后回看“流关卡 / 导航 / 掉地 / LoadingUI”这条线,这基本是你在项目里最核心的排障能力
- 最后看“打包 / 插件 / 崩溃保护”,补齐你对工程侧工作的记忆
6. 一句话结论
如果用一句话总结你 2025 年在这个 UE4 项目里的技术工作:
你主要承担了“复杂联机玩法系统开发 + 流关卡/副本时序修复 + 载具拼装系统研发 + 尸潮副本产品化迭代 + 线上稳定性与工程化支持”这五类核心工作。