Skip to content

GDExtension use-case #709

Closed
Closed
@danielperano

Description

@danielperano

I'm investigating whether Godot (along with this extension) would be a good fit to migrate an existing Java game project too. I'm very impressed with what I've seen so far with both - getting started with vanilla Godot and with this project was trivially easy. The biggest downside I've seen so far with this project is the requirement that it be built as a module rather than a GDExtension. I see in #311 that porting to an extension is a matter of interest, and I wanted to suggest another use-case that might be useful for.

One of my biggest wishlist items with modern Java is a good SIMD library in the JDK. The only up-and-coming option (Vector API) is still an incubating feature, and with its dependence on Valhalla that doesn't look likely to change soon. In any case, this still does not give nearly the same level of control as, say, C#'s System.Runtime.Intrinsics APIs, which I've tinkered with and confirmed are available in Godot. I view SIMD as a non-critical but very nice to have feature for game development, and it occurs to me that one could create a node in C# that implements some algorithm in SIMD code and call it from Java/Kotlin via cross-language scripting functionality.

I guess the above could be accomplished by building this project against Godot + C# instead of just Godot rather than porting to GDExtension, but GDExtension seems like it would be the better option long term from what I've been reading so far and it looks like that's already your intention. Not sure what your roadmap is for GDExtension or how high a priority it is, but if there's anything I can do to help make that happen please let me know - unfortunately I'm not in a great position to do it and offer a PR right now, but perhaps there are other things I could do to help out.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions