The Minecraft coding community is amazing. What they get done without documentation is stunning.
The Minecraft coding community is amazing. What they get done without documentation is stunning.
On a side note, I worked on Jpcsp, a PSP emulator in Java. Great for research and doing refactoring in the code quickly, not great for performance, even with a JIT. We wrote later PPSSPP in C++, performance was there quite easily.
Could you provide some more information on what it was not great?
On Java 11 or later, I wouldn't expect it to be nearly such a big deal. At least not relative to some other issues. For example, it being a reflective language means that there's a fair amount of memory overhead that's really only there to support features that aren't so useful in games development. Also, there's a fair bit of overhead, in terms of both CPU and memory churn, to making calls into native libraries from Java. Nowadays, neither of those is a big deal for a large swathe of games, either, so I don't think one can really make a blanket statement that Java is not great for games development.
Might as well just use C/C++ instead of fighting the ecosystem tooth and nail.
Do you an example in mind? Unity3D uses C# which is a garbage collected language.
Take Escape From Tarkov, an FPS that tries to be a AAA game and uses Unity. The performance problems that game has is frankly staggering.
Unity is a lot easier to get started with than UE4, so I understand the popularity. But for some games, the player can really tell how inappropriate the engine is. You can feel the GC churning away: poor performance, high dispersion of fps, frequent stuttering, etc.
While any game using any engine could have these problems, it's especially prominent in unity games.
Granted, Maven is an essential piece in the Java ecosystem, yet it seems that many developers are highly opinionated about it.
Minecraft and a lot of the other apps are terminally impressive, so it's easier to justify the ecosystem that produced them.
It's mentioned in the Wikipedia search section.