博客

博客

关于游戏手感、性能工程与引擎架构的技术笔记。其中大多数源自我修问题时随手记下的内容。

Unreal Engine 5 GAS: building an ability system right

My dash ability fired once on the client and then went silent. The bug was not GAS itself, it was touching an attribute without a GameplayEffect.

2026年8月28日 玩法 约 12 分钟

Unity Profiler: Find the Real Bottleneck, 22 ms to 8 ms

Frame time hit 22 ms and everyone blamed the shaders. The Unity Profiler capture said otherwise; here is how measuring took it down to 8.7 ms.

2026年8月14日 性能 约 10 分钟

土狼时间与跳跃缓冲:好跳跃的十二行代码

当玩家说「跳跃手感不好」时,他们通常指的是两个缺失的功能。两个都只要半小时就能写完。

2026年7月18日 玩法 约 7 分钟

Lag Compensation: Why Your Perfect Shot Did Not Count

How server-side lag compensation is actually built for shooters: the rewind buffer, the numbers that tune it, and the point where the window has to stop.

2026年6月30日 网络 约 13 分钟

游戏引擎中的 C++ 内存管理:谁吃掉了帧?

在帧内调用 new 会在分析器中产生约 13 毫秒的性能尖峰;通过引入帧竞技场和对象池,将峰值降低到 7.9 毫秒,并显著平滑了帧时间波动。以下是我们是如何发现并解决该问题的完整过程,包括定位问题、分析分配模式、实现 arena 分配器以及验证性能改进。

2026年6月12日 引擎 约 11 分钟

Unreal Engine 里 Blueprint 还是 C++:实测 7 毫秒开销与混合工作流的边界

Blueprint 虚拟机的开销在大多数场景里都看不见,但当每个 tick 要跑几万个节点时,它一个人就吃掉了 7 毫秒。这篇文章用实测数字讲清楚混合工作流的边界:哪些逻辑该交给 C++,哪些留在 Blueprint 里,UPROPERTY 该暴露到什么程度,以及团队变大之后合并冲突该怎么收场。

2026年5月24日 引擎 约 9 分钟

DOTS/ECS 迁移之后我学到的东西

我们把一个生产项目的一部分迁到了 ECS,帧时间下降了 34%。但收益并不来自我们预期的地方。

2026年5月2日 性能 约 11 分钟

移动游戏优化实战:通过测量draw call与overdraw把中端安卓机上的塔防场景提升17帧的完整记录

在一台中端安卓手机上,我的塔防场景一直卡在41帧。这篇文章记录了我如何在完全不减面的前提下,在真机上测量draw call、材质数量与overdraw,一步步把同一个场景推到58帧、帧时间从24.3毫秒降到16.4毫秒,以及每一处改动究竟换回了多少毫秒,还有我建议的完整排查顺序。

2026年4月16日 性能 约 10 分钟

用HLSL compute shader把GPU粒子系统做到一百万个:状态全留在显存的优化与实测记录

CPU端的粒子更新在四万个时就占掉主线程11.4毫秒,于是把粒子状态整体搬进StructuredBuffer,用HLSL compute shader更新,再由DrawProceduralIndirect直接绘制。文中记录线程组大小的取舍、DeadList回收机制与同步陷阱,并给出一百万粒子的实测数据。

2026年3月28日 图形 约 12 分钟

用最简单的方式讲清客户端预测

多人联机的移动看起来很复杂。其实只有三步:预测、比较、修正。

2026年3月11日 网络 约 13 分钟

Game engine architecture from scratch: six layers, one loop

Writing your own engine starts with getting the layer order right. Notes on subsystem order, fixed timestep simulation, and when to move to a ready engine.

2026年2月20日 引擎 约 14 分钟

URP 还是 HDRP:从目标平台、实测性能到迁移成本,完整拆解 Unity 渲染管线的选型方法与依据

目标平台清单往往已经替你做出了选择:我实测了 HDRP 在 volumetric 和 SSR 上的开销、URP 在移动端的带宽优势,以及项目中途切换渲染管线真正要付出的时间成本。

2026年2月5日 图形 约 9 分钟

风格化光照:走出卡通渲染之后

分层阴影是所有人都知道的第一步。真正的个性藏在边缘光和阴影颜色的选择里。

2026年1月24日 图形 约 9 分钟

NavMesh、A*与流场:让200个AI代理不再堵在城门口的游戏寻路性能优化实战

在一个200个代理同时冲向城门的攻城场景里,寻路为什么会堵死,NavMesh又在哪些地方悄悄骗了你,以及A*和流场之间那条分界线到底划在哪里。本文只依据性能分析器给出的真实数据,从NavMesh几何、每帧请求预算一直讲到local avoidance参数,给出一条可复现的排查顺序。

2026年1月8日 人工智能 约 11 分钟

Dedicated Server 游戏架构实战:单容器承载 48 名玩家,权威服务端设计与真实成本测算

我们把权威服务端从游戏后端中拆分出来,重写了匹配队列与房间分配逻辑,并按同时在线玩家人数核算了真实成本。文中给出单容器承载 48 名玩家的资源实测数据、按空闲会话数而非 CPU 占用率扩缩容的做法,以及区域选择、排空下线和何时用中继方案就已足够的判断标准。所有数字均来自一个 8 人竞技射击原型的线上实测。

2025年12月18日 网络 约 12 分钟

为什么你的角色控制器感觉像在滑动

当玩家说角色控制器感觉滑溜时,他们实际上在描述四个独立的 bug:刹车、地面检测、坡度处理和插值。

2025年12月2日 玩法 约 10 分钟

行为树还是 Utility AI?

两者都可能是正确答案。决定因素是你的敌人需要同时权衡多少件事。

2025年11月9日 人工智能 约 10 分钟

Game development CI/CD: why nightly builds change everything

Setting up build automation on a small team took five days; the average lifetime of a broken commit dropped from 2.5 days to 9 hours and release days calmed down.

2025年10月22日 工具 约 10 分钟

Publishing a game on Steam: what to do, and when to do it

On my first game I opened the store page three weeks before launch and shipped with 480 wishlists; on the second I built the calendar backwards.

2025年10月6日 职业 约 11 分钟

工作室真正在游戏程序员作品集里看什么

我也坐过面试官那一侧。那些让人眼前一亮的作品集里,有几件事反复出现。

2025年9月15日 职业 约 8 分钟

20 条结果

联系

一起做出 下一个版本吧。

全职岗位、外包项目或技术咨询 —— 邮箱始终开放。