Live data from Hacker News

Minecraft: Java Edition now uses SDL3

minecraft.net

221–230 of 285 posts

Re: Minecraft: Java Edition now uses SDL3

#221

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. https://github.com/bondolo/SDL3-Fullscreen-Demo The game is Jav…

That name is a blast from the past! I remember Tribal Trouble's devs mentioning they chose Java because they wanted to use "weird/unusual" languages for gamedev :-P

Re: Minecraft: Java Edition now uses SDL3

#222
post #181

Earlier 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.

Even at the time Java had some great tools and IDEs (NetBeans, Eclipse) and both computers and the JVM were fast enough for any performance issues compared to fine tuned C++ to not matter much, especially for a game like Minecraft that didn't (at the time anyway) push the CPU much.

Java allowed Minecraft to run pretty much everywhere, including as an applet (very important in its early time) and it relied (and still relies) on LWJGL which provides access to the most common stuff you'd need to make a game (OpenGL, windowing, input events, etc) - and at the time it also worked for applets too (you needed to download the LWJGL applet code but it was signed by the devs so you didn't get too many scary messages).

I used the same tech (Java+LWJGL) at the time to make a few simple demos/games and it was quite easy to make stuff - e.g. i made this[0] in a few hours using Java, LWJGL and Eclipse on the iMac i had at the time.

[0] https://www.youtube.com/watch?v=xXn8VhH6GFs

Re: Minecraft: Java Edition now uses SDL3

#224

Earlier quoted context omitted.

greg

I remember Greg was actually a pretty controversial modder back in the 1.5 - 1.7 days. Many people did NOT care for the Factorio-like direction he took IC2 in (before Factorio was a thing! Apparently they cited IC2 as an inspiration), and at least once I think he accidentally inflicted that gameplay on modpacks which didn't expect it, removing metal block recipes as I recall. But it's very cool that his mod should ge…

He was just ahead of its time in terms of grind and realism. I remember one of the first times gregtech was introduced to the mainstream was with the Mindcrack FTB modpack, most people hated it because they were used to being able to unlock ore doubling (with the ic2 macerator) within the first 20 minutes of a new world. He increased the difficulty by making the recipe need diamond cutting heads instead of a ton of iron. As you said he did this by modifying another mod's recipe (in this example ic2) which was frowned upon at the time.

In a sense, he created expert mode modpacks before they were a thing, where it is common and expected to modify recipes from multiple mods to make a more interconnected recipe chain.

Re: Minecraft: Java Edition now uses SDL3

#225
post #181

Earlier 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.

I remember some early posts from him about how he really liked how the debug mode made the iteration loop very short. Here's a video of him doing exactly this - it does look like a very pleasant development environment even now

https://www.youtube.com/watch?v=BES9EKK4Aw4

Re: Minecraft: Java Edition now uses SDL3

#226

Earlier quoted context omitted.

Oh hey, I did a lot of ComputerCraft back in the day. Don't forget OpenComputers, which was much different flavor of challenge but also quite interesting.

OpenComputers II is even crazier as it uses a RISC-V emulator to run a real Linux image.

Wow, I'd never heard of that, that sounds awesome!

Re: Minecraft: Java Edition now uses SDL3

#227

Earlier quoted context omitted.

If he wanted AI slop, I'm sure he's capable of asking an AI himself. He asked a forum full of people because he wants a real answer from a knowledgeable person. If you didn't have anything to contribute, you could have just left it for someone else to reply.

Well, I've used both GLFW and SDL and can say SDL is more robust, covers more edge cases, etc... And he specified he only wanted an answer from someone in the know, so probably no one here anyway. Also it's weird complaining about slop when HN is 99% slop, and has been for a long time. It was only interesting from 2008-2016 or so.

Ok so why are you still here?

Re: Minecraft: Java Edition now uses SDL3

#228

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. https://github.com/bondolo/SDL3-Fullscreen-Demo The game is Jav…

That name is a blast from the past! I remember Tribal Trouble's devs mentioning they chose Java because they wanted to use "weird/unusual" languages for gamedev :-P

Indeed! And the content updates were done using a built-in subversion client! Quite innovative.

Re: Minecraft: Java Edition now uses SDL3

#229

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.

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!

Re: Minecraft: Java Edition now uses SDL3

#230
post #48

Earlier 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…

Game mode also breaks background audio playback through Bluetooth. And it's hard to turn off with no global setting. I hate it.
Post reply on HN