Replies: 1 comment 1 reply
-
Ah well, I spat on my sensibilities / prejudices and did get into C++. It's actually grooving plenty fine. =) |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
As I was lately getting into Godot, discovering the GDExtension stuff had me hooked, the idea of non-script game-dev with that impressive engine really appealed to me — except C++ wouldn't.
Now I've been pondering between Golang, Zig or plain C, all of which I'd pick over C++ any day.
Well, with Zig and C the story would be to link the
.h
included-with-or-freshly-regenerated-with https://github.com/gilzoide/gdextension-lite (which uses the.json
dumped by one's currently-installedgodot --dump-extension-api
) — kinda not too daunting at first glance. Now Zig would be even sweeter than C if it had a stable 1.x (been burned before with ever-more breaking-changes), but seems like a long way off even after so many years. Fair enough, bummer tho =)Either way, Golang would still appeal a bit more to me here than those 2... the GC is tunable enough and in a game one's allocations can be somewhat batched/front-loaded, pools etc, no big deal.
Well for me that raises the question how this project is sorta approached by you in design terms. Because from the above plain-C
.h
generator on one hand and the long-standing existence of CGO on another, I would have thought that nowadays there's tooling to generate a mostly-CGO pkg from any C API. (Wild assumption about the-unknown here, as I avoided CGO all these years.) Yet clearly this repo shows much hand-crafted development and a roadmap/checklist too.I guess all that is for conversions to/from unsafe ptrs / struct-layout compat / go-native feeling / C-string-Go-string-and-GD-String conversions.
How do you see the timeframe / complexity / daunting-ness of the remaining container types currently marked "not yet implemented"? Is every one of them a totally uniquely different beast than all the others? I guess the nums are simpler than the various others... have a clear idea how it should principally be done, or stuck on something? Will see myself how I grok this repo shortly, but just rambling a little.. cheers, thanks for anyone's thoughts here =)
AND — how is your actual underlying C link-up, surely with CGO it's not godot-cpp which is C++, but some
.h
or.a
or.o
?Beta Was this translation helpful? Give feedback.
All reactions