Godot Go

Go bindings for Godot 4.2 GDExtension API
Alternatives To Godot Go
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Bgfx13,714
2 days ago7August 18, 2023279bsd-2-clauseC++
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Cimgui1,232
9 days ago11mitLua
c-api for imgui (https://github.com/ocornut/imgui) Look at: https://github.com/cimgui for other widgets
Vortice.windows88113413 days ago206November 17, 20232mitC#
.NET bindings for Direct3D12, Direct3D11, WIC, Direct2D1, XInput, XAudio, X3DAudio, DXC, Direct3D9 and DirectInput.
Glfw Rs6011608415 days ago69November 14, 202338apache-2.0Rust
GLFW3 bindings and idiomatic wrapper for Rust.
Raylib Rs59613a month ago9November 07, 202155otherRust
Rust bindings for raylib
Raylib Cs57821924 days ago41August 13, 20239zlibC#
C# bindings for raylib, a simple and easy-to-use library to learn videogames programming
Awesome Dear Imgui544
a year agomit
A collection of awesome dear imgui bindings, extensions and resources
Godot Nim443
a year agoFebruary 17, 201832otherNim
Nim bindings for Godot Engine
Godot Go367
17 days ago18November 12, 20238mitGo
Go bindings for Godot 4.2 GDExtension API
Raylib Zig249
2 months ago1mitZig
Manually tweaked, auto-generated raylib bindings for zig. https://github.com/raysan5/raylib
Alternatives To Godot Go
Select To Compare


Alternative Project Comparisons
Readme

Build Status


godot-go: Go bindings for Godot 4.2-beta5

Go bindings for the Godot Game Engine cross-platform game engine. godot-go integrates into Godot through the Godot GDExtension API through cgo.

The project is currently under heavy development. The API should be considered EXPERIMENTAL and is subject to change. The API is expected to become more stable as we get closer to a 1.0 release.

Current State of the Project

Here are some high level bullet points:

  • You must have a minimum of Godot 4.2-dev6.
  • The tests confirm basic functionality.
  • The bindings are more than likely leaking memory.
  • Not all variant types have been tested.
  • Go to godot-go-demo-projects to look at demo projects running a mix of godot-go and GDScript classes.

Getting Started

Requirements:

  • clang-format
  • gcc
  • go 1.21.x
  • goimport

Building Godot-Go

In order for godot-go to work correctly, you must make sure the godot_headers are in sync between your godot binary and godot-go. Development is built and tested off of Godot 4.2-beta5.

# exports the latest gdextension_interface.h and extension_api.json from the godot binary
GODOT=/some_path/bin/godot make update_godot_headers_from_binary

# generates code for wrapping gdextension_interface.h and extension_api.json
make generate

# build godot-go
make build

Test

Once the project successfully builds, run the following commands to generate cached files for the test demo project for the first time (don't be concerned if it fails):

make ci_gen_test_project_files

From here on out, you will just need to run the following command to iteratively test:

make test

This will run the demo project in the test directory.

The expected output can be found in CI logs

Documentation

A living doc of godot-go is maintained at docs/overview.md.

Contact

I'm happy to help out anyone interested in the project. Please leave a message in the Discussion boards or you can add me (surgical#3758) as a friend on the Godot Engine Discord servers. I primarily frequent the gdnative-dev room.

References

Credit

  • Inspiration for the project was taken from ShadowApex's earlier project: godot-go
  • Inspiration also from godot-cpp
Popular Bindings Projects
Popular Game Development Projects
Popular Libraries Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Golang
Bindings
Game Development
Godot Engine
Amd
Codegen
Cgo