📜  戈多的设计哲学

📅  最后修改于: 2021-01-02 10:14:16             🧑  作者: Mango

戈多的设计哲学

每个游戏引擎都不同,并且有不同的要求。这不仅将提供一系列功能;每个引擎的设计都是独一无二的。这会导致我们的游戏结构产生不同的工作流程和方法。

此页面从其一些主要支柱开始,帮助我们了解Godot的工作原理。这不是可用功能的列表,也不是引擎比较。要知道任何引擎对我们的项目是否有用,我们需要自己尝试一下并了解其设计和局限性。

面向对象的设计与合成

Godot凭借其灵活的可视系统和节点层次结构,在其核心采用了面向对象的设计。它试图以一种直观的方式来摆脱严格的编程模式,直到现在我们的游戏结构。

首先,Godot让我们合成聚合场景。这就像嵌套组合屋:我们可以创建一个闪烁的灯光场景和BrokenLantern场景使用BlinkingLight。

然后,创建一个充满Brokenlnterns的城市。更改Blinklight ,Save和所有Brokenlanterns的颜色。更改Blinklight的颜色,保存,城市中的所有Brokenlane都将立即更新。

最重要的是,我们可以从任何场景继承。

戈多场景可以是武器,字符,物品,门,关卡,关卡的一部分。我们可以喜欢的任何东西。它可以用作纯代码中的类,除了我们可以自由地使用编辑器,仅使用代码或混合和匹配两者来设计它。

我们可以创建一个魔术师来扩展我们的字符,在编辑器中修改字符,然后魔术师也会进行更新。它可以帮助我们构建项目,使其结构与Godot设计相匹配。

Godot提供具有特定用途的称为节点的不同类型的对象。节点是树的一部分,并且始终从其父节点继承到节点类中。尽管引擎具有诸如碰撞大小之类的组件,但它们是例外,并非常规。

Sprite是一个Node2D,一个节点和一个CanvasItem。它具有其三个父类的所有属性和属性,例如能够绘制变换或自定义形状并使用自定义着色器进行渲染的功能。

全包套餐

Gadot试图提供他的工具来响应最常见的需求。它有一个专用的脚本工作区,以及一个动画编辑器,一个tilemap编辑器,一个着色器编辑器,一个调试器,一个provider ,能够在本地和远程设备上热重新加载。

该目标具有完整的程序包,可以创建游戏和持续的用户体验。只要有导入插件,我们仍然可以使用外部程序。或者我们可以创建一个,例如Tiled Map Importer

这也是部分为什么Godot会使用其编程语言GDscriptVisualScript以及C#的原因。我们旨在满足游戏开发人员和游戏设计师的需求,并将它们紧密集成到引擎和编辑器中。

GDScript使我们可以使用类似于Python的语法编写简单的代码,但它可以检测类型并提供自动完成的静态语言质量。它还针对具有内置扇区和颜色的游戏代码进行了优化。

请注意,使用GDNative,我们可以使用Python (使用Cython编译器)之类的编译语言编写高性能代码。

VisualScript是一种基于节点的编程语言,可以很好地集成到编辑器中。我们可以将节点或资源拖放到图中以创建新的代码块。

请注意,3D工作空间没有2D工作空间那么多的工具。我们将需要外部程序或附加组件来编辑地形,为复杂字符设置动画。 Godot提供了完整的API,可以使用游戏代码扩展编辑器的功能。请参见Godot编辑器。下面是Godot游戏。

开源的

Godot根据MIT许可提供了一个开源代码库。它附带的所有技术也都免费。在大多数情况下,它们是由参与者从头开始编码的,

任何人都可以根据自己的项目插入专有工具;他们不能随发动机一起运送。它们包括NViDia

PhysX,Google AdmobFBX文件导入器。这些中的任何一个都可能以第三方插件的形式出现。

另一方面,开放的代码库意味着我们可以学习引擎并将其扩展到我们内心的内容。我们也可以轻松调试游戏,因为Godot会通过堆栈跟踪print错误,即使这些错误来自引擎本身。

注意它不会以任何方式影响我们与Godot所做的工作。引擎或我们用它制作的任何东西都没有附加字符串。

社区驱动

它是由其社区和所有游戏创作者制作的。用户和公开讨论的需求推动了推动核心更新的公开讨论。核心开发人员的新功能通常侧重于什么将使大多数用户受益。

核心开发人员全职工作,在撰写本文时,该产品已有500多个贡献者。仁慈的程序员致力于他们需要的功能,以便我们在每个重要版本中同时看到引擎各个方面的改进。

Godot编辑器是Godot游戏

Godot编辑器在游戏引擎上运行。它使用引擎的UI系统。当我们运行项目或在编辑器中运行游戏代码时,它可以热重载代码和场景。这意味着我们可以为游戏使用相同的代码和场景,或者构建插件扩展编辑器

由于它赋予了编辑器本身的功能,因此导致了一个灵活而可靠的UI系统。使用tool关键字,我们可以在编辑器中运行任何游戏代码。

盒子里的SpongeBob是在Godot 2中创建的体素RPG编辑器。它将Godot的UI工具用于其基于节点的编程系统和其余界面。

工具键盘放在任何GDScript文件的顶部,它将在编辑器中运行。这使我们可以导入和导出插件,创建自定义级别编辑器之类的插件,或使用与项目中使用的节点和API相同的脚本来创建脚本。

独立的2D和3D引擎

Godot提供专用的2D和3D引擎。结果,2D场景的基本单位以像素为单位。即使驱动程序是分开的,我们也可以在3D中渲染2D,在2D中渲染3D,并在我们的3D世界中覆盖2D子画面和界面。