大农场:Homestead——揭秘3D移动世界的技术内核

新月制作公司成立于2016年,致力于在保持游戏开发技术领先地位的同时,实现可持续的制作模式。过去十年间,该工作室已推出包括《帝国:》在内的多款游戏。第三次世界大战,帝国:骑士时代,家居与庭院:设计焕新,爱与激情:章节,大农场:移动丰收,大农场:故事岛,以及阳光岛。
他们的最新游戏作品《大农场》:《Homestead》是一款面向移动平台的农场模拟游戏。它构建于《大农场》之上:《移动农场》是《大农场》主系列中首款全3D游戏。
我们采访了新月制作公司产品营销总监安妮莎·内尔斯、艺术总监沃尔克·泽尔贝以及Unity开发专家菲利克斯·菲舍尔,探讨了将3D《大农场》世界移植到移动端背后的技术挑战与解决方案。
游戏愿景、世界构建与架构设计
《大农场》如何:家庭农场与大型农场存在差异:移动收获?
安妮莎·内尔斯:大农场:《家园》是一款高度注重故事驱动的游戏。玩家将跟随泰莎的脚步,在三座各具特色的农场中重建家族家园,每座农场都有独特的作物、建筑和动物。除了耕作之外,玩家将逐章节重新构建城镇,解锁角色、生产链,并逐步揭开与干涸湖泊相关的谜团。
章节制使剧情推进条理分明且便于回溯,而整个世界依然温暖而令人怀念。多人游戏元素,如公会和合作事件,能增强游戏体验。玩家因温馨的资源管理而来,因社区而留。
团队推出这款游戏作品的主要目标是什么?
AN:我们的目标是在不损害Big Farm IP核心幻想的前提下快速推进。我们构建了阳光岛和移动丰收项目的经验教训——从技术管道到市场洞察——并与Unity携手,在不到一年的时间内完成了游戏开发。

개발 과정에서最大的 기술적 도전은 무엇이었나요?
菲利克斯·菲舍尔:在Big Farm之间共享代码:在不创建分叉的情况下实现Homestead和Sunshine Island至关重要。我们将共享代码打包为NMP软件包,并通过Unity Package Manager进行调用。这使得在两款游戏独立演进的同时,仍能保持清晰的版本控制。我们分别处理了素材资源和设置,并为每个作品/游戏重新创建了ScriptableObjects。
沃尔克·泽尔贝:移动端优化是另一项关键挑战。该游戏拥有广阔无缝的地形与密集的物体,且需在最高八年的设备上流畅运行,具有较高的平滑度。我们专注于内存使用、绘制调用次数,并仅发布必要内容。

Timeline如何简化世界序列化?
VZ:Timeline管理建筑状态和游戏内过场动画。每个生产建筑依次循环于空闲、生产和收集状态,这些状态被设计为循环的Timeline Sequences。自定义轨道通过状态标记分段,轻量级脚本控制播放。这使得动画与逻辑紧密结合,便于美术师预览。
FF:我们还为Timeline新增了用于生成对象和触发事件的轨道,使其成为游戏玩法和过场动画场景的序列化工具。相较于动画控制器工作流程,Timeline操作更直观,并能减少时间轴问题。

你是如何在游戏玩法和过场动画中运用Cinemachine的?
VZ:Cinemachine负责处理世界地图与室内场景之间的流畅摄像机过渡和序列衔接。虚拟摄像机让我们无需复杂的手动设置,即可实现动态过场动画的运动效果。
FF:主摄像机完全虚拟化,并追踪玩家控制的不可见目标。事件或过场动画的额外摄像机将自动混合。这使得在游戏玩法和过场动画中都能实现精准平滑的操控。

通用渲染管线(URP)和Shader Graph如何提供帮助?
FF:通用渲染管线(URP)对于在不同设备上管理视觉品质和性能至关重要。这使得设置多个品质等级——低、中、高——变得非常简单。我们暴露了这些层级,以便玩家能够优先考虑保真度或性能。
与此同时,URP通过让玩家从中等或高画质设置开始游戏,帮助我们提供了出色的默认体验。这既能确保良好的第一印象,又能通过缩放阴影等特效来达到目标帧率。我们还利用URP的渲染功能(如镂空遮罩)高效地融合了3D元素与UI元素。固定着色器会使这些特效的实现变得更为复杂或成本更高。

ECS和Burst编译器在构建世界时发挥了什么作用?
FF:我们利用Unity面向数据技术栈(DOTS)中的实体组件系统(ECS)高效构建了游戏世界。建筑物、生产类型和角色都是实体。系统仅在相关组上运行,从而保持逻辑清晰且性能高效。性能关键型系统(如建筑网格和捕捞行为)受益于Burst编译器,将繁重计算从数秒缩短至近乎即时。
ECS处理了所有3D世界对象(不包括UI),因此我们能够缩放处理大量实体。查询系统使我们能够在无需定制化/自定义管理器的情况下定位相关实体,而ECS则推动了模块化架构的改进,从而提升了可维护性。使用早期阶段的API意味着需要频繁更新,但其性能和结构优势使这项投入物有所值。

您已应用了Unity 6的哪些功能?又计划利用哪些功能?
VZ:我们在Unity 6中探索了Forward+渲染技术以提升性能和可扩展性,并期待动态变量支持32位遮罩功能,这将为Runtime数据处理提供更高的灵活性。
FF:升级至Unity 6.3后,我们将能够更高效地批量处理更多对象,同时保持SRP Batcher的完整性。增强的内存性能分析器为资源管理和优化提供了更深入的洞察。
性能、优化与最佳实践
团队是如何解决性能问题的?
VZ:全动态光照搭配精细建筑成本高昂,因此我们引入了阴影代理技术——即为阴影渲染采用简化几何体,同时保留高细节网格用于最终渲染。我们还优化了单一定向光源周围的阴影渲染效果。
在原生2K或4K分辨率下渲染会导致高端设备出现掉帧现象。我们通过URP实现了动态分辨率缩放功能,可在需要时将分辨率降低至约70-80%,同时最大限度减少视觉影响。
FF:我们还优化了着色器。通过使用Shader Graph,我们构建了轻量级着色器,并将光照处理从像素级移动至顶点级——在合理的情况下。结合SRP分批处理技术,这种方案在无需依赖大型纹理图集的情况下保持了材质的灵活性,从而构建出可扩展且高效的制作流程。

您是如何识别并解决性能瓶颈的?
VZ:我们使用帧调试器和Memory Profiler来优化性能。帧调试器帮助我们发现了绘制调用和批处理效率低下的问题。Memory Profiler突显了占用大量内存的2D素材资源和UI图集,这帮助我们降低了旧款设备的内存使用量。
FF:我们还使用Unity性能分析器实时监控ECS系统,并识别性能瓶颈。Unity Auditor 标记了潜在的改进点,例如纹理和音频压缩。这些工具共同帮助我们平衡了性能与视觉品质,并在不同设备上保持了平滑的游戏玩法。
Addressables如何优化资产和app大小?
FF:我们为所有资产采用Addressables系统,从而简化了依赖项管理。Addressables让我们能够决定资产是打包在app中,还是托管在我们内容分发网络的远程服务器上。这有助于缩小app大小,确保玩家仅下载所需内容。对于玩家较少接触的季节性或事件指定内容,它尤其有用。通过动态加载这些素材资源,我们避免了不必要的内存占用。
VZ:可寻址地址对于满足google play的要求也至关重要,例如200MB的Android app包大小限制。app内已预置首次游戏会话或首周的核心资产,以确保流畅的初始体验。我们远程交付季节性或不常用的内容。这使得app保持轻量级的同时,仍能支持实时操作和事件驱动的内容。

对于在移动端游戏中平衡性能与视觉效果,您有什么建议?
VZ:对我们而言,性能至上。游戏需要吸引人的视觉风格,但在移动端——玩家通常进行短时游玩——流畅的性能尤为关键。加载时间过长、卡顿或延迟会破坏沉浸感,并降低玩家的常规游玩意愿。我们的目标是创造一个运行平滑的美丽世界,让进出其中变得轻松自如。
FF:与此同时,我们希望世界充满生机。细微之处,如隐藏的动物或微妙的动作,能激发探索与发现的乐趣。他们让体验始终充满吸引力,同时不会让设备或玩家不堪重负。
要了解更多Made with Unity的项目,请访问资源页面。
