Skip to content

Godot-Languages-Support/godot-lang-support

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—Ί A short overview of the available scripting languages for the Godot game engine (and its forks)

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

⚠ Disclaimer

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

The engine and modules are developed in C++. For those topics, 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.

Categories

By editor support

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

By maintainer

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

By method

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

πŸ†πŸ₯‡ Production Ready

These languages are documented and stable.
In alphabetical order.

  1. C++ / Jenova 🧬 πŸ”Œ πŸ‘₯ πŸ”§

    Jenova provides not only hot reloadable C++ scripting, and editor support within Godot itself, Visual Studio, and VSCode, but also an inbuilt VM that can be embedded into the game, and a lot of other features.

    Has support for nested GDExtension development, and provides its own API for extension development as well, although currently undocumented.

    Mainly focused on Windows as the development platform, and also available for Linux.

    A non-free edition that provides encrypted code obfuscation, is optionally available.

  2. C++ and Rust 🧬 🏰

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

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

    C# support is made possible by an official Godot module. If you have the dotnet version of Godot or Blazium, it comes built-in. It does not support web export (HTML/wasm) as of now.

  4. D πŸ‘₯ πŸ”Œ πŸ”§

    New, maintained binding to GDExtension.

  5. 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.

  6. Haxe πŸ‘₯ πŸ”Œ πŸ„

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

  7. JavaScript and Typescript πŸ‘₯ πŸ”Œ

    Currently limited to Godit 4.1 and a rewrite from module to GDExtension is planned, further delaying the development towards modern versions if Godot.

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

    Provides proper support for Kotlin and Java. Aims to support Scala in the near future as well. Their Discord is nice and friendly.

  9. Nim πŸ‘₯ πŸ”Œ πŸ”§

    Feature complete, hot reloadable implementation of Nim.

  10. 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.

  11. Rust πŸ‘₯ πŸ”Œ πŸ”§

    You can find the project homepage here.

  12. Swift πŸ‘₯ πŸ”Œ πŸ”§

    Very well-supported implementation by Miguel Deicaza.

πŸ€ͺ Curiosities

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

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

    Experimental block-based language and framework.

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

    Scripting language for writing interactive narrative.

πŸ₯ˆ Half way there

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

  1. Go 1 πŸ‘₯ πŸ”Œ πŸ”§

    Go bindings to GDExtension.

  2. Go 2 πŸ‘₯ πŸ”Œ πŸ”§

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

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

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

  4. Python πŸ‘₯ 🧬 πŸ”Œ

    Currently in reconstruction.

  5. Python 2 πŸ‘₯ 🧬 πŸ”Œ

    Python implementation from scratch.

  6. WASM πŸ‘₯ 🏰

    Bindings for wasm. Implemented via the Rust bindings.

  7. WASM 2 πŸ‘₯ 🏰 βš™οΈ πŸ”§

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

  8. Zig πŸ‘₯ πŸ”Œ πŸ”§

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

🌐 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