我们如何制作引擎和游戏长达一年半

大家好,亲爱的朋友们! 我坐在这里,看着无尽的代码,用一罐红色的bu进行检查。 一年过去了 一年,该死的,只有一年-一次又这么少。 我们今年有拿破仑的计划,现在看来我们没有太多时间。 另一方面,我们设法做了一些值得打入“老年痴呆症和勇气”的沉重史册的事情。 我将这个故事称为“如何在短短一年内用工具给引擎加油并从头开始渲染”。 该出版物将分几期发行,但是要去哪里,您必须从某个地方开始。 所以走吧!

恰好在一年前,我们从一个项目开始,现在我打算详细写这个项目。 从经验的高度来看,我可以放心地说:这是我们有史以来最冒险和最雄心勃勃的事情之一。 我认为我们团队的经验对其他游戏开发人员很有用,但他至少会逗乐玩家。

在这里,我应该自我介绍:我的名字叫伊凡(Ivan),我是一家年轻但雄心勃勃的公司的技术总监。 最近5年来,我一直在开发商用发动机。 在过去的7年中,他在一家大型游戏公司工作,在那里他从事跨平台会话多人游戏的引擎工作。 好吧,在此之前,他在以前的所有工作地点都创建了引擎或整个游戏。 还有一个重要的澄清:发生这种情况的原因是,我在引擎开发方面的几乎所有经验都与移动平台有关。

我参与的第一个项目是为摩托罗拉开发用于移动设备的OpenGL兼容3D引擎。 然后是休闲游戏的引擎,我们的客户是电子艺术公司,Chillingo游戏,Big Fish游戏公司以及其他知名的和不太知名的公司。 随后,此引擎被用于大型游戏项目。

总的来说,我工作的引擎多年来一直在发展。 它是一种开源技术,当我们为客户制作游戏的公司还很小时,我们就开始开发它。 我们继续完成它,最终在iOS / Android上发布了首批射击游戏MMO之一,在仍在不断发展的移动射击游戏市场上取得了突破。

大约一年前,我全心全意地决定离开公司,离开我如此心爱且挚爱的项目,开始自由航行。 我怀疑很长一段时间,这并不容易,但是经过多年的积累和积累的经验,我发现我所有的行李都可以装进一个或更冷的东西中。 我什至对如何做到这一点有所了解,但是我不确定我们是否可以在一个小团队的帮助下做到这一点,因为我们能否在短时间内在市场上生产出高质量和流行的技术。 但是,正如您所知,财富有利于勇敢者,我们成功了。 出于共同的愿望,我们很快组建了一支专业团队,以开发一种全新的,完全独特的技术,向市场展示如何充分利用现代移动设备的力量。

在这里,乐趣开始了。 在我们的游戏创业公司存在一个月之内,就制定了一个计划。 超越所有现有解决方案的全新事物和独特事物。 听起来很雄心勃勃,很酷,对吧? 就是这样! 但是存在风险。 我们设定了一个目标-在短短一年内实现我们的谦虚想法,并在一年半内推出我们的第一款游戏。

我知道,我知道,这时听起来很荒谬。 但是-出乎意料的是-我们团队中这个疯狂的想法找到了许多支持者(这再次证明了在试图翻山越岭争取同样志趣相投的人的支持时有多么重要)。 隐藏这是一种罪过,削减自己的引擎的想法确实激发了程序员的利用。 许多人回想起4A游戏的悠久历史,当时开发商离开GSC,从头开始为著名的Metro游戏创建了引擎。 在我看来,4A团队的成功激励着一支以上的进步团队,正如他启发我们一样。

总的来说,我们决定。 这将是我的故事。 在我们的博客中,我将与我的同事们一起告诉您,我们的技术是在什么样的痛苦中诞生的,通过这些荆棘,我们进入了恒星之路,以及为什么我们要做出最终决定的确切原因。 我将按时间顺序告诉您Blitz Engine从开发的第一天到最终发布的历史。 没有内部厨房的任何装饰,只有纯真。



您可能会问的第一个问题是:“为什么不使用Unity或Unreal?” 好吧,这个问题是很合理和正确的。

通常,选择理想的引擎-可以制作出可以赚取数百万美元的游戏,所有独立开发者最终都会面临一个选择:Unity或Unreal。 实际上,他们两个都有各自的优缺点,但是为什么他们不适合我们?

让我们从Unity开始。 除了一个问题,它几乎没有其他问题:它是C#,而我们使用的是C ++。 因此,团结消失了。 如果您想为我们提供有关Unity的建议,因为它是一项出色的技术,可以使您以极大的渴望用C ++编写代码,那么说实话:它不是成熟的C ++。 而且我们不是C#开发人员,我们也不打算成为他们。 第二个问题是,尽管有Unity开发人员的努力,但就性能而言,它并不是最快的技术。 做出的决定施加了限制,包括性能上的限制。

虚幻-看起来,无论是在++中,还是伙计们都写得很明智。 但是引擎开始写于大约十年前。 那里使用的体系结构解决方案是那个时期的最先进的解决方案。 但是,世界已经发生了变化,并且十多年来,出现了许多新的进步思想。 编写UE5可能不是那么原始,但足以取得不错的突破。 我们决定赌这些新的体系结构解决方案和方法。

“是的,虚幻引擎很棒,它是由专业人员用C ++编写的,”细心的读者会说。 当然是 但让我提醒您:我们的目标是从移动设备中获取最大收益,并推动整个行业向前发展。 虚幻引擎是通用引擎,这还不错,它为通用性带来了好处。 这些技术是为不同类型的游戏设计的,这一优势为引擎开发人员带来了架构上的限制。 从一开始,我们计划打破边界和陈规定型观念,而不适合它们。

最后:选择Unity-选择对我们陌生的环境,选择Unreal-进行平均项目。

众所周知,PC上的高端现代射击游戏都是由自己的演播室引擎制作的。 EA拥有DICE和Frostbyte引擎,Activision和Ubisoft拥有自己的技术解决方案,4A Games也构建了自己的引擎,id Software拥有id Tech。 控制台上顶级射击游戏的开发人员也做同样的事情。 是的,当然,在这种情况下,劳动力,时间,金钱和其他一切都需要花费更多。 但是,另一方面,您可以完全控制该技术:您可以选择比为每个人准备的现成解决方案更快,更有效的解决方案。 实际上,整个过程都在定制中:您决定对您而言重要的事情,并对其进行强调。 控制台专用配件旨在从超级强大的悬臂熨斗中榨取最大的能量。 这就是我们所需要的,不仅是控制台,还有手机!

但是,我们决定从相反的角度出发:不要尝试为高端熨斗创建解决方案,而是首先查看我们肯定需要支持的最薄弱的设备。 我们考虑了它们的特性,并开始寻找可以使我们在这些设备上高质量运行的技术。 即,从最小的特征中挤出最大的酷视觉。 是的,当然,解决方案必须如此,以便以后我们可以轻松地进行改进,而不受高端移动设备的限制,达到控制台和PC的质量水平。

几乎所有现代移动射击游戏都基于Unity或Unreal。 您已经了解了我们雄心勃勃的扭转行业计划的一切,因此我们决定在现阶段引入创新这一事实不会令您感到惊讶。 我们忽略了传统的Unity vs虚幻困境,并开始削减引擎。

首先-我将向您展示视频。 这就是一年中发生的事情。 我们竭尽所能,最大限度地利用移动设备,并创造出一种产品,即使不能与台式机游戏竞争,其质量也至少可以与之接近。 实际上,正如我已经说过的,无论听起来多么可悲,我们的主要目标都是使手机游戏变得更好,并推动整个行业的发展。


有这样一条规则“了解您的硬件”。 它的重要性很难高估。 我们经常看到高层团队如何为控制台做一些不可能的事情-因为他们知道可以从中获得什么,并事先决定他们将试图超越。 我们一直想制造射击游戏,但我们却清醒地评估了自己的优势:如今,游戏机和PC的射击游戏市场非常庞大,并且充满了高质量的产品。 同时,移动市场理所当然地受到关注,尽管在那里可以做很多事情。 总的来说,一切都齐心协力:我们决定纠正这种情况。

总而言之,我们已经形成了这个总体方向:

  • 自己的技术
  • 移动平台上的控制台质量等级
  • 主要重点是射手
  • 会话游戏网络引擎
  • 游戏基础设施
  • 而且,实际上是一个很酷的游戏。

我们计划在1.5年内实现所有这些目标。

自然,在研讨会的同事中,我们不断听到,用Unity和Unreal制作自己的引擎是痴呆症(没有太多勇气)。 我们提供了许多已经有人在做的现成解决方案。 但是我们有完全不同的意见。 我们决定尝试一下,现在我可以自豪地说我们做得很好。 引擎已经在那里,并且非常有前途。 正是我们想要的方式。 我们正在积极开发新游戏,我们计划在今年推出。

我不会掩饰,当我们见面时,我们共享我们的计划时,人们仍然对我们的想法持怀疑态度。 但是,当我们拿出iPad并展示最佳做法和预告片时,一切都会改变。 人们明白这是怎么回事。 我们在新员工的访谈中展示了我们的比赛时间表,他们不认为这是用于手机的产品。 有时他们会指定三遍我们是否在开玩笑。 革命性的产品需要创新的解决方案。 是的,今年很艰难,我们不得不做很多工作。 但是现在,我们有了革命性的引擎,出色的BattlePrime游戏和一个有趣的故事,这对于许多开发人员来说都是有趣的。


通常,在观看此视频后,我们被告知他们不相信。 在最终版本中可能会有所不同。 总的来说,在我们的行业中不习惯信任拖车。但是您真的相信它。 并在评论中告诉我们您的状况!

我们想告诉我们我们是如何开发Blitz Engine的,为此,我将发布一系列有关开发年份的文章。

第二部分: habr.com/en/post/465343

Source: https://habr.com/ru/post/zh-CN461623/


All Articles