HyperAI超神经
Back to Headlines

《建筑师的毁灭》从Rust和Bevy转向Unity:开发者的艰难决定与全新机遇

17 小时前

在2023年12月,我开始构建名为“Architect of Ruin”的游戏项目,选择了Bevy游戏引擎作为开发工具。我的选择主要是出于对Rust编程语言的喜爱和对其生态系统的兴趣。然而,到了2025年1月,我们决定将游戏从Rust和Bevy迁移到C#和Unity,这一转换只用了大约六周的时间。 Bevy 开发历程 起初,我们在Bevy引擎上取得了很多进展。我们实现了地砖地图、大部分场景组合方法以及大量角色和游戏逻辑。通过拆解和研究Spine骨骼动画的Rust移植,我还学到了关于骨架动画的知识。此外,我在Bevy的渲染世界中实现了自己的渲染功能,学到了很多关于自定义渲染管线的内容。Bevy的纯实体组件系统(ECS)模型让我能够快速重构代码,其社区也是一个充满活力和正能量的地方,提供了很多灵感和支持。 遇到的问题 尽管有以上积极的体验,随着项目的推进,我们逐渐遇到了一些实际挑战: 协作难度:我和弟弟共同开发这款游戏。虽然他聪明且热情,但他是编程新手。引入他直接进行游戏开发的同时还要应对Rust的一些独特特性,导致了一段难以逾越的学习曲线,影响了他的生产力。 抽象化不足:Rust的低级特性虽然强大,但在我们的游戏设计中,我们需要一种更高级别的抽象,以便快速原型设计和迭代 gameplay 逻辑。随着时间的推移,这种需求变得越来越明显,而Rust在这方面显得有些力不从心。 频繁的API更改:Bevy作为一个年轻的引擎,更新频繁。每次更新都会带来新的功能,但同时也伴随着大量的API变动。这导致了在项目规模逐渐增大时,迁移更新变得越来越困难,甚至出现了一些核心系统(如精灵渲染)的小问题,需要我们投入额外的时间进行调试。 AI辅助开发:近年来,我的工作流程发生了很大变化,经常借助AI工具来学习新技术、讨论方法和审查代码。对于成熟的Unity和C#,这些工具提供的指导非常相关。而Bevy和Rust的发展速度意味着AI知识滞后,降低了开发效率。 模组支持:作为一名资深模组开发者,我希望我的游戏具有高度可模组性。随着时间的推移,我发现Rust和Bevy在这个方面存在一些固有限制,缺乏明确的解决方案,使得这个目标变得更为艰难。 决定迁移 2025年1月初,我和弟弟决定对各种开发选项进行全面的成本效益分析,包括Unreal、Unity、Godot、继续使用Bevy或自己开发引擎。经过认真考虑,我们在一个下午的研究后认为Unity似乎在多个方面表现得更好。 为了验证这一结论,我们决定进行一个为期三周的实验,选取三个核心功能进行测试:地砖地图、角色和用户界面(UI)。结果令人惊讶,所有任务在三天内就完成了,并没有遇到预料中的重大障碍。特别是,Blake在一天内就完成了地砖地图的实现,这不仅提升了他的信心,也显著加快了项目的进度。 迁移后的效果 在这次初步实验取得成功后,我们决定进行全面迁移,接下来的六周时间里,我们将剩余的系统和内容从Bevy版本重写为Unity/C#版本。整个过程进一步验证了我们的测试结果,代码更加简洁,维护性大幅提升。迭代速度加快,使我们可以更快地将创意转化为游戏内容。同时,我们还利用了Unity生态系统中的工具,如AStar Pathfinding Project。 总结与反思 虽然这次迁移是一个艰难的决定,但我们认为这是实现游戏愿景的最佳途径。Rust和Bevy都是非常优秀的工具,尤其是对于那些喜欢底层控制和高度灵活性的开发者。然而,对我们来说,Unity更好地满足了我们在合作、游戏玩法迭代和稳定生态系统方面的需求。 业内人士评价 业界普遍认为,这次迁移是对项目实际需求的有效响应,展示了团队在技术和流程方面的成熟度。Unity作为一种成熟的游戏引擎,其广泛的应用案例和丰富的社区资源使得初学者更容易上手,同时对高级开发者也提供了足够的灵活性和工具支持。 公司背景 “Architect of Ruin”项目的团队由几位热爱游戏开发的个人组成,他们在不同领域都有丰富的经验。团队的目标是打造一款集剑与魔法于一体的殖民地建设游戏,目前已经在Unity环境下进行了三个月的开发。

Related Links