新闻

2025年6月23日

Parrot游戏示例:为转向虚幻引擎的游戏开发者提供的全新实用资源

Fab

Parrot Game Sample

Unity

学习

游戏

蓝图

secret-dimension-logo.png
Secret Dimension是一家于2017年成立的一流联合开发游戏工作室。该团队由在工程、设计和技术美术领域拥有3A级专业知识的资深人士组成。Secret Dimension致力于帮助各种规模的客户应对最艰巨、最困难的开发挑战,他们曾在所有主流游戏引擎以及一些专有引擎中开展工作,但主要专注于虚幻引擎。
更换游戏引擎是游戏开发领域永恒的话题之一,开发者们深知,将团队和项目迁移到新引擎可能会是一段充满挑战的经历。

不同引擎在架构层面存在差异,从代码风格到工具使用,再到美术管线,这些差异的影响体现在方方面面。这意味着,如果你打算更换游戏引擎,开发模式(以及团队已有的知识体系)都需要进行相应更新。

我们正在尝试帮助那些考虑转向虚幻引擎的开发者尽可能顺利地完成过渡,而这就是Parrot游戏示例项目发挥作用的地方!

Parrot游戏示例项目介绍

Parrot游戏示例项目是Epic Games与资深开发工作室Secret Dimension携手合作的成果,旨在为拥有Unity开发经验并希望以实践方式学习和在虚幻引擎中开发游戏的开发者提供支持。

Secret Dimension在虚幻引擎5.6和Unity 6中使用相同资产开发了同一款游戏。这是一款魅力十足、以海盗为主题的2.5D平台跳跃游戏,包含三个关卡、一个标题界面以及一套完整的菜单系统。他们的目标是:让这两个版本尽可能保持高度一致,并记录整个过程中的每一个见解。
Parrot游戏示例项目就是最终成果,该项目在Fab上免费提供Unity版本和虚幻引擎版本。这个项目附有详尽的注释和全面的文档,诚邀开发者深入探究每个项目,阅读文档与注释内容,探索所使用的工具,并从Secret Dimension跨引擎开发的历程中汲取关键经验。

从项目的启动,到充分利用虚幻引擎5内置的功能和简化的工作流程,Parrot游戏示例项目提供了实用且贴合实际的见解,任何开发者都能从中受益,加速成长。

其目标十分明确:教导和启发。

让我们直接聆听Parrot游戏示例项目的创作者,即来自Secret Dimension的高级软件工程师Dakota Herold和Justin Thomas分享其开发方法。

开发Parrot游戏示例项目

大家好!我们是Dakota Herold和Justin Thomas。我们二人最初都以专业Unity开发者的身份开启职业生涯,在加入Secret Dimension后,我们开始转向学习虚幻引擎。
着手制作Parrot游戏示例项目时,我们设定了为数不多的几个目标。我们希望在虚幻引擎和Unity中打造出尽可能高度相似的游戏,以便更轻松地对比两者的实现方式。我们需要确保游戏系统遵循符合Epic编码标准的良好工程实践,为在虚幻引擎中开展开发工作奠定坚实基础。最后,我们非常重视文档记录,也就是说,我们会尽可能清晰、直白地编写虚幻引擎代码,并添加全面、具有说明性的注释,帮助解释我们正在做什么、底层虚幻引擎系统如何运作,等等。通过这种方式,我们希望代码本身就能够成为文档,这与虚幻引擎本身的设计理念一致。

除了详尽注释的代码外,我们还提供了一套辅助文档,它们将更深入地拓展部分主题,包括对相关概念、虚幻引擎系统、Parrot实现方式的更全面解释,并在必要时引用官方虚幻引擎文档。

我们为游戏中的内容安排以及需要实现的功能制定了一套开发计划,以确保最终的教程具有实际价值。我们的目标是为开发者提供一套实用的功能与架构,便于交叉参考。

为了实现这一目标,我们构思了一款基础2.5D平台跳跃游戏的设计方案,将我们想要展示的所有功能和系统都融入其中。我们力求让每一个示例都尽可能做到纯粹且简洁明了。最终成果是一份教程,我们希望你们觉得它简单直白,易于学习。

Parrot游戏示例项目展示了输入系统、光照系统、着色器、材质、音频、角色控制器、物理系统和管理系统的实现方式。

具体使用的虚幻引擎系统包括:用于实现全局光照的Lumen、用于处理高多边形网格体的Nanite、用于构建敌人人工智能的行为树、用于实现关卡流送的世界分区、用于打造游动鲨鱼动画的Sequencer、用于搭建用户界面的虚幻运动图形(UMG)和CommonUI,以及增强输入系统。
在项目初期,我们就知道水体会成为游戏的一部分,而且我们觉得或许可以利用水体的物理特性来设置障碍。我们研究了Epic的水体系统插件,发现其物理模拟效果并不理想。于是,我们放弃了模拟水体,转而采用风格化的平面。Epic建议我们尝试他们的单层水体着色模型,该模型呈现出的美学效果正是我们追求的。我们之前从未使用过这个系统,但其功能和最终效果的质量给我们留下了深刻印象。
为了实现流畅的平台跳跃游戏物理效果,我们对虚幻引擎的CharacterMovementComponent进行了定制化改造,制作我们自己的版本。我们添加了平台跳跃游戏的跳跃机制、下落物理效果以及“郊狼时间”,所有这些参数都可以在设计时进行配置,以便轻松调整,达到理想的操作手感。具体来说,我们将“到达顶点时间”和“顶点高度”作为可调节值暴露出来,我们认为这是调整跳跃手感的最有效方法,让跳跃效果恰到好处。
在摄像机系统的设计上,我们从一些经典游戏中汲取灵感,打造了一款单向摄像机,能够根据玩家在我们设计的关卡中的移动轨迹,以自然流畅的方式做出反应。这款摄像机的单向移动特性和特定行为或许并不适用于所有平台跳跃游戏,但在Parrot项目里,它显得极为契合。

为了使整体美学风格保持连贯统一,我们投入了大量时间对资产材质和光照效果进行定制调整。我们利用了虚幻引擎的材质函数来应用不同的效果,并以我们认为最能展现资产特色的方式对光照进行了精心调校。我们鼓励所有人看看我们在项目材质中使用的各种效果,以及我们设置光照的方式。

在Parrot项目中,我们大量使用了遵循CC0许可协议的资产。我们的初衷是,任何人都可以获取项目中的内容,并自由地对其进行修改,以供个人使用。感谢Kenney.nl、Quaternius、OpenGameArt以及该平台的众多贡献者,他们慷慨地创作了这些基于CC0协议、无版权主张的资产。我们希望Parrot项目能够很好地展示这些资产!
在Unity中构建游戏时,开发者往往需要自行构建某种形式的游戏玩法框架。而在Parrot项目中,我们尽可能紧密地按照虚幻引擎的版本实现了这些系统。此外,我们还添加了一些基础框架代码,以更好地与我们在虚幻引擎中的工作流程保持一致。

这些功能包括:增量场景加载(用于实现游戏管理系统的作用域生命周期)、自定义角色移动组件,以及创建自定义行为图节点(用于匹配虚幻引擎行为树中所使用的语义)。我们希望这些在Unity中采用的模式和实现方式能够帮助你更好地理解虚幻引擎中所使用的开发工作流程和架构模式。

Download the Parrot Game Sample today!

Download nowSee documentation

获取有关行业创新和免费资产的最新消息!

通过提交您的信息,即表示您同意接收来自 Epic Games 的新闻、问卷调查和特惠推送。 隐私政策