Godot的设计哲学

每个游戏引擎都不同, 并且有不同的要求。这不仅将提供一系列功能;每个引擎的设计都是独一无二的。这导致我们游戏结构的工作流程和方法不同。
此页面从其一些主要支柱开始, 帮助我们了解Godot的工作原理。这不是可用功能的列表, 也不是引擎比较。要知道任何引擎对我们的项目是否有用, 我们需要自己尝试一下并了解其设计和局限性。
面向对象的设计与合成
Godot凭借其灵活的可视系统和节点层次结构, 在其核心采用了面向对象的设计。它试图以一种直观的方式来摆脱严格的编程模式, 以目前的游戏结构。
首先, Godot让我们合成或聚合场景。就像嵌套的预制件一样:我们可以创建一个闪烁的灯光场景和一个使用BlinkingLight的BrokenLantern场景。
然后, 创建一个充满Brokenlnterns的城市。更改Blinklight, 保存和所有Brokenlanterns的颜色。更改Blinklight的颜色, 保存, 城市中的所有Brokenlane都会立即更新。
最重要的是, 我们可以从任何场景继承。
戈多场景可以是武器, 角色, 物品, 门, 关卡, 关卡的一部分。我们可以喜欢的任何东西。它可以用作纯代码中的类, 除了我们可以自由地使用编辑器, 仅使用代码或混合和匹配两者来设计它。
我们可以创建一个魔术师来扩展我们的角色, 在编辑器中修改角色, 然后魔术师也会进行更新。它可以帮助我们构建项目, 使其结构与Godot设计相匹配。

Godot的设计哲学

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

文章图片
Sprite是一个Node2D, 一个节点和一个CanvasItem。它具有其三个父类的所有属性和属性, 例如能够绘制变换或自定义形状并使用自定义着色器进行渲染的功能。
全包套餐
Gadot试图提供他的工具来响应最常见的需求。它具有专用的脚本工作区, 以及动画编辑器, 图块贴图编辑器, 着色器编辑器, 调试器, 提供程序, 能够在本地和远程设备上热重新加载。
Godot的设计哲学

文章图片
【Godot的设计哲学】该目标具有创建游戏和持续用户体验的完整软件包。只要有导入插件, 我们仍然可以使用外部程序。或者我们可以创建一个, 例如平铺的地图导入器。
这也部分是为什么Godot与C#一起使用其编程语言GDscript和VisualScript的原因。我们旨在满足游戏开发人员和游戏设计师的需求, 并将它们紧密集成到引擎和编辑器中。
GDScript使我们可以使用类似于Python的语法编写简单的代码, 但是它可以检测类型并提供自动完成的静态语言质量。它还针对具有内置扇区和颜色的游戏代码进行了优化。
请注意, 使用GDNative, 我们无需重新安装引擎即可使用C, C ++, Rust或Python(使用Cython编译器)之类的编译语言编写高性能代码。
Godot的设计哲学

文章图片
VisualScript是一种基于节点的编程语言, 可以很好地集成到编辑器中。我们可以将节点或资源拖放到图中以创建新的代码块。
请注意, 3D工作区没有2D工作区那么多的工具。我们将需要外部程序或附加组件来编辑地形, 为复杂角色设置动画。 Godot提供了完整的API, 可以使用游戏代码扩展编辑器的功能。请参见Godot编辑器。下面是Godot游戏。
Godot的设计哲学

文章图片
开源的
Godot根据MIT许可提供了开源代码库。它附带的所有技术也都免费。在大多数情况下, 它们是由参与者从头开始编码的,
任何人都可以根据自己的项目插入专有工具;他们不能随发动机一起运送。它们包括NViDia
PhysX, Google Admob或FBX文件导入器。这些中的任何一个都可能以第三方插件的形式出现。
另一方面, 开放的代码库意味着我们可以学习引擎并将其扩展到我们内心的内容。我们也可以轻松调试游戏, 因为Godot会通过堆栈跟踪打印错误, 即使这些错误来自引擎本身。
注意它不会以任何方式影响我们与Godot所做的工作。引擎或我们用它制作的任何东西都没有附加字符串。 社区驱动
它是由其社区以及所有游戏创作者制作的。用户和公开讨论的需求推动了推动核心更新的公开讨论。核心开发人员的新功能通常侧重于什么将使大多数用户受益。
核心开发人员全职工作, 在撰写本文时, 该产品有500多个贡献者。仁慈的程序员致力于他们需要的功能, 以便我们在每个重要版本中同时看到引擎各个方面的改进。
Godot编辑器是Godot游戏
Godot编辑器在游戏引擎上运行。它使用引擎的UI系统。当我们运行项目或在编辑器中运行游戏代码时, 它可以热重载代码和场景。这意味着我们可以在游戏中使用相同的代码和场景, 或者构建插件并扩展编辑器。
由于它赋予了编辑器本身的功能, 因此导致了一个灵活而可靠的UI系统。使用tool关键字, 我们可以在编辑器中运行任何游戏代码。
Godot的设计哲学

文章图片
盒子中的SpongeBob是在Godot 2中创建的体素RPG编辑器。它使用Godot的UI工具用于其基于节点的编程系统和其余界面。
将工具键盘放在任何GDScript文件的顶部, 它将在编辑器中运行。这使我们可以导入和导出插件, 创建自定义级别编辑器之类的插件, 或使用与项目中使用的节点和API相同的脚本来创建脚本。
独立的2D和3D引擎
Godot提供专用的2D和3D引擎。结果, 2D场景的基本单位以像素为单位。即使驱动程序是分开的, 我们也可以在3D中渲染2D, 在2D中渲染3D, 并在我们的3D世界中覆盖2D子画面和界面。

    推荐阅读