在策略与 Roguelike 类型的游戏中,战斗规模往往会随着玩法设计不断扩大。当数百个单位同时出现在同一战场上时,如何在保持游戏节奏的同时维持稳定性能,成为开发过程中必须面对的核心技术问题。
《幻面之旅》是一款融合塔防与自走棋机制的 Roguelike 战斗游戏。这个包括主程、主美、制作人、概念设计师以及负责海外推广顾问的五人小团队,此前曾开发过登上E3展的动作 Roguelike 游戏《合金重组》。相比上一款作品偏动作化的战斗体验,《幻面之旅》的设计目标更加明确:构建一个“轻量但高密度”的策略战场。
![]()
在游戏中,玩家需要守护场景中央的“女神”防御核心,并在不断涌入的敌人攻击下维持防线。玩家通过击败敌人获取经验和货币,用于召唤随从、建设防御塔或提升自身属性。随着战斗推进,玩家可以逐渐形成不同的发展路线:选择更多随从可提升人口上限,获数值偏低增幅;选择精锐化随从,人口上限提升少,但随从升阶上限变高,获更强 buff。这种策略分化让战场规模在后期关卡中迅速扩大,刷怪量峰值时可能超过三百个单位。
![]()
正是在这样的设计背景下,团队在项目早期就将性能作为核心技术目标,并最终决定将开发环境从 Unity 迁移到团结引擎。
当战斗规模成为核心挑战
团队此前的项目主要基于 Unity 2019 和 2021 开发,因此在技术上已经积累了较多经验。但在《幻面之旅》立项阶段,开发者重新评估了未来可能出现的性能压力:大量角色、重复行为逻辑、密集的战斗特效,以及不断增加的渲染对象数量,都可能成为潜在瓶颈。
最终团队选择使用团结引擎 1.6.7 作为项目的主要开发版本。迁移的原因并不在于功能差异,而更多来自于性能考虑。对于一个需要在同一场景中同时运行数百个单位的项目来说,团结引擎的合批优化带来了显著的性能提升。
在技术规划上,团队为项目制定了三个核心优化方向:首先通过 SRP Batcher 提升渲染批处理效率;其次借助团结引擎的 Profiler 工具建立持续的性能分析工作流;未来在逻辑层面逐步引入 ECS 框架,以优化战斗中大量相同行为逻辑敌人的情况。这些策略共同构成了项目的技术基础。
让数百个敌人同时出现:SRP Batcher 的作用
虽然《幻面之旅》具有塔防元素,但敌人会在短时间内大量刷新,后期关卡的战场密度明显增加。当数百个角色同时存在时,渲染阶段的 CPU 开销往往成为帧率下降的主要原因。
为了解决这一问题,团队在渲染层面依赖 SRP Batcher 进行优化。SRP Batcher 通过统一材质和渲染状态,使大量使用相同 Shader 的对象能够共享渲染数据,从而减少 CPU 与 GPU 之间的状态切换成本。在实际开发过程中,这一优化策略对高密度战斗场景产生了明显效果。
![]()
团队的测试表明,在游戏前中期战斗规模逐渐扩大的阶段,帧率基本可以保持稳定。只有在游戏末期接近刷怪峰值时,才会开始出现较为明显的帧数下降。对于以大量同类敌人为核心玩法的策略或 Roguelike 游戏来说,这种批处理优化能够显著延长稳定运行的区间。
用数据驱动优化:Profiler 的日常使用
在持续优化过程中,团队还使用了团结引擎的 Profiler 工具来定位性能问题。打包时勾选 Development Build、Autoconnect Profiler,可在真实运行情况下观察各项开销,在编辑器内也能根据时间消耗找到需要优化的行为。
![]()
![]()
通过 Profiler,开发者可以清晰地看到 CPU 与 GPU 的时间分布,以及脚本执行、渲染调用和 GC 分配等关键指标,通过时间消耗排名快速定位最昂贵的行为逻辑,再针对具体系统进行针对性优化。这种以数据为依据的调优方式,在高密度战斗场景中尤其重要,很多性能问题只有在真实规模的战斗中才会显现出来。
为规模化战斗准备:ECS 架构的引入
随着战斗规模扩大,传统基于 MonoBehaviour 的架构会面临大量 Update 调用、对象生命周期管理复杂以及 GC 压力增加等问题。特别是在敌人行为高度相似的情况下,这种架构往往无法充分利用现代 CPU 的缓存结构。因此,团队计划逐步将项目整体采用 ECS 框架进行优化。ECS 将数据与行为逻辑解耦,使系统能够以更连续的数据结构处理大量实体,从而获得更好的缓存命中率和并行计算能力。
在《幻面之旅》中,绝大多数敌人的行为模式实际上非常一致:移动、搜索目标、攻击、受伤和死亡。这类重复度极高的逻辑非常适合使用 ECS 批量处理。虽然目前项目仍在规划这一架构转变,但团队的目标很明确:为大量角色的战斗场景进一步压榨性能空间。
![]()
当同一套战斗逻辑走向更多平台
从《合金重组》到《幻面之旅》,团队的项目开发计划尽可能辐射更多平台。团结引擎在跨平台开发上的便利性,成为了团队以更低的开发成本触达到更多玩家的关键原因。
就目前的开发经验来看,游戏的核心代码在不同平台之间基本可以保持不变,真正需要针对性调整的部分集中在玩家交互方式和 UI 层。也正因为底层开发路径足够统一,团队才有可能在不反复重构主干逻辑的情况下,把项目逐步推进到 PC、移动端、主机,甚至小游戏平台。对于中小团队而言,这种跨平台能力能够显著减少重复开发,让有限的人力更集中地投入到玩法打磨和内容完善上。
在轻量化流程中追求精致表现
在《幻面之旅》的美术实现中,团队并没有把“风格化”理解为单纯的视觉选择,而是把它放进了整体开发流程中一起考虑。对于一个小团队来说,理想的美术方案不仅要能够建立辨识度,还要足够轻量,能够降低光照、资产制作和迭代过程中的成本;同时,它又不能以牺牲表现力为代价,战斗中的角色、特效与场景仍然需要维持足够细腻的完成度。
基于这样的思路,团队逐步形成了一套偏轻量化的美术路径:一方面通过“无影动画”风格控制渲染与光照复杂度,另一方面借助 AI 辅助工具提升前期概念设计效率,再结合 Unity 成熟的粒子系统完成战斗特效,最终在相对便捷的工作流中,维持了游戏整体较完整的视觉呈现。
“无影动画”:一种更轻盈的视觉方案
《幻面之旅》采用了一种较为独特的视觉风格,团队将其称为“无影动画”,灵感来自二维动画作品。在这种表现方式中,场景仍然具有完整的视觉和氛围变化,但角色本身并不会参与复杂的实时阴影计算。
![]()
这种设计并不仅仅是风格选择,同时也是一种技术策略。通过减少角色阴影和复杂光照的参与,开发者可以大幅降低实时光照与烘焙贴图的开发成本。角色视觉变化主要通过后处理效果、场景滤镜以及 Shader 调整来实现,例如为角色添加校色 Shader,针对不同时段进行校色,并挂上关卡的全局滤镜,来进行诸如色彩平衡、饱和度、明度、亮度的调整。
![]()
同时,团队还根据不同时段建立光照效果数值数据库,当关卡抽取到对应时段,就从数据库中获得其对应的参数,应用到全局设定里。
![]()
对于规模较小的团队而言,这种方式在保持视觉体验多样的同时,也能显著减少实时光对性能消耗的影响,提升场景迭代效率。例如战斗大招场景,只需提前预制好技能数值参数,即可根据技能的美术设计进行滤镜与相关材质的全局校色。
![]()
*技能对全局校色
AI 工具进入美术生产流程
在资产方面,团队也尝试将 AI 工具引入到美术流程中,主要使用网上开源的 PS ComfyUI,将手绘流程与 Photoshop 插件实时演算相结合。
![]()
![]()
为了保证风格一致性,团队并没有使用 AI 直接生成最终资产,而是主要将 AI 用于概念设计阶段。例如在早期草图中,美术会先绘制基本的角色正面设计,然后通过 AI 工具生成多个视觉方向,再进行人工筛选和调整。相比完全手绘的流程,这种方法能够更快地探索不同的视觉方案,同时保持较高的可控性。
![]()
从一张手绘草稿,能很快看到角色主视觉,甚至是完成度很高的角色动态视频,团队的反馈是,这种引入 AI 的工作流显著提高了效率,特别是在寻找风格方向和角色设计灵感时。
用粒子系统构建战斗特效
战斗表现方面,《幻面之旅》几乎全部技能特效都基于 Unity 内置粒子系统实现,包括战斗中和特写镜头中的3D粒子。
![]()
对于一个需要大量技能表现的 Roguelike 游戏来说,Unity 粒子系统能够在保证效率的同时提供足够丰富的视觉变化。团队也关注到团结引擎全新的 Infinity 粒子系统,该系统基于 ECS 架构设计,可以支持十万级粒子的高性能渲染,并兼容原有粒子系统。这为项目未来的视觉升级提供了新的可能性。
仍在探索中的技术方向
随着项目逐渐完善,团队也在尝试一些新的技术方向,其中之一是将 2D 角色与 3D 武器结合。目前的游戏整体类似 2.5D ,即 3D 建模场景搭配 2D 角色。通过引入 3D 武器模型,可以让战斗表现更加立体,但同时也带来了动画匹配、渲染层级以及视觉一致性等问题。目前团队正在持续探索实现这一效果的技术难点,期待为最终作品带来新奇的视觉与游玩体验。
另一个实验性的想法是角色特写镜头交互设计。团队希望在策略类战斗中加入更具表现力的瞬间,例如在关键技能释放时触发短暂的特写互动镜头,以增强玩家与养成角色之间的情感连接,同时也为玩家社区的提供二创素材。目前这种设计还在探索中。
*战斗场景内特写镜头
小结
对于像《幻面之旅》这样以高密度战斗为核心体验的游戏来说,性能优化不应该只是后期工作,而需要在项目早期就从技术架构、美术工作流等方面全方位纳入规划。团结引擎的 SRP Batcher 的合批优化、 Profiler 持续性能分析、广泛的平台兼容性以及面向数据的高性能粒子系统,为更大规模的战斗场景、更轻量高效的美术工作流打下了基础。
对于考虑从 Unity 转向团结引擎的开发团队,《幻面之旅》的开发者给出的建议相对简单:放心大胆用,因为迁移成本比想象中低。由于 API 与开发流程保持高度一致,大部分项目都可以丝滑迁移,同时也不要忘记做好项目备份和立项后及时申请授权认证。
随着项目继续推进,这些技术实践也将不断迭代,并为类似类型的策略或 Roguelike 游戏提供一些可参考的开发经验。
Unity 官方微信
第一时间了解Unity引擎动向,学习进阶开发技能
每一个“点赞”、“在看”,都是我们前进的动力
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.