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.
I kind of don't see the benefit, as it's still going to use only the window, input and platform integrations features, while SDL3 has a whole software renderer built-in and much more.
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.
Docker compose + systemd, automated backups (bonus points for coordinating with restic/borg + rsync cronjob), and ram disks. Ram disks in particular are a game changer for game feel. For the backups you'll need to leverage a feature that exports the world. This used to need to be a mod, but it's possible it's been folded into vanilla.
My son setup a minecraft server on a mac mini using claude, was pretty smooth. If your kids just use it in house you do no need to worry about security issues. In my case I did create a dedicated user account for the server.
I've been running this[0] for a few years now, moved it a couple of days ago to a portainer VM on proxmox with 6GB ram, its running perfectly fine for 3 of us, and works fine from tablets and PC.
Can also run on the nintendo switch if you setup a cname to redirect to your server IP, i.e:
mco.lbsg.net x.x.x.x
play.lbsg.net x.x.x.x
A couple of weeks ago I set up a server this way to help get my fiancee into video games. I already owned a proper Minecraft PC license from way back in the day, and bought Minecraft on Android for ~$5. My thinking is that we could play together, me on a Mac and her on a Galaxy Tab we have with a controller. Attempting to get these two clients to play together is what led me into the same situation you are about to find yourself in.
Something to know is that there are two versions of Minecraft, Java and Bedrock (C++). Some others in this thread have talked about the history of why this is, but the important thing to know is that Java runs on Mac/Windows/Linux, and there are some neat launchers that can run it on Android. Bedrock runs on Consoles/Tablets/Phones/Windows. Note that Bedrock _does not_ run on Linux or Mac.
There are ways to host Bedrock-only servers if you're _sure_ no users will ever be running the Java client, but I would recommend running a Java server with the Geyser and Floodgate plugins for compatibility reasons. The plugins are a translation layer that trick Bedrock clients into thinking they're connecting to a Bedrock server. I've been playing this way (me on Mac/Java, her on Android/Bedrock) for two weeks with no real issues. I haven't explored adding any other plugins to the server.
I'm running this in a container on an old Thinkpad in my office. This setup is common enough that GLM-5.2 set it up in (nearly) one shot.
I also really recommend running an instance of https://bluemap.bluecolored.de/ in another container on the same machine. It hosts a neat map of your world, which your family could pull up on their phones while not playing. My server itself is LAN only, but I used a Cloudflare tunnel to host the map so she can show her friends: https://mcmap.thg3.net/
Let me know if you have any questions or would like my server config!
Is the rationale for switching away from GLFW documented anywhere? I'd love to read about it, I have some projects which use GLFW myself and I'm always wondering whether or not SDL would be better
Why would they do that? They specifically made bedrock edition so that the game could be more cross platform, which has worked extremely well for them financially.
Java edition has never been playable on anything other than Windows, Mac, and Linux, porting an SDL version onto any of those is extremely easy.
Getting everyone on one platform is a much better model for Microsoft than trying to resell you a copy on each device.
The (official, though by now long dead) raspberry pi version has python scripting. TBH that's almost all it has going for it, besides being open source
A long time ago I had some fun with Minecraft Pi Edition. It was a cut down version of pocket edition exclusively for the Raspberry Pi, with an official Python API:
https://minecraft.wiki/w/Pi_Edition
There's also a (discontinued) Bukkit/Spigot plugin called RaspberryJuice which makes the same Python API work with a real Java edition server:
https://dev.bukkit.org/projects/raspberryjuice
The 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
Yeah I think most of the people who super into Minecraft still play Java Edition if they can. Also MacOS and Linux still don't have Bedrock edition (officially) for some reason.
Honestly, it seems like the way to go to have a very moddable game is a language that's easily decompiled and modified at runtime like Java or C# (or just JVM and .NET CLR if you prefer).
When they do internal modifications, but also have modders in mind, you get to have an amazing modding API basically "for free".
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.
I 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.
"Switching between Borderless and Exclusive Fullscreen no longer requires restarting the game"
Afaik GLFW does not support this. So maybe that is part of the motivation for switching?
I use LWJGL3 as well and I think it is really an amazing library!
50 comments
[ 0.21 ms ] story [ 16.9 ms ] thread> Exclusive fullscreen mode on Windows may cause the game to crash in certain situations, especially when using multiple monitors
> Entering Exclusive fullscreen mode crashes the game on Wayland
Those, together, kinda seem like the kind of blocking bug that would usually delay a snapshot... Lets hoping it gets fixed before release lands...
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.
https://pdx.su/blog/2024-07-08-running-a-minecraft-server-on...
Can also run on the nintendo switch if you setup a cname to redirect to your server IP, i.e: mco.lbsg.net x.x.x.x play.lbsg.net x.x.x.x
Then choose the "Lifeboat" server
[0] https://jamesachambers.com/minecraft-java-bedrock-server-tog...
Something to know is that there are two versions of Minecraft, Java and Bedrock (C++). Some others in this thread have talked about the history of why this is, but the important thing to know is that Java runs on Mac/Windows/Linux, and there are some neat launchers that can run it on Android. Bedrock runs on Consoles/Tablets/Phones/Windows. Note that Bedrock _does not_ run on Linux or Mac.
There are ways to host Bedrock-only servers if you're _sure_ no users will ever be running the Java client, but I would recommend running a Java server with the Geyser and Floodgate plugins for compatibility reasons. The plugins are a translation layer that trick Bedrock clients into thinking they're connecting to a Bedrock server. I've been playing this way (me on Mac/Java, her on Android/Bedrock) for two weeks with no real issues. I haven't explored adding any other plugins to the server.
I'm running this in a container on an old Thinkpad in my office. This setup is common enough that GLM-5.2 set it up in (nearly) one shot.
I also really recommend running an instance of https://bluemap.bluecolored.de/ in another container on the same machine. It hosts a neat map of your world, which your family could pull up on their phones while not playing. My server itself is LAN only, but I used a Cloudflare tunnel to host the map so she can show her friends: https://mcmap.thg3.net/
Let me know if you have any questions or would like my server config!
Java edition has never been playable on anything other than Windows, Mac, and Linux, porting an SDL version onto any of those is extremely easy.
Getting everyone on one platform is a much better model for Microsoft than trying to resell you a copy on each device.
This sounds hilarious out of the context :D
Anyone with experience on programming Minecraft with python? Tips?
Also a more easy language to look into for Minecraft would be SkriptLang [1]. It has a big community and is mostly easy to understand.
[0]: https://github.com/PrismarineJS/mineflayer/blob/master/examp... [1]: https://github.com/SkriptLang/Skript/
It's long discontinued, and apparently doesn't work on recent versions of Raspbian, but there is a current modded version which apparently still works (I haven't tested): https://gitea.thebrokenrail.com/minecraft-pi-reborn/minecraf...
There's also a (discontinued) Bukkit/Spigot plugin called RaspberryJuice which makes the same Python API work with a real Java edition server: https://dev.bukkit.org/projects/raspberryjuice
And there's also a currently maintained Bukkit/Spigot plugin called FruitJuice: https://github.com/jdeast/FruitJuice
Back in the day I made a basic version of Minesweeper which you could play inside Minecraft Pi Edition using the Python API: https://bitbucket.org/dwales/minesweeper-for-minecraft-pi-ed...
This blog showcased a bunch of Minecraft + Python projects: https://mcpipy.wordpress.com/
Also No Starch Press has a book which uses this Python API: https://nostarch.com/programwithminecraft
Of doom ports I know, Woof! already did migrate https://github.com/fabiangreffrath/woof
Pretty good for Wayland.
When they do internal modifications, but also have modders in mind, you get to have an amazing modding API basically "for free".
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 Java, like Minecraft, the demo is C because I wanted to keep it as simple as possible.