/ 编程 /使用Godot游戏引擎创建游戏
编程

使用Godot游戏引擎创建游戏

2020-12-04T14:38:16 + 01:00

一个小而聪明的游戏引擎的崛起。

开始开发新游戏时的第一个重要决策之一是使用哪种发动机使用。游戏引擎基本上是每个视频游戏的技术核心。它不仅处理所有渲染方面,将游戏带到屏幕,还可以所有背景计算,如物理处理,动画,对象交互逻辑,网络等。因此,对其使用的发动机的决定几乎是进一步的游戏开发的所有方面,并且必须非常关心。

两个选项通常是可能的:a)创建自己的发动机或b)使用现有的游戏引擎。选项A)是更精细的一个,但允许将发动机的功能与特定游戏的要求密切相关。它可能是最适合具有发动机开发开销的人力的较大工作室,并且在使用第三方引擎时也可能受益于不得不考虑许可条件。对于较小的工作室甚至独奏开发人员,使用已经现有的发动机通常是前往的方式。

如今,有很多可用于使用的引擎,具有不同的焦点,不同的优势和限制以及不同的许可模式。在专业和业余爱好开发人员的最受欢迎的发动机中,都是虚幻引擎,团结,源或Cryengine等引擎。但另外,也有较少使用的发动机值得仔细的外观。本文致力于新兴的戈达托游戏引擎,一个小而强大而且非常灵活的工具箱。

我是一个爱好游戏开发商,直观地开始尝试“大玩家”。我的第一步是在源极发动机中拍摄,然后我移动到虚幻引擎3及其继承者虚幻引擎4(UE4)。我尝试了几次统一,但我们从未成为好朋友。我聚集了我在UE4的大部分经验,这是我强烈推荐的发动机,特别是对于初学者来说,它具有一个惊人的工具,以便促进复杂的任务,同时仍然为有经验的用户提供最大的灵活性。

在我们潜入Godot引擎的特征,优缺点之前,我想指出,通过概念,发动机A的陈述是不可能的。哪种发动机使用大量取决于每个单独的游戏项目的需求和工作的人。以下是我自己的经验强烈着色,并且肯定不适用于每个人。然而,鉴于越来越越来越多的戈哥普及和版本4.0的越来越多的新功能,我强烈认为突出发动机对相当于一些仍然斗争的开发人员来说,突出显示发动机可能感兴趣。

我的一位朋友,在游戏行业工作,实际上在我用UE4解释我的斗争后,实际上戳了我的戈达,并说:“看看戈多特。它仍然是兴起的,但有可能成为3D建模的搅拌机。“所以我试一试并重新启动我的项目(重拍GTA2多人游戏,设置在古巴地区,如环境中),永远不会后悔。

“场景树”中的对象组织。 “clapperboard”图标表示已保存的场景,其中包含更多子场景。

戈戈达的历史
该发动机由其主要开发商Juan“Reduz”Linietsky从2007年左右开始。 Juan在游戏发动机中拥有强大的背景,从南美洲的大型软件工作室担任技术视频游戏顾问。他与Ariel Manzur一起创建了发动机,为他们的客户提供工具,而不是体验。

该发动机在整个年内发展,并在2014年作为戈多1.0发布(在撒母耳贝克特戏剧“等待戈多”之后选出的名字,代表无尽的等待完美的东西)。

由于Godot的Patreon竞选活动令人惊讶的成功开始,Juan于2017年开始全职工作,而不是将开发作为副作用。该项目收到了越来越多的资金,不仅是众多个人顾客,而且还有更大的公司,如微软,Mozilla,最近,甚至史诗般的比赛。 Godot是在GitHub上托管的开放来源(麻省理工学院许可),不仅由雇用的程序员开发,而且很大程度上由其非常活跃的社区开发。因此,在过去几年中,发展速度大大增加,从而快速实施用户所需的新功能。

场景以可读的文本格式保存。我可以看到对聚光灯的变换(即,位置)的更改是用任何Git客户端进行的。

戈达如何工作?
现在让我们面对它 –是什么让戈达特别?一般概念是将所有对象(所谓的节点)组织到场景中。为了管理复杂性,节点和场景布置在“场景树”(图1)中,其中每个节点具有专用父级,并且可以具有任意数量的子项。树状结构有助于构建每个场景的内容,并允许移动对象的直观育儿。因此,场景可以是从个体对象到大型环境的一切,具有吨的互动。场景可以分别组装在2D或3D空间中,以创建不同的游戏。 2D和3D也可以混合在一起,这使得3D游戏的用户界面非常容易。

此外,每个节点可以具有附加用于实现任何逻辑的脚本。在这里,戈哥特引擎真的闪耀的地方。 Godot引擎具有令人难以置信的干净且易于阅读的脚本语言(其基本语法)类似于Python。为什么这么大的交易?诚实地,过去的游戏设计的最大问题是我不是一个程序员。我不知道C#或C ++,它们分别是Unity和UE4的本机脚本语言。因此,我使用UE4的视觉脚本系统(称为“蓝图”)来设置任何游戏逻辑。迄今为止,不要让我错了,那么蓝图系统出现了最开发的视觉脚本系统,我强烈推荐每个人都看看它。但是,问题是视觉脚本系统总是很难读得很快。 Visual Scripting很好,使非程序员能够实现简单的逻辑,而无需与程序员联系,但可能不是常规游戏逻辑的好选择。

因此,Godot的语言称为GDScript,允许令人难以置信地实现综合游戏逻辑。它是一种动态类型的语言,用于处理所有背景任务,例如内存分配。我可以听到声音尖叫,这种动态脚本语言的低效如何用于游戏开发,需要高性能!

好吧,当然,GDScript永远不会像C ++中写的代码一样快。另一方面:计算机现在已经快速变得快速,GDScript应该足够快,对大多数游戏都足够了。它与潜在的引擎代码密切相关,这些引擎代码都在渲染,物理计算等上进行所有繁重的工作,并访问多功能API以直接在发动机级别呼叫函数。这使得代码非常紧凑,这意味着对解释器的工作较少,因此较少的开销。同时,它允许以非常高的速度写入和迭代代码,这对于轻松测试不同的方法是有用的。

我不断发现自己重构我的代码,使其更好地工作,这再次有助于最终的性能。 GDScript提供易于使用的信号和事件系统,以便尽可能地分发代码执行,并避免在游戏的每一帧上调用每行代码。

对于仍然不相信的人来说:Godot还允许在发动机级别上编码,使用C或C ++直接使用GDnative API,如果需要,可以从GDScript中拓展复杂任务。而GDScript将来会更快。即将介绍的Godot 4.0的计划功能是禁用运行时的类型检查,了解具有类型提示的变量,这将加快这些点的代码执行。

同样可爱:内置脚本编辑器具有集成文档,允许读取方法或类如何设计工作,而无需离开编辑器。此外,存在一个非常全面的在线文档,也涵盖了潜在的低级力学,例如碰撞检测如何在数学上运行,转发与延迟渲染等的优势和缺点。你可能不一定需要知道的东西,但这只是读到了。最后,Godot还附带了一个不想写代码的视觉脚本系统。但是,没有多少焦点,因为GDScript对于大多数情况而言,应该是优选的。

另一个很好的细节是Godot如何保存您正在创建的内容。默认情况下,所有场景都以人类可读的文本格式保存,它适用于任何源版本控制系统,例如Git。这很好,因为工作团队工作,因为场景的变化不仅可以容易理解,而且也可以从不同的分支机构合并。

Juan Linietsky,Godot的主要程序员,分享当前引擎改进的进展,并说明了游戏发动机的基本概念。

戈达是跨平台和非常轻量的重量
Godot编辑器可以在Windows,MacOS,Linux,FreeBSD和OpenBSD上使用,32和64位。存档的下载大小小于50 MB。是的,这真的很小!访问godoteengine.org,下载,提取,运行。无需安装。编辑器在短短几秒钟内靴子,取决于您的项目的大小,您可以在不到一分钟的时间内开始工作。我经常使用15分钟的培训乘坐,从我的工作中乘坐工作继续在我的游戏上工作,就在我的办公室圈 - 没有专门的GPU。可以将游戏导出到上述桌面平台,但也可以控制游戏(但是,可能需要第三方包)。游戏还可以通过HTML5和WebasseMbly支持在Web浏览器中运行。对于大多数游戏开发,这些选项应该足够超过足够。由于其许可证,使用Godot引擎是完全免费的,而不是必须支付任何利润的版税。

戈达的局限性
在对发动机说这么多积极后,让我们面临缺点。在目前的状态(最多3.2版)中,Godot主要用于2D游戏。虽然很多可以在3D中完成,但发动机缺乏一些功能。这归因于可能导致渲染性能不佳的事情(例如,缺乏适当的遮挡剔除或仅可能仅可能的动态灯,或者只能在3D资产上工作,不必要地困难(.fbx-support在其初期内),与发动机相比,例如不真实的发动机。

此外,Godot并没有像其他发动机那样大量发达的特征。嗯,它比你需要的绝对光秃不取的最小值,但不能与这方面市场中的“大玩家”竞争。
但是,这些缺点必须投入透视! Godot版本4.0正在开发中,利用渲染性能显着,并具有对编辑器的一系列可用性改进。 Godot的活跃社区提供了大量有用的插件,另外扩展了Godot的功能显着设置。

五颜六色的塔楼防御游戏Tailquest:防御是游戏看起来多么美丽的一个很好的例子。

戈达的未来
正如刚才所提到的那样,Godot 4.0即将被释放,嗯,当它完成时(可能是2021年开始)。新版本高度预期,因为它具有基于vulkan的完全重写的3D渲染器,具有强大的动态全局照明选项。主要开发人员经常在Twitter和Godot网站上发布他们的进展,这在游戏发动机发展的窗帘背后提供了有价值的见解。我喜欢这个帖子永远不会试图炫耀,但他们还打算通过包括突出目前实施技术的关键方面的信息(图3)。此外,社区的声音听到了声音,并且开发人员通常需要时间回复大多数问题,通常非常详细。这不仅很高兴阅读,而且很好,但实际上是戈达背后的哲学的一部分。胡安曾指出了使发动机自由和开放性质的一个主要动机是:对他的经验,人们不仅应该使用游戏引擎,而是真正了解它的工作原理。有一个真正的机会,在游戏的发展期间,开发人员意识到他们的游戏的某种特征不容易实现所选择的游戏引擎。这是,当团队经常开始“围绕”发动机的限制时。通过戈达,可以进入源代码,而是开始将发动机定制到游戏,而不是将游戏调整到发动机。这就是我发现一个令人难以置信的明智的观点!

结论
Godot游戏引擎已经进化到了一个成熟的游戏引擎,允许游戏开发非常快速,尽管仍然缺乏3D游戏的一些功能。通过使用社区插件或等待Godot 4.0,可以克服大部分限制,这将是一个完全改革的3D渲染管道。将戈达与我之前使用的发动机(主要是UE和来源)进行比较,使用它通常感觉更多的“低级”,更接近实际的引擎核心。在开始时可能不会感觉良好,因为发动机更好地理解,可以定制以适应任何所需的游戏。

Godot引擎吸引了不断增加的用户数量,预测版本4.0,这一趋势很可能会继续。发动机周围有一个充满活力的社区,用于分享开发进度或获得特定问题的帮助。 YouTube上的通道“Godot Engine”经常张贴与发动机制成的游戏的展示,从而说明发动机的灵活性(例如,参见图4)。

如果有的人仍然不确定建立哪些游戏引擎,现在是给Godot Engine尝试的好时机。在我的Youtube-andel Crushingjosch上,您可以找到一些展示戈达的视频。


Josef Brandt.
爱好游戏开发人员

Josef开始创建半衰期2和柜台的地图:2005年来源。他参加了不同的Mod项目,享受创意和使用技术的东西。自2018年以来,他与GodoteNgine一起复发了GTA2多人游戏。

关于作者: 2020年12月
类别:
去顶级