在 godot 游戏引擎中使用不同的编程语言?

mrP*_*bol 7 game-engine godot

我想将不同的编程语言绑定到 Godot 游戏引擎。有关于这个主题的指导文件或视频吗?例如,这个项目是如何完成的:godot-rust。如果我能学习基础知识,我就能成功地用不同的语言工作。谢谢。

The*_*aot 5

在这个答案中,我向您展示了在 Godot 3.x 中添加语言支持的不同方法(Godot 4.0 和 GDExtension 的情况会有所不同 - 它取代了 GDNative,希望意味着更少的自定义构建),并且我提到了一些受支持的语言通过这些方法中的每一种。然而,这并不是详尽的语言列表。

\n
\n

首先,Godot 具有对GDScript和 Godot 的VisualScript(以及 Godot 的着色语言及其视觉对应语言,如果这些对您有用的话)的官方内置支持。

\n
\n

有几种使用C++的方法:

\n
    \n
  • 您可以使用它来创建 GDNative 脚本(基本上是本机调用的包装器,允许您将它们用作 Godot 中的脚本)。

    \n
  • \n
  • 或者您可以创建模块(它们是您可以在自定义 Godot 构建中添加的静态库)。

    \n
  • \n
  • 由于 Godot 源代码是 C++ 语言,因此如果您要进行自定义构建,则不必限制自己制作模块。

    \n
  • \n
\n
\n

在 Web 构建中,Godot 可以通过类与JavaScript交互JavaScript。但是,这种方法不允许您将 JavaScript 脚本添加到Nodes 等。

\n
\n

还有一些语言只能在 Godot 的自定义版本中添加,目前是对C#的官方支持。

\n

还有其他非官方自定义构建为LuaKotlinTypeScriptJavaScript等语言提供语言绑定(这次允许您制作脚本)。

\n

如果您需要添加运行时,您可能会这样做。

\n
\n

有些语言利用 Godot 拥有官方 Mono 支持的事实来支持 C#。例如,您可以通过这种方式使用F#Clojure

\n

他们首先添加一个 C# 项目,然后对其进行修改,使其使用另一种语言。如果您的语言已编译为 .NET,则这是可行的。

\n
\n

一些其他语言可以添加为插件,PluginScript通过 GDNative 实现该类。这是PythonLua的情况(再次),您可以从资源库中获取它们。

\n

这是向 Godot 添加语言支持的最用户友好的方式,但它仅限于您可以使用PluginScript.

\n

附录:Gil Barbosa Reis,上述 Lua 绑定的作者,在存储库中塞满了有关其实现的系列文章(英语和葡萄牙语):godot-lua-pluginscript/extras/articles/。这可能是迄今为止最全面的教程。

\n
\n

其他语言是通过利用 GDNative 来添加的(它们基本上模仿了您使用 C++ 所做的事情)。这是NimRustDHaskellGoSwift \xe2\x80\xa6的情况

\n

这就是 godot-rust 的工作原理:使用 rust 制作本机库,然后 godot-rust 创建并添加它们,就像它们是用 C++ 制作的一样。对于任何已经有办法创建本机库的语言来说,这是一个不错的选择。

\n
\n

最后,还有另一种方法来添加对某种语言的支持:从该语言到 GDScript 的转译器,可以使用也可以用 GDScript 编写的插件来实现自动化。Lisp就是这种情况。

\n

最后一种方法主要用于特定于领域的语言。

\n


Eth*_*eph 1

这里的官方文档为您提供了答案:

Godot 官方支持 GDScript、C/C++、C#。

可以使用的一些第三方语言包括:Rust、D、Python、Nim 和 Go。

  • 他们如何添加(绑定)第 3 方语言?例如,如何将水晶语言绑定到godot游戏引擎? (2认同)
  • 您可以在此处使用此模块:https://github.com/kalinon/godot-crystal。该模块的绑定专门使用 C++ 的绑定生成器,这是 Godot 开箱即用支持的。 (2认同)