Live data from Hacker News

Minecraft: Java Edition now uses SDL3

minecraft.net

41–50 of 285 posts

Re: Minecraft: Java Edition now uses SDL3

#41
post #22
post #18

Earlier quoted context omitted.

On Linux, often times you will be using SDL3 regardless, as sdl2-compat and sdl12-compat are the default implementations of SDL2 and 1.2 on some distros. This has a lot of benefits, from more apps working natively on Wayland (which gives lower latency than XWayland) to better controller support. Not sure what this meant for osu but I wouldn't be surprised if it made the actual switch less impactful for some users. I…

Don't most games ship their own build of SDL?

Yes, but also it depends.

For Windows and macOS, it is just a flat "yes", since obviously in that case SDL isn't a system library.

If you're installing a game on Linux via Steam or Flatpak it isn't going to use system SDL in any case. Minecraft would probably ship a binary for use with JNI as is customary.

However, when running games outside of Steam or Flatpak, especially open source games but certainly even outside of open source, it is not uncommon to use packages that adapt the game for your OS, like AUR packages or Nixpkgs derivations. And in that case, you'll likely get system SDL. This would be the tendency for emulators, games that are open source like ioquake, and so on.

Even in a case where SDL2 is statically linked, it is still possible to attempt to load SDL3 by pointing SDL_DYNAMIC_API to a copy of sdl2-compat.

I don't know what Steam does here, but I think it doesn't matter. A large amount of the commercial games you wind up playing under Linux are running under Proton anyway at which point the SDL version makes little difference if it is used at all. So I think it is still likely to see a lot of SDL stuff silently upgraded to SDL3 on Linux, though yes there are caveats to that.

Edit: Also, I wanted to make an additional note: the Ubuntu 24.04 note is still relevant even in the face of most games shipping their own SDL3. The reason for this is simple, I think to this day a lot of people (myself included) use Ubuntu 24.04 as a sort of general Linux build platform for building binaries that work pretty much anywhere. What you wind up having to do if you want SDL3 to work there is to build it, either via your build system (not so bad to do, either via vcpkg or via CMake subprojects) or just outside the program's build process altogether. It's not asking too much, especially since SDL3 compiles very quickly relative to a lot of other software, but still, it adds some complexity that you don't get when just building with and linking to SDL2 where you can install the dev files and binaries directly with apt-get.

Edit 2: It seems Steam is using both SDL_DYNAMIC_API and sdl2-compat as of Steam Linux Runtime 4, according to Google's AI overview. Take it with a grain of salt, as I didn't feel it warranted a deep investigation, but this suggests to me you're quite likely to encounter SDL3 within Steam (for native Linux games) regardless of what the game ships.

Re: Minecraft: Java Edition now uses SDL3

#42
post #25

Earlier quoted context omitted.

SDL is more of a "platform" you can use anywhere. It includes literally everything you'd want from the OS layer (windowing, graphics, audio, input, network code, threads) whereas GLFW is just windowing, graphics context and input, you need to bring your own audio, network code and threading library. Not a big deal for some but SDL does do more... Plus it's even more portable than GLFW.

I'm aware of those things, but are those the reasons ? Are they actually planning on moving away from their existing audio, networking and threading solutions and switch it out for SDL's implementations? Are they planning on porting Minecraft Java to platforms GLFW doesn't support?

A little AI assisted digging indicates SDL3 has better support for switching between keyboard layout keys and physical keys depending on context (ie. Game controls can be WASD or whatever letters those physical keys are while it can use international keyboard layouts for chat boxes).

Re: Minecraft: Java Edition now uses SDL3

#43
post #25

Earlier quoted context omitted.

I'm aware of those things, but are those the reasons ? Are they actually planning on moving away from their existing audio, networking and threading solutions and switch it out for SDL's implementations? Are they planning on porting Minecraft Java to platforms GLFW doesn't support?

A little AI assisted digging indicates SDL3 has better support for switching between keyboard layout keys and physical keys depending on context (ie. Game controls can be WASD or whatever letters those physical keys are while it can use international keyboard layouts for chat boxes).

Is that why they are doing this? Did your little chat bit tell you anything about Mojang's stated rationale, which is what I asked about?

Also, GLFW reports both the scan code and the key code, just like SDL, so I'm not sure I really trust those technical details either. Usually, you want to use scan code for some things (e.g key binds) and key code for others (e.g typing), so you can't have a global switch.

Re: Minecraft: Java Edition now uses SDL3

#44
post #18
post #3

osu (the rhythm game) also recently switched to SDL3, from SDL2, and it came with significant performance/latency improvements. SDL3 adoption is a bit slow it seems. Though, I'm surprised Minecraft used GLFW all this time. One notable thing is that switching to SDL3 eliminated lag from having Discord client open while playing osu. Pretty sure this was from their devlog on YouTube.

On Linux, often times you will be using SDL3 regardless, as sdl2-compat and sdl12-compat are the default implementations of SDL2 and 1.2 on some distros. This has a lot of benefits, from more apps working natively on Wayland (which gives lower latency than XWayland) to better controller support. Not sure what this meant for osu but I wouldn't be surprised if it made the actual switch less impactful for some users. I…

It's been double-stable since early 2025 (version 3.2), so it's weird that Ubuntu doesn't have it when even Debian does. I've seen a couple projects holding back on the upgrade because of that.

With the way the software ecosystem works now, a lot of projects just include a copy or submodule because it's self-contained and a good candidate for it. It dynamically loads most dependencies, so it's pretty light-weight, considering. The whole static linking licensing problem is gone now, too.

Re: Minecraft: Java Edition now uses SDL3

#45

Anyone got any advice for a techy dad with no (zero) Minecraft experience who wants to set up a Minecraft server for the family in 2026? Kids right now are playing on their iPads, and (sometimes) old macbooks/windows PCs.

Genuinely, install Ubuntu Server Edition into an old computer, set up SSH then tell Claude Code the account and IP for login. You can ask if to set up damn near anything you want and it'll do it. If you're using a laptop make sure it disables all of the sleep on lid close stuff, as well as other laptop-specific power optimisations. A VPS would work too if you want something always available with a datacentre network…

Absolutely this. I had installed wekan for a home chores kanban board on a $5 vps and had spent several hours trying to get the proxy working to make it externally reachable, and then I did this. Well, I used grok build to evaluate it, but I just told it where to ssh, and in about 10 minutes it was working, security was configured properly, backups were set up, etc. all of those post install things that I might never have gotten around to for a simple home setup.

Re: Minecraft: Java Edition now uses SDL3

#47

Anyone got any advice for a techy dad with no (zero) Minecraft experience who wants to set up a Minecraft server for the family in 2026? Kids right now are playing on their iPads, and (sometimes) old macbooks/windows PCs.

itzg has OCI container images and kubernetes helm charts

https://itzg.github.io/docker-minecraft-docs/

Re: Minecraft: Java Edition now uses SDL3

#48
post #9

Earlier quoted context omitted.

Pretty sure minecraft has used borderless full screen for a long time unless you go out of your way to tell it not to. Lots of platforms, services, and applications have been deprecating exclusive full screen over the past decade or so.

in this same release Minecraft removed exclusive fullscreen on MacOS, i wonder why they haven't done the same on Windows & Linux - maybe people still have uses for that stuff on those operating systems? in my experience exclusive fullscreen is Awful on MacOS

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.

Re: Minecraft: Java Edition now uses SDL3

#49
post #44
post #18

Earlier quoted context omitted.

On Linux, often times you will be using SDL3 regardless, as sdl2-compat and sdl12-compat are the default implementations of SDL2 and 1.2 on some distros. This has a lot of benefits, from more apps working natively on Wayland (which gives lower latency than XWayland) to better controller support. Not sure what this meant for osu but I wouldn't be surprised if it made the actual switch less impactful for some users. I…

It's been double-stable since early 2025 (version 3.2), so it's weird that Ubuntu doesn't have it when even Debian does. I've seen a couple projects holding back on the upgrade because of that. With the way the software ecosystem works now, a lot of projects just include a copy or submodule because it's self-contained and a good candidate for it. It dynamically loads most dependencies, so it's pretty light-weight, co…

Ubuntu does include it, since 24.10, but Ubuntu 24.04 doesn't. It just barely predates (an ABI stable release of) SDL3. Now that 26.04 is out, it won't take too much longer for that reason to hold off on SDL3 to disappear, but I think we'll at least have to wait until Pop!_OS rebases before it is a completely done deal.

And yeah, in the meantime, I have just been using CMake's FetchContent system for SDL3. With improvements on both CMake's end and SDL's own build system, it is quite seamless. I still wish it was a bit more elegant but I'll take "easy".

Post reply on HN