Help wanted with Godot Zig binding development

I know that there are a lot of Zig enthusiasts who are also doing game development. I’ve recently found myself becoming the core maintainer of godot-zig. The original developer has gone awol and hasn’t been seen for almost 6 months after probably 12 months of very little attention.

For those who are wondering: godot-zig is a Zig binding for the Godot Engine that allows you to write code for Godot using Zig.

I’ve forked it over to GitHub - Doubleword-Labs/godot-zig: Zig bindings for Godot 4 and it’s already got some issues/PRs coming in.

I’ve been doing a lot of refactoring as part of trying to understand the whole codebase, especially the codegen. I have also been reading the codebases of the Rust and Swift bindings for Godot for inspiration.

It still needs a lot of work, and I have to figure out how to remove usingnamespace which it currently relies on to work.

If you feel like you might be able to contribute in any way, even if it’s just advice, please reach out to me.

Zig is a promising language for this application. I think it rivals the productivity of gdscript in a lot of ways. Check out the examples repo. As long as you have the latest stable version of Godot (4.4.1) it should work.

Cheers

10 Likes

Is there a reason you are asking for help regarding usingnamespace when issue 4 seems to have figured it out?

I haven’t confirmed whether that solution is going to work. It seems promising though.

I’ve made some progress with removing usingnamespace. By iterating the inheritance list of each class, I generated virtual methods on the child class.

There is still a few locations using usingnamespace. Most notably the root export. I will need to improve other parts of the codebase before that is tenable.

The examples no longer use it, which is good!

Thank you for kickstarting this, I tried using those bindings a while back but failed to wrap my head around the usingnamespace abuse. I’m glad you’re taking a new direction! I’m still a Godot noob but I want to learn.

2 Likes

Really nice to see the project getting back into development, thanks for this :slight_smile:

2 Likes