Skip to content

Godot-Languages-Support/godot-lang-support

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—Ί An overview about the available language bindings for Godot & Co

Categories

By maintainer

  • πŸ’ Official
  • πŸ‘₯ Community-maintained

By method

  • βš™οΈ Module
  • 🧩 GDExtension
  • πŸ„ "Surfs" on another language
  • 🏰 Sandboxes the code

By editor support

  • 🧬 Can be edited inside the Godot Engine (and its forks)
  • πŸ”Œ Has support for the Godot API in an external editor.

By target platform

  • 🌍 Web
  • ⚑ On JIT restricted platforms (Switch, iOS) *
  • Switch support not available by default, a SDK and implementation is also needed.

πŸ†πŸ₯‡ Production ready

These languages are documented and stable.
In alphabetical order.

C++ / Godot module πŸ’ βš™οΈ 🌍 ⚑

You can code your entire project (or parts of it) in C++ and include the game logic as Godot modules.

C++ / Jenova πŸ‘₯ 🧩 🧬 πŸ”Œ

Jenova provides hot reloadable C++ scripting, and supports for Visual Studio, VSCode, and the Godot editor.

Also, there is support for and nested GDExtension development, and an inbuilt virtual machine for running an entire OS that can be embedded into the game and interacted with it.

It is one of the most advanced, and best maintained community extensions.

The performance is factually on the same level as native C++, with a 0.005ms impact for calling functions from Godot.

It also provides an own API for the development of extensions, although that is currently undocumented.

Currently it is only available for Windows and Linux, both in terms of the development and the export itself.

It is possible to develop with Jenova and use one of the other two C++ integrations or GDExtension to ship the game to more platforms.

In that case, you should be aware about potentially missing features with these extensions.

As an example, users should not use functions stored in JenovaSDK unless they build it statically, and link against it.

C++, Rust and Zig πŸ‘₯ 🧩 🏰 🌍 ⚑

This mainly focuses on Cpp and Rust support and also features Zig. It sandboxes the code and is suitable for modding support.

C# πŸ’ βš™οΈ πŸ”Œ

C# support is made possible by an official Godot module. If you have the .NET version of Godot or Blazium, it comes built-in.

D πŸ‘₯ 🧩 πŸ”Œ

New, maintained binding to GDExtension, ported from the previous GDNative extension.

GDScript πŸ’ βš™οΈ 🧬 πŸ”Œ 🌍

GDScript is actively maintained, documented and is stable. It is the primary language in the Godot ecosystem, has the most tutorials online, and deep Godot editor support.

Can be extended with Golden Nugget.

Go πŸ‘₯ 🧩 ⚑ 🌍

Go bindings to GDExtension. Possible to use it for shaders.

Haxe πŸ‘₯ πŸ”Œ πŸ„ 🌍

Does compile Haxe to GDScript. Made with the reflaxe framework.

JavaScript and Typescript πŸ‘₯ 🧩 πŸ”Œ 🌍

Javascript and Typescript extension, with multiple different backends to choose from.

Kotlin, Java, and Scala. πŸ‘₯ βš™οΈ πŸ”Œ 🌍 ⚑

Provides proper support for Kotlin and Java. Aims to support Scala in the near future as well.

GraalVM with Native Image is also supported.

Their Discord is nice and friendly.

Lua πŸ‘₯ 🧩 ⚑

New and exciting binding, that allows to use Lua both directly, and as well by calling into it from other languages.

Nim πŸ‘₯ 🧩 πŸ”Œ 🌍 ⚑

Feature complete, hot reloadable implementation of Nim.

Web support on the roadmap for the next release.

Orchestrator πŸ‘₯ 🧩 🧬 ⚑

Orchestrator is a visual scripting language with advanced macro support to provide high-level abstractions. Friendly and competent support.

Also usable for dialog scripting. It provides rich API support, is implemented in C++, and compiles to native code.

Rust πŸ‘₯ πŸ”Œ 🧩 🌍 ⚑

You can find the project homepage here.

Very well supported, good documentation, active community.

Swift πŸ‘₯ πŸ”Œ 🧩 🌍 ⚑

Very well-supported implementation by Miguel Deicaza.

There is also SwiftGodotKit

πŸ€ͺ Curiosities

Stable programming languages, ... with a twist πŸ˜‰

Enu πŸ‘₯ 🧬 βš™οΈ

Experimental block-based language and framework.

Ink πŸ‘₯ πŸ”Œ πŸ„

Scripting language for writing interactive narrative.

πŸ₯ˆ Halfway there

In active development, and comparable to being in the beta stage.

Block Coding 🧬 πŸ‘₯ 🧩

Scratch-like visual coding in blocks.

Dart πŸ‘₯ 🧩

The project's README contains a detailed roadmap.

Go 2 πŸ‘₯ πŸ”Œ 🧩

Go bindings to GDExtension.

Lua πŸ‘₯ 🧬 πŸ”Œ βš™οΈ

This version of Lua is currently undergoing a partial rewrite and seems to be stuck in development.

Python πŸ‘₯ 🧬 πŸ”Œ 🧩

Currently in reconstruction.

Python 2 πŸ‘₯ 🧬 🧩

Python implementation from scratch.

V πŸ‘₯ πŸ”Œ 🧩

Bindings for the V programming language.

WASM πŸ‘₯ 🏰 πŸ„ 🌍

Bindings for wasm. Implemented via the Rust bindings.

WASM 2 πŸ‘₯ 🏰 βš™οΈ 🧩 🌍

Allows to load WASM libraries from other languages. Available as both module and GDExtension.

Zig πŸ‘₯ πŸ”Œ 🧩

Almost no documentation is provided, uncertain about the status of the project.

Help

If you want to help, and if you are a language maintainer, see here: https://github.com/Vivraan/godot-lang-support/issues

This list is for Godot 4. In case you are looking for Godot 3 bindings, find them here

Note that some of that projects have moved on to Godot 4, so you will have to use one of their older versions.

See the README or contact the project for further information.

The engine itself, and the Godot modules are developed in C++. For those, please start with the official docs for contributing to the engine and understanding engine development.

In contrast, the languages provided here are for programming the game logic. There are different methods for extending the engine, and granting additional language support:

  • Modules: Maintainers/Developers define custom implementations of Godot's Script, ScriptInstance, and ScriptLanguage types in a module. Users add the module to the engine source code and compile the engine themselves (or a developer may provide precompiled binaries).

  • GDExtension: This is the official, new way to implement plugins for Godot 4. One of the limitations here is, that it wont support the Nintendo Switch. It has the benefit, that it does not need to be compiled into the engine, and gives more control over it.

🌐 Other Useful links

  • See the language/scripting section on Wikipedia.
  • Gamesfromscratch made a video about some of the supported languages.
  • (You can expand this list!)

Enjoy ^-^

About

A community-maintained list of Language Support Projects for Godot Engine.

Topics

Resources

License

Stars

Watchers

Forks