Real-world experience with Java/JVM bindings?

Hey everyone,

I’m evaluating a transition from Unity after 3 years of development with it, and I’m looking for a better fit. As a professional Java developer, the primary pain point pushing me away from Unity, among other things, is C# which I deeply dislike.

I originally started looking for native Java game engines or libraries, but I unexpectedly discovered that Godot has bindings for the JVM ecosystem (e.g. godot-jvm by utopia-rise). Since I work in Java daily, this caught my attention.

I’d love to hear from anyone actively using Java (or Kotlin/Scala via the same toolchain) within Godot. Specifically, I’m hoping to learn about the practical side-effects of using an unofficial/community-driven binding framework for production work:

  1. Parity: How closely do updates track with official Godot releases? How painful is the lag for the JVM bindings to catch up?
  2. Tooling & Ecosystem Integration: How seamless is debugging (e.g., attaching IntelliJ IDEA) while the Godot editor is running? Can you smoothly pull in standard external Maven/Gradle libraries without weird classloader conflicts?
  3. Distribution: Packaging a JVM game cleanly for players (e.g., via bundled JRE or GraalVM native images), how smooth is the export pipeline in practice?
  4. Performance & Overhead: While these aren’t my main concerns, I’m still wondering about startup times, JIT warm-up and such. Are there hidden garbage collection or interop bottlenecks when passing heavy data structures back and forth across the GDExtension boundary during tight game loops?

If you’ve built prototypes using this stack, I’d appreciate hearing your experiences, gotchas, or warnings.

(Note: To keep this thread constructive, let’s skip language-preference debates. I’m strictly interested in technical feedback regarding the JVM-to-Godot workflow. Thanks!) :grinning_face_with_smiling_eyes:

Idk about java because i only learned it few years ago but i know a little about C# which is supported by godot actually and about C++ and i’d say about other languages that - it’s way harder to develop, maintain and some platforms might be blocked (e.g web can’t use C#) but in some areas they might help, C++ is from 5-10x faster in godot at least from what i’ve heard and C# alone is 4x faster than GDScript in heavy math scenarios

If you care about game development i’d suggest learning gdscript because it’s just less of a play, but if you take this as pure hobby or learning more technical side of engines/apps/computers anything it is surely a nice exercise to try

It’s been years since I built a native jni binding to c++ (to build a restful web api around openjpeg), but my advice in this context:

You might as well use C# for development about which @tibaverus can tell you more (I think).

I prefer just plain gdscript myself, it’s a very light wrapper for the core which is all c++.

What makes you want to stick to java, if I may ask?

Oh… Never mind then.. (sorry, I missed your note)

I wouldn’t recommend anyone use Godot with C# or frankly any language other than GDScript, unless they are REALLY good with the given language and willing to put up with a lot of annoyances and bugs that come with 3rd party bindings. Even the officially supported C# way of doing things isn’t ideal and can be a bit annoying in some places, and the one time I tried bindings for another language, my experience was only going downhill.

I shipped one game with GDScript and one game with C# and I have to say, iterating over the different versions was night and day.

In GDScript, it’s almost instant, everything just happens as you’d expect, everything appears almost instantly, and writing editor specific code is very satisfying.

In C#, you have to plan out everything in advance, because you will not be able to rapidly prototype when building a solution takes even just a couple of seconds instead of almost instantly running. And the more you add, the longer the compile times get.

And this sadly only gets worse when you use bindings for a different language. You are completely at the mercy of whoever is maintaining them.

Unfortunately I’m not sure you will find anyone who uses Java with Godot. I’m sure they exist, somewhere, but I highly doubt they are using the Godot forums. I suppose your best bet is to give it a go with a super small project and see how it works for you.

PS: Despite everything I will continue to use C# because I threw away so much of my life learning it that I just find it easy to use.

Yes, this kind of confirms my suspicion. Thanks for chiming in.

But I do genuinely hope someone who did use Java with Godot comes forward, I’d love to know more as well!
After all, C# is just Microsoft Java.

A C# fan told me about Godot in the first place, which finally gave me the last nudge to want to learn it. Only to discover gdscript is so much more fun.

I even gave Unity one shot to experience the contrast… OMG, the installation itself spooked the h# out of me. :grin: