橘猫新闻 综合报道 在近日于韩国首尔举行的Unite Seoul大会上,鹰角网络技术中心负责人Will首次公开了《明日方舟:终末地》在Unity引擎底层代码层面的深度定制化改造细节。这场被标注为“进阶”(Advanced)的演讲,是本次大会唯一一场来自中国游戏公司的项目分享,现场座无虚席,会后多名开发者排队与Will交流。据悉,该演讲为会场限定,未安排线上直播或录像。
Will在演讲中系统披露了团队为支撑“高精度角色、大量动态对象、无缝箱庭及跨平台”等复合需求,对Unity引擎进行的四项核心改造:其一,自研ECS(实体组件系统)数据内核,用于处理每帧数万个可渲染对象的高吞吐数据;其二,重构剔除、排序与批处理链路,使多个视图共享同一份可见性数据,并将渲染状态编码进统一的排序键;其三,将关键运行时渲染管理改为自写的原生C++管线,并在CPU端手写Render Graph以管理资源生命周期;其四,在底层封装一层沿用Vulkan语义的设备抽象层,屏蔽不同平台图形API差异,使移动端与PC端统一在同一条数据导向路径上。
据Will介绍,这套架构的初衷源于项目严苛的性能预算:在最低端可运行设备上,游戏需保证至少一公里的视距,而非用雾效遮挡。技术团队先实现了CPU软件遮挡系统——从场景中提取数百个主要遮挡物,简化为低面数遮挡片,在CPU端光栅化为低分辨率深度图,用于剔除被完全遮挡的对象。该过程与视锥体测试、LOD选择并行执行,线程间无需相互等待。Will透露,团队参考了英特尔公开论文,但最终方案为项目定制。
在ECS框架方面,团队进行了激进取舍:约70种组件ID在编译期写死,使用固定128-bit掩码描述组件组合,job直接采用原生C++和显式fence,磁盘文件与运行时chunk尽量保持相同布局,结构变更集中批处理。这使得场景加载时可通过一次内存复制(memcpy)直接搬入内存,大幅减少解析开销。针对玩家自由搭建的设施,系统通过批量实体创建请求处理,避免帧中途随机结构变更。
Will在会后接受采访时表示,早期实验显示,若尽量套用Unity原生渲染路径,仅做简单排序优化,游戏甚至难以稳定达到30帧。而通过上述完整架构,终末地得以在主流PC、主机及移动端旗舰机上以60帧甚至更高帧率运行高画质。他强调,这些改造并非“为手写而手写”,而是针对项目复合高压的必然选择。
