我们花了太长时间才完成一个游戏,原因之一是我们过于自信,认为可以“快速”学习一个新引擎。

不,我们不会放弃。如果有的话,我们现在正在进行另一次转变。写这篇博客的目的就是为了让我头脑中的混乱有条不紊,所以我可能也应该诚实地谈论它是如何发生的。我们的经历让我笑了,笑得不是很开心。更像是在说:“好吧,这花了不少钱”。

那么多年前,我接管了一个关于越野驾驶的手机游戏的开发。它是一个相当偏门的项目,具有真实的视觉效果,但也具有自己的奇怪小魅力,适合那些没有时间或精力坐在电脑前的人。这个项目不是从零开始的。我们继承了一个已经在商店中运行的原型,并且甚至有了一些安装。

有趣的部分是它是使用Unreal构建的,而我之前只使用过Unity。

我们决定不丢弃一切,重新从头开始。相反,我们想好吧,让我们学习Unreal,并继续前进。 Spoiler alert:在没有严重的先前经验的情况下,使用Unreal制作一个手机游戏是很困难的。像,真的很困难。所有Unity中的生产习惯——经典的“改变它,构建它,发布它”循环——突然就不适用了。everything都花了更长的时间。不是稍微长一点点。更像是两到三倍长,至少。

这个项目本身还是比较早的阶段。有了汽车,驾驶,短距离赛车,地图,车库,定制。所以游戏中有了部分内容。但是核心循环还没有。没有合适的进展。没有明确的答案来回答基本的问题:玩家每天都会做什么,为什么?

所以,这成为我们的第一个大任务:试图把一个工作的原型转化成一个真正的游戏。

作为一个原型,它是可以的。但是基础并没有为我们所需的长期开发打下。所以,即使我们开始使用以前团队的工作,我们最终还是不得不重写几乎所有的内容。只是仍然在Unreal中。

如果我个人从头开始,我会选择Unreal吗?没有。

当时的逻辑是,Unreal会给我们更好的物理和更好的汽车行为。可能,在纸上,这听起来很有道理。但是回头看,我认为我们最好的选择应该是尽早转到Unity。我们只是不知道这个过程会持续多长时间。

要清楚,我不是在说Unreal是一个坏引擎。完全不是。问题不是“Unreal好吗”。问题是:如果你的团队不已经知道如何正确使用它,Unreal会为你带来什么?对于我们来说,答案基本上是:x2的时间和金钱。也许甚至是x3。

如果你正在制作一个PC游戏,当然,去Unreal吧。没有争议。然而,手机是一个不同的生物。它有不同的性能限制,不同的设备,不同的会话长度,不同的玩家期望。很可能你不会在手机上制作Forza Horizon物理。您正在制作一些让人们幻想的东西,但实际上它在手机上是可行的。

同样,图形。每个人都想有美丽的视觉效果。显然。然而,Unreal中人们通常指出的游戏都是具有巨大预算和已经知道如何做事的团队。是的,Unreal可以看起来很棒。但是那种“很棒”的水平通常需要多年的经验,一支强大的团队和大量的生产开支。

是的,一支强大的Unreal团队可能会在Unreal中构建出更好的东西。但是,如果你的现实是“我们需要学习引擎,重建管道,修复架构,并且同时保持发布速度”,那么这个权衡就会很快变得糟糕。

我们是否可以在Unity中制作同样的游戏?可能会。是否会对游戏玩法或平均手机玩家有影响?我不认为会。

你能否在Unity中制作一个有趣的手机游戏,具有良好的视觉效果?绝对。对于我们来说,它可能会更容易。更便宜,甚至更容易。我们将有更多时间进行迭代,更多时间进行实验,更多时间实际上是工作,而不是与引擎争斗。

相反,我们花了整整一年,仅仅为了优化我们的越野:驾驶模拟器3D,适用于每种可能的低端设备。一年。只是坐在那里,调整性能,反而不是用来打磨游戏或添加玩家等待的东西,例如新模式。

这是许多例子之一,当我们需要扩展地图时,我们无法使用Unity中的默认雾或地形。使用那雾,玩家会驾驶在一个泡沫中——完全破坏沉浸感。Unity中的标准地形系统在低端设备上是不可能的,因为它永远不会卸载内存中的任何内容。所以我们最终使用了World Partition,分割世界成块。只有靠近玩家的块才被渲染在详细中;其余部分会被融化为单个几何体。在手机上,它几乎不会被察觉,但游戏的实际渲染距离是相当棒的。

另一方面,分割一切会带来一个新的海洋问题。你需要预加载你想将玩家 teleport 到的块。您必须解决在未加载块中进行 bot 运动逻辑的问题等等。

然而,现实就是这样。我们花了大量的时间进行技术工作,只是为了让游戏在尽可能多的玩家中运行。其中一些来自世界的很远,很不同的部分。有人会在我们已经忘记的手机上启动我们的游戏。我们不想留他们后面。

从商业角度来看,我甚至不确定“打扮”游戏应该是优先事项。个人上,我仍然相信游戏中的钱应该来自有趣的游戏玩法。不是说我反对钱,相信我,我非常不喜欢通过任何手段来追求它。

所以,经过了这么多的经验,如果我有50名经验丰富的Unreal开发者和充足的时间,我会选择Unreal。Unreal是一个野兽。但是,这不是大多数手机团队生活的世界。

手机游戏确实在慢慢变得更加复杂。诚实地说,随着AI和娱乐的发展,谁知道手机会在什么时候达到新的“下一代”阶段,整个范式会不会再次发生变化。所以,目前我仍然站在短周期一边。Unreal并不是一个短周期引擎。

我已经可以听到明显的问题:你花了整整一年仅仅优化。为什么你不重新构建整个东西在Unity中,并且花费这段时间来打磨游戏玩法,而不是与引擎争斗?

答案太简单了:我们不知道它会花费整整一年。

如果我们知道,我们就会更早地转换。我们讨论过多次,但每次我们都会想:No,我们可以处理这个。我们很接近,只要再稍微努力一下。

要公平的,我们仍然相信自己。只是可能在更不自信的方式下。目前我们知道我们愿意走多远。要么项目会赚到足够的钱,要么我们会说我们真诚地尝试了我们相信可以工作的一切。所以,yeah。无论发生什么,都会发生。

附注:我还想展示一下渲染距离和块的效果,但不如不泄露这些截图,好吗?