使用游戏引擎的优缺点是什么?[关闭]


28

我如何知道是否使用游戏引擎?我想为Android制作一个相对复杂的2D游戏。我应该权衡哪些因素来决定是查找,安装和学习游戏引擎还是只是手动进行所有操作?


在这里不确定游戏设计是否是最好的选择。但引擎已被列入黑名单。这个问题可能应该删除。
Gnemlock

Answers:


25

好处:

  • 大多数(如果不是全部)编码都为您完成,因此您只需担心内容,关卡布局等。

  • 沿着这些思路,内存管理,资产加载,照明(在复杂的引擎中)等都经过了彻底的设计和测试(希望如此)。

  • 如下所述,如果引擎是跨平台的,则您几乎不需要做任何工作就可以移植游戏。

缺点:

  • 如果要进行任何修改,则现在需要熟悉新的代码库。
  • 如果引擎中存在错误,除非它是开源的,否则您将无法修复它。
  • 该引擎不是专门为您的游戏设计的,因此它的效率可能低于专门为您的游戏编写的代码。
  • 游戏引擎通常不是免费的。
  • 如果游戏很小,那么使用引擎的开销可能不值得花时间自己编写代码。
  • 如果您的游戏引擎还具有任何编辑器或工具,则在将它们交给艺术家或自己依赖它们之前,您也必须构建并测试它们。

不要让缺点列表更长的事实:当编码和测试所有系统所需的时间对于您的生产周期来说太长时,或者如果您的艺术技能超过代码,则使用游戏引擎就可以了。绝对是个好主意。

这个问题正在对游戏引擎进行比较:各种3D游戏引擎的专业版和专业版


3
总体而言,这是一个很好的答案,但我在第一句话时就皱眉了。我强烈建议将“如果不是所有的编码都完成了,大多数”改为“大部分的低层编码都为您完成”;误导为“制作不需要编码的游戏!”的说法是不负责任的。
鸣叫

而且,引擎可能会限制您轻松执行的操作-例如,几乎有许多引擎不支持Minecraft或矮人堡垒式的可修改地形。这对于不需要它的游戏来说很好,但是祝您好运,使Minecraft可以与它克隆。
user253751

15

以我为例,我花了很多时间(数月)在游戏引擎上无所事事。我现在通常像瘟疫一样避开它们,尽管我知道应该明智且节制地使用它们。

对我来说,我会沉迷于所有可能性!查看引擎X的一长串功能,就像“哇,我可以做到所有这些!我的游戏可能很棒!” 因此,我将下载它,运行演示并被那些实际使用的功能所吸引,等等。然后,我将在IDE中创建一个新项目,并且不知道从哪里开始。我会写一些代码,我可能会从演示项目中学习并基于它们,但那只是演示。

我不知道如何从无到有开始做点什么。我不知道第一步。我喜欢引擎的想法,它给我留下了深刻的印象,并激发了我做某事的动力,但是我对实际开发的知识是如此有限,以至于即使在知道如何将引擎添加到构建路径之后,也许写了几行代码就可以了引擎,然后再次将其关闭,除此之外,我从来没有做过任何值得的事情。

我更像是一个小宝贝。我宁愿一次做一个自己的游戏,重构有用的功能,然后将这些功能收集到一个库中,有一天我可能将其视为“引擎”。所以现在,我避免引擎炒作,只坚持低级的东西。

引擎确实占有一席之地。如果您找到了一个引擎并自己思考,“这正是我要写的!他们已经为我完成了工作,我不必重新发明轮子,而且我确切地知道如何将它融入游戏中我已经开始[或至少已经充分计划并准备开始]”,那么可能很合适。您将确切地知道如何使用它,以及如何编写自己的代码以使用引擎创建有用的东西。但是,如果您购买的发动机只是因为它拥有除厨房水槽之外的所有东西,并且您认为自己站在巨人的肩膀上,那么您会非常误解。您的面前站着一个巨人,您需要爬上它的肩膀。

因此,这对我来说是一个巨大的劣势:不要陷入所有可能做的事情中。无论您选择哪种发动机,都将具有巨大的潜力。但是,如果您不知道如何真正利用潜力,如果它不能使您的生活变得更轻松或无法帮助您完成工作,那么为什么要利用它呢?


4

游戏引擎的最大缺点是您必须学习它。如果您是一般编程新手,那可能仍然比学习编写代码来立即完成引擎为您处理的所有工作要快,但是如果您有经验,那么坐下来就不会浪费时间了然后开始编码,但是有很多前期时间来学习如何使用陌生的引擎。

需要寻找的最大的东西是支持,因为游戏引擎并不完美,而且它们无法理解您的想法,并且您有时会陷入困境。所以:

  • 有文件吗?
  • 文档实际上有用吗?
  • 是否有技术支持(通常不提供,除非您为此付费)?周转时间是几点?
  • 是否有社区论坛可以在其中发布问题并获得真实答案?
  • 是否有教程向您展示如何开始使用引擎?是否包含示例源代码?您发现这些对加快速度有用吗?

2
+1将文档放在显着位置……这是许多开源游戏引擎失败的地方
LearnCocos2D 2010年

3

作为拥有大量软件开发经验并且最近才真正尝试从头开始开发游戏的人,这里是我的2美分。

到目前为止的答案提供了很多利弊。我将为我提供不使用游戏引擎的最重要原因。当我承担学习纯粹为了挑战和奖励而编写游戏的任务时,我决定从零开始,没有引擎,只有OpenGL和SDL,因为我想学习高于该抽象级别的所有内容。我从来没有后悔过这个决定。我的游戏是2D小行星的漂亮滚动版本,基本但流畅。我并不想与性能卓越的游戏竞争,但我确实分发了我的游戏,并且人们喜欢玩它。在制作多人游戏时,我将采用相同的方法。这是一个巨大的挑战,使用库可能会使它更容易,但是我的目标并不是要使其变得容易。我的目标是学习,对我来说,这是一项业余活动,所以我没有很多时间,进度很慢。但是我有这种方法的理由。称之为“高等学习”。

因此,回答您自己的问题,您是否想学习如何做游戏引擎为您做的事情,从而为这项学习带来好处?如果是这样,请勿使用游戏引擎。


2

您需要详细说明“复杂”的含义。一个好的游戏引擎可以照顾以下所有方面:

  • 以稳定的帧速率渲染
  • 输入处理
  • 用户界面
  • 声音/音乐
  • 资源管理(图像,声音,数据文件)
  • 保存/加载游戏
  • 物理(2d或3d)

想一想,我是否知道如何编写这些代码?我需要花多长时间对每个程序进行编程,还要花多长时间来学习如何使引擎完成这些任务?


1

最大的优势:为您完成了许多工作。您不必继续重新发明轮子。

另一个优点:游戏引擎也可能是跨平台的(Unity)。

劣势?控制?该引擎正在为您处理一些事情(例如渲染),因此,如果存在错误或性能问题,那么您就无法自己修复它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.