山海纪
东方神话开放世界。三张无缝地图、实时天气与御剑飞行,移动端锁 60 帧,包体压到 3.2G。
这个项目是怎么来的
客户拿着一版世界观设定和三张概念图找过来,想要的很简单:一个能在手机上跑的东方神话大世界。听起来不难,难的是"手机上"和"大世界"这两个词放在一起。
接手时核心组只有 5 个人,18 个月后交付是 26 人。中间推翻过两次战斗系统,也重做过一次地图分区。
三个卡点
01 / 移动端跑 UE5
Nanite 和 Lumen 是给 PC 和主机设计的。直接搬到移动端,中端机三分钟就烫手,帧率掉到 20。这是项目最开始最要命的问题。
02 / 三张地图不能有 Loading
无缝大世界的关键不是地图大,是玩家感觉不到边界。常规做法是走到边界加载一下——玩家一看黑屏就知道你在偷懒。
03 / 同一套资源,两种画质
PC 端要能开高画质做宣传片,移动端要能跑。如果做两套资源,美术工作量翻倍,后期一定对不上。
我们怎么做的
分块流式加载
把世界切成 512m × 512m 的格子,每格预烘焙 LOD 层级和碰撞数据。玩家移动时按预测方向异步加载下一格,加载耗时从 180ms 压到 12ms,肉眼看不出来。
视距分级渲染
远景(800m 外)用 Impostor 八面图,中景(200–800m)走 LOD2,近景(200m 内)才上完整模型。加上视锥与遮挡剔除,同屏 Draw Call 从 2400 降到 780。
材质变体合并
美术最初做了 47 种材质,每种带独立 Shader 变体,光编译就要 40 分钟。归并成 12 个母材质 + 参数实例,变体数降到四分之一,包体和编译时间一起下来。
包体瘦身
贴图统一转 ASTC 分块压缩,音频换 Opus,剔除未引用资源,再把首包和资源包拆开——总包体从 5.8G 压到 3.2G,首包 480M 就能进新手村。
最难的不是某一个技术点,是让 26 个人在 18 个月里始终按同一套性能预算做事。我们给每个模块定了 Draw Call 和内存上限,超了就驳回,没有例外。
结果
- 骁龙 8 Gen2 / 天玑 9200 稳定 60 帧,中端机 30 帧兜底
- 移动端包体 3.2G,PC 端 18G,双端资源复用率 96%
- 三张地图无缝衔接,切换无 Loading
- 上线首月新增 210 万,次月留存 28%
/ PROJECT SHOTS
项目里的
几张图。




「我们之前找过两家,美术都能做,程序一到联机就崩。这家的服务端是自己写的,20 万在线的压力测试报告直接给我们看,这点最实在。」
/ MORE CASES
其他案例。
你的项目,
也能做到这个程度。
把品类和想做的规模说一下,我们对照历史项目给你一个区间,不用先付钱。

