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



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

在这个答案中,我向您展示了在Godot3.x中添加语言支持的不同方法(Godot 4.0和GDExtension的情况会有所不同,后者取代了GDNative,希望意味着更少的自定义构建(,我还提到了这些方法所支持的一些语言。然而,这并不是一份详尽的语言清单


首先,Godot有官方内置支持GDScript和Godot的VisualScript


有几种方法可以使用C++

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

  • 或者,您可以创建模块(可以在自定义Godot构建中添加静态库(。

  • 由于Godot源代码是用C++编写的,所以如果您正在进行自定义构建,就不必限制自己只能制作模块。


在web构建中,Godot可以通过JavaScript类与JavaScript接口。但是,这种方法不允许将JavaScript脚本添加到Node,依此类推


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

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

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


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

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


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

这是向Godot添加语言支持的最方便用户的方式,但仅限于使用PluginScript

附录:前面提到的Lua绑定的作者Gil Barbosa Reis在存储库中(用英语和葡萄牙语(有一篇关于其实现的系列文章:godot-Lua pluginsipt/extras/articles/。这可能是迄今为止最全面的教程。


其他语言是通过利用GDNative来添加的(它们基本上模仿了您使用C++所做的操作(。这是NimRustDHaskell的情况,Go以及Swift

所以godot-rust就是这样工作的:使用rust创建本地库,并像在C++中创建和添加它们一样添加它们。对于任何已经有办法制作本地库的语言来说,这都是一个不错的选择


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

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

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

Godot正式支持GDScript、C/C++、C#。

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

最新更新