山海纪
东方神话开放世界。三张无缝地图、实时天气与御剑飞行,移动端锁定 60 帧,包体压缩至 3.2 GB。
项目背景
客户拿着一版世界观设定和三张概念图找过来,想要的很简单:一个能在手机上跑的东方神话大世界。听起来不难,难的是"手机上"和"大世界"这两个词放在一起。
接手时核心组只有 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.8 GB 压缩至 3.2 GB,首包 480 MB 即可进入新手关。
最难的不是某一个技术点,是让 26 个人在 18 个月里始终按同一套性能预算做事。我们给每个模块定了 Draw Call 和内存上限,超了就驳回,没有例外。
上线表现
- 骁龙 8 Gen2 / 天玑 9200 稳定 60 帧,中端机 30 帧兜底
- 移动端包体 3.2G,PC 端 18G,双端资源复用率 96%
- 三张地图无缝衔接,切换无 Loading
- 上线首月新增 210 万,次月留存 28%
/ PROJECT SHOTS
项目截图
制作过程与成品




「此前合作过两家供应商,美术能力没有问题,但程序在联机环节不稳定。这家的服务端为自研,20 万并发的压力测试报告可直接提供,这是我们选择的主要原因。」
/ MORE CASES
其他案例
同类项目
可达到同等标准
说明品类与目标规模,我们会对照历史项目给出区间,无需预先付费。

