SDL3 switch makes sense given how much SDL2 was showing its age around GPU API abstraction (Vulkan/Metal support especially). Curious if this fixes any of the longstanding input lag / alt-tab issues that Java Edition has had on Linux, since that's usually where the windowing/input layer causes the most pain.
Minecraft: Java Edition now uses SDL3
191–200 of 285 posts
Re: Minecraft: Java Edition now uses SDL3
#192Earlier quoted context omitted.
Minecraft started on Java, a massive mod and server community created around it. Consoles won't run JIT/JVM/Java, so the Bedrock C++ version was created. People don't want to give up the massive mod community, so OG pc players stay on Java, while console players and newer PC players go to bedrock (with some of those PC players jumping over to Java after servers or mods are discovered). They almost have feature parity…
It's absolutely crazy that a game so popular - let alone any game - was originally written in Java. Why did notch do that? There were next to no libraries, ecosystem, or support for Java at the time. It was such a bizarre choice. Not to mention the JVM, GC, and all the other oddities. It was super off the beaten path to have done this. Might as well have been Ruby or Perl.
He used LWJGL, which probably covered a lot of his library needs.
Java has a JIT, so it's not comparable to Ruby and Perl.
Re: Minecraft: Java Edition now uses SDL3
#193Earlier quoted context omitted.
Minecraft started on Java, a massive mod and server community created around it. Consoles won't run JIT/JVM/Java, so the Bedrock C++ version was created. People don't want to give up the massive mod community, so OG pc players stay on Java, while console players and newer PC players go to bedrock (with some of those PC players jumping over to Java after servers or mods are discovered). They almost have feature parity…
It's absolutely crazy that a game so popular - let alone any game - was originally written in Java. Why did notch do that? There were next to no libraries, ecosystem, or support for Java at the time. It was such a bizarre choice. Not to mention the JVM, GC, and all the other oddities. It was super off the beaten path to have done this. Might as well have been Ruby or Perl.
Given what it was in the very beginning versus what it very rapidly grew into, I guess it was just something that made sense at the time.
Re: Minecraft: Java Edition now uses SDL3
#194The lwjgl bindings for this were written by a member of the GTNH modpack team, thereby completing the chain of vanilla->modded->vanilla once more https://github.com/LWJGL/lwjgl3/pull/1033
Re: Minecraft: Java Edition now uses SDL3
#195Earlier quoted context omitted.
Does macOS even have exclusive fullscreen anymore? I haven’t looked into it, but my impression is that it fakes it with borderless windowed even when the app explicitly asks for it.
Yes. On Apple Silicon Macs (w/ macOS Sonoma or later), native fullscreen automatically triggers Game Mode. This feature slashes input lag by prioritizing CPU/GPU resources and doubling the Bluetooth polling rate to 240 Hz for wireless accessories. Gaming works very well in this mode, even with PC titles played thru crossover. Conversely, using borderless windowed mode instead of native fullscreen on macOS adds render…
Re: Minecraft: Java Edition now uses SDL3
#196The lwjgl bindings for this were written by a member of the GTNH modpack team, thereby completing the chain of vanilla->modded->vanilla once more https://github.com/LWJGL/lwjgl3/pull/1033
How many people working on Minecraft now were modders ? And how many current persons working on Minecraft are also Modders ?
Re: Minecraft: Java Edition now uses SDL3
#197Earlier quoted context omitted.
SDL2 and SDL3 both have hardware accelerated 2D renderers, appropriately called SDL_Renderer. You can tell SDL to upload pixel buffers to GPU textures and tell SDL to draw those textures on the screen with various transformations and color effects. SDL3 added a way to tell SDL to render vertex-based geometry as well: https://wiki.libsdl.org/SDL3/SDL_RenderGeometry . Those vertexes can have 3D positions, so that count…
SDL_RenderGeometry(Raw) are only capable of 2D rendering and the vertexes do not even have a z-coordinate. Genuine 3D support is available in SDL3 via the GPU types and functions: https://wiki.libsdl.org/SDL3/CategoryGPU
As long as you can draw 2D triangles there's nothing stopping you from drawing a "3D" scene with a software transform pipeline. Depth sorting gets fun without a z-buffer though.
Re: Minecraft: Java Edition now uses SDL3
#198I ended writing a demo for screen mode handling to test and document the fiddly bits.
https://github.com/bondolo/SDL3-Fullscreen-Demo
The game is Java, like Minecraft, the demo is C because I wanted to keep it as simple as possible.
Re: Minecraft: Java Edition now uses SDL3
#199I recently converted a game, Tribal Trouble ( https://github.com/bondolo/tribaltrouble ) from GLFW to SDL3. It was mostly a painless refactor though I did have some issues with full screen exclusive modes and desktop full screen but was eventually able to resolve those. I ended writing a demo for screen mode handling to test and document the fiddly bits. https://github.com/bondolo/SDL3-Fullscreen-Demo The game is Jav…
Re: Minecraft: Java Edition now uses SDL3
#200The lwjgl bindings for this were written by a member of the GTNH modpack team, thereby completing the chain of vanilla->modded->vanilla once more https://github.com/LWJGL/lwjgl3/pull/1033
GTNH has done more for Minecraft than Microsoft has, arguably. The level of care and work there is incredible- and that’s not just because I’ve contributed a bit here and there.