GDScript to Python to C Transpiler

Godot MIT license Python

Icon

gdscript-transpiler-bin is a GDScript compiler (using Nuitka), minimal scripts can be transpiled to Python.

Binary builds are compiled using GitHub Actions for Alpine Linux, macOS and Windows x86_64.

Other compatible platforms: Android (aarch64 and x86_64).

Also see generated Python source from GDScript.

Video

Example

git clone https://codeberg.org/LinuxUserGD/gdscript-transpiler-bin.git
cd gdscript-transpiler-bin
git submodule update --init --remote --progress 

Godot Engine command line (stage0)

  • ./godot4 -s bin/gds.gd --headless help

  • ./godot4 -s bin/gds.gd --headless run=bin/gds.gd (for running GDScript directly using x-python)

  • ./godot4 -s bin/gds.gd --headless format=bin/gds.gd (for generating Python project)

  • ./godot4 -s bin/gds.gd --headless compile=bin/gds.gd (for compiling GDScript to binary using Clang and Nuitka)

Python environment (stage1)

Installing python gds

python -m pip install git+https://github.com/LinuxUserGD/gdscript-transpiler-source.git 
  • python -m gdsbin help

  • python -m gdsbin run=bin/gds.gd

  • python -m gdsbin format=bin/gds.gd

  • python -m gdsbin compile=bin/gds.gd

Nuitka compiled binary (stage2)

Installing gds binary (available at itch.io)

unzip gdscript-transpiler-bin.zip
cd gdscript-transpiler-bin
chmod +x gds 
  • ./gds[.exe] help

  • ./gds[.exe] run=bin/gds.gd

  • ./gds[.exe] format=bin/gds.gd

  • ./gds[.exe] compile=bin/gds.gd

Benchmark

Time for running GDScript code:

func string() -> int:
     var x: String = ""
     for i in range(0, 300000):
         x += " "
     return x.length()
func add() -> int:
     var x: int = -100000000
     for i in range(0, 100000000):
         x += 1
     return x 
Godot Python Nuitka
benchmark.gd 11.639s 4.678s 1.857s

License

See LICENSE and CREDITS (third-party licenses)

Download

Download
gds 12 MB
Version 117 84 days ago
Download
gds 54 MB
Version 62 Sep 30, 2023
Download
gds.exe 50 MB
Version 62 Sep 30, 2023

Install instructions

How to run:

./main.exe --help (Windows)

./main.bin --help (Linux/macOS)