Skip to content

Instantly share code, notes, and snippets.

@ShalokShalom
Created August 24, 2020 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ShalokShalom/faba894ad85388a2fbf6c06c9ef35a31 to your computer and use it in GitHub Desktop.
Save ShalokShalom/faba894ad85388a2fbf6c06c9ef35a31 to your computer and use it in GitHub Desktop.
Godot Languages Support: A community-maintained gist of languages with bindings for Godot Engine.

Godot Languages Support

A community-maintained gist.

Categories

(TODO)

(Per-module support feature legend. Currently, Rust (IIRC) doesn't support the video encoding module.)

By feature

  • πŸ“ Editor support available

By maintainer

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

πŸ† Full support

  1. GDScript πŸ’πŸ“

GDScript is actively maintained and documented, and is stable.

It is the primary language, has the most tutorials online and has deep in-Godot editor support.

πŸ₯‡ Production Ready

  1. Rust πŸ‘₯
  2. Nim πŸ‘₯
  3. JavaScript πŸ‘₯
  4. C# πŸ’

These languages are documented and stable. Some people use it in production.

(C# External Code Editing support is decent. What's it like for the others?)

πŸ₯ˆ Nearly There

  1. D πŸ‘₯

Stable, not documented.

πŸ₯‰ Has Potential

  1. Python πŸ‘₯πŸ“
  2. Kotlin πŸ‘₯

Python is the only language integrated via PluginScript. It provides editor integration as GDScript does - it's still in beta.

Kotlin bindings, while declared unready for production use and still in alpha, are being maintained fairly regularly in 2020.

πŸ… Okay, I guess?

  1. C++ πŸ’

C++ is a bit of a hot potato anywhere, and it is here as well: some people like to use it, but it could use better documention and can be difficult to set up (requires SCons for building, must use git submodules).

It's used for writing modules and plugins via GDNative.

Left 4 Dead

  1. Haskell πŸ‘₯
  2. GoπŸ‘₯

Haskell is used by one project only and is only partly integrated and documented.

Go bindings haven't been updated since 2018.

Sadly, not documented and stable enough for production. If you can, please revive them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment