317 pointsby ObviouslyFlamera day ago24 comments
  • malteeez18 hours ago
    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
    • bombcar16 hours ago
      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.
      • vintermann5 hours ago
        They've made it easy to fix things too. Just yesterday I ran into a bug in one of the mods they manage, I dreaded setting up deobfuscation and all the stuff necessary to get modding for an ancient forge version going, but nah - they've automated and standardized all that. It was just download, fix and build.
        • bombcar4 hours ago
          Standardizing so many ancient build processes into a modern gradle setup was a ton of effort over multiple years, but totally worth it.
    • LelouBil18 hours ago
      How many people working on Minecraft now were modders ?

      And how many current persons working on Minecraft are also Modders ?

      • somat7 hours ago
        The impressive part is how big modding is in minecraft despite Mojang never providing a mod interface, I don't know it may be different now but the general route for a long time was decompile the java byte code make your mod and recompile. There were a number of heroic teams that made mod interfaces out of this but a whole lot of nothing from the actual devs. I came off the quake modding scene and was a bit horrified by the whole situation, with quake they gave you the game code, map compilers and later the source to the engine.
      • DaiPlusPlus15 hours ago
        > how many current persons working on Minecraft are also Modders?

        Probably less than you'd think: lots of people recognise they need to leave their work behind at work and not get too emotionally invested in something they love, because at work they'll be exposed to the gut-wrenching business-decision sausage factory.

        • connicpu14 hours ago
          Some jobs are also just so much that there's little room for doing something so similar to your work after you get home.
      • RugnirViking9 hours ago
        > how many current persons working on Minecraft are also Modders ?

        Beyond small toy mods id be truly shocked if anyone really was able to muster the strength to go right back to working on product after a long day of working on product, especially in game dev. With it being such a passion driven industry already, too.

        • rbits8 hours ago
          As far as I'm aware Gnembon still works on Carpet Mod, which seems like a pretty complicated mod. And he still updates it for every single Minecraft snapshot.
    • 2001zhaozhao7 hours ago
      greg
      • vintermann4 hours ago
        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 get such a legacy.
  • bondolo6 hours ago
    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 Java, like Minecraft, the demo is C because I wanted to keep it as simple as possible.

    • myng1115 hours ago
      Out of curiosity, what was the reason you chose to do this rewrite? Was there some issue with GLFW?
  • shakna21 hours ago
    > Known Issues

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

    • TheDong18 hours ago
      > delay a snapshot

      The point of a snapshot is that it's a snapshot of current main, bugs and all, even release-blocking bugs.

      In my head, the order of stability expectations are (noting that minecraft doesn't do most of these levels, nor do most projects):

      1. Long-term support / extended support release

      2. Release

      3. Release candidate

      4. Beta

      5. Alpha

      6. Snapshot

      7. Just-merged master commit

      8. Unmerged pull request from a developer on the project

      9. Unmerged draft pull request from a developer on the project

      10. Unmerged pull request from a stranger

      11. .patch file for the source code hosted on pastebin and linked by a total stranger on a cryptocurrency related discord server

      12. GitHub's servers

      I would expect a fairly major bug to delay a release candidate or beta.

      I would expect an absolutely critical bug to prevent merge.

      I would not expect any bug which passes the CI tests and gets merged to delay a snapshot, since snapshots are just effectively a scheduled cronjob of "at this date, we cut a release of current main so people can play with it and give feedback if they want without having to figure out how to compile main themselves"

    • mort9620 hours ago
      Delay a release? Sure. But delay a snapshot? Why? By releasing the snapshot in this state, they learn both 1) how big of a problem those known issues are (how often does entering exclusive fullscreen crash the game on Windows? They presumably have telemetry for this), and 2) if there are other, as of yet unknown issues they need to fix before release. The earlier you learn these things, the better.

      There hasn't ever been a promise that snapshots are bug free; the expectation is rather the opposite.

      • repeekad19 hours ago
        Are snapshots explicitly a beta channel? Or do users get auto updates to them? Testing for bugs in prod shouldn’t be acceptable unless users expect bugs in exchange for getting latest features early in something like a beta channel
        • piperswe18 hours ago
          Snapshots are the weekly (at least they used to be, I think they're less frequent now) development snapshots - they are explicitly pre-beta versions that you have to opt in to.
        • creatonez16 hours ago
          They are explicitly a beta channel, and in fact if you create a world on a snapshot you don't have an upgrade path to future releases (unless you start hacking at your world files with an NBT editor). So most of the community ignores them and waits till release.
          • pfg_14 hours ago
            Snapshots do let you upgrade worlds to future releases and you don't need to do any NBT editing, just upgrade the game and load the world.
            • nkrisc12 hours ago
              Though there are of course no guarantees there won’t be problems with the world.
        • mort9619 hours ago
          They're previews of what they're working on and what they're going to add to the next version. You don't get auto updated to them, you have to select them in the launcher.

          As you would expect from the word "snapshot" contrasted up against the word "release", might I add.

        • nkrisc12 hours ago
          Minecraft snapshots are beta. A default installation of the Minecraft launcher will not download and install snapshots.

          You have to opt-in to it.

        • gopher_space15 hours ago
          they're not useful to users looking for the latest features. They're useful to mod developers who'd like to see how internal changes might affect their work. For example.
        • poly2it16 hours ago
          Snapshots are only for testing. They are sometimes not forwards-compatible.
    • functionmouse21 hours ago
      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.
      • theschmed20 hours ago
        Yes, and any game that is frequently streamed or otherwise recorded is wise to. Exclusive full screen doesn’t play well with others.
      • peesem20 hours ago
        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
        • Rohansi20 hours ago
          > i wonder why they haven't done the same on Windows

          Probably because a lot of people feel like they need exclusive fullscreen for best performance and/or latency. But in reality borderless fullscreen is exactly the same when games use the DXGI flip model. It bypasses DWM (the compositor) to render directly to the display when only the game is visible and seamlessly allows you to switch to other windows. You can even disable Vsync and it will allow screen tearing when bypassing DWM.

        • Grombobulous20 hours ago
          I consider this the fault of macOS. The way macOS handles full screen makes it a nonstarter as a gaming platform even if it had a huge gaming library.

          Still, I’ll admit that Minecraft full screen on Mac is even worse than almost all other games.

          • LoganDark18 hours ago
            I highly doubt that macOS fullscreen has that much higher latency than Windows fullscreen. The latency is so fine that I play Windows games over a capture card using OBS as the monitor. (The Mac has a 120Hz display though.)

            I like to play games like ARC Raiders using that setup. Works perfectly fine. Sure it sucks that I need Windows at all for it, but SteamOS isn't an option yet due to my 3090

            • Grombobulous16 hours ago
              I’m not talking about the latency, more of the interface surrounding it and the overall feel of it. It’s kind of hard to describe what I dislike about it.

              I’m not really a fan of the way it’s a three finger swipe sideways to leave and enter the full screen either.

              I’m pretty sure I have had at some point issues where putting my cursor at the top of the window erroneously shows the menu bar within certain types of games.

              Not sure if I’m remembering right, it’s been a while since I’ve tried playing games on Mac.

              • LoganDark12 hours ago
                What you're describing is Spaces which is macOS's multi-desktop system. I agree it's annoying to have to tolerate a glacial animation just to switch between apps when they happen to be fullscreen. It's not a deal-breaker for me, but it's definitely near the top of my list of annoying things about macOS. But fullscreen applications are on the same level as additional desktops, basically. My personal solution is just to get good at swiping quickly but there is also now an app that simulates the trackpad gesture well enough to get instant switching.

                The menu bar is supposed to appear with the cursor at the top of the screen. I have also encountered issues where it doesn't properly hide until you bring your cursor back in order to take the cursor away again and then it hides. It's a quirk but I sort of understand why it happens and it's just a small glitch to me.

                • Grombobulous12 hours ago
                  Perhaps I was playing an RTS or city builder game or something along those lines and experienced that problem with the menu bar, and maybe if that did happen the developer could have prevented it with a better port.
        • rafram19 hours ago
          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.
          • peesem17 hours ago
            it does still exist as far as i understand it. the resolution you select affects the size of the mouse cursor and then when switching away from the game you can see the rest of the system resizing back to normal
          • ezfe17 hours ago
            Regardless of how it worked, the game asking for it caused problems
          • peapicker11 hours ago
            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 rendering latency due to the Desktop Window Manager (DWM) compositor. The latter is 'doing it wrong' and has the lag people don't like.

            • mh-7 hours ago
              I didn't know that part about the bluetooth polling rate. That's clever.
    • flohofwoe19 hours ago
      Tbf, exclusive fullscreen is quite exotic nowadays (as opposed to rendering into a fullscreen window). Window managers will typically apply the same optimizations to a frontmost fullscreen window as was done in the past only for exclusive fullscreen.
    • rbits20 hours ago
      Well that's why it's a snapshot. It will probably be fixed in the next snapshot.
  • velcrovan20 hours ago
    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.
    • AkBKukU20 hours ago
      Minecraft comes in two flavors, Java and Bedrock. All of the mobile, console ports, and windows store versions are based on bedrock. Java is the one you download directly from the website. Bedrock isn't really about custom hosted servers, but there is a way.

      You can run a standard Java Minecraft server however you like, and then you can wrap it to also work with the Bedrock using Gyser[1] which will protocol translate it on the fly. It can require some workarounds on the more restrictive bedrock clients but it does work. That will let you setup and control the server from Java which has more options available.

      [1] https://geysermc.org/

      • yoz12 hours ago
        Apologies for hijacking an advice thread, but I'm another dad who's had to deal with this incompatibility nightmare, and I really really want to know what the hell happened within Microsoft & Mojang to end up with this mess.

        No, seriously, I'm fascinated by the story. It's been over ten years. I'm happy to assume that most of the people involved are smart and good with decent intentions. I also bet there were many kinds of commercial and organisational pressures, especially because it's (a) Microsoft and (b) one of the biggest gaming acquisitions ever.

        Does anyone here have any insider knowledge they could share?

        • km3r9 hours ago
          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, but there are some small differences around the edges. There exists modded server options for enabling bedrock and java users to connect to the same server.

          • echelon9 hours ago
            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.

            • kergonath2 minutes ago
              > It's absolutely crazy that a game so popular - let alone any game - was originally written in Java.

              It did not start being popular :)

              Seriously though, I think Java helped it get so much traction initially. Writing mods was tedious but not that difficult, and it was multi-platform for free. Nowadays I assume the vast majority are playing bedrock on consoles or PC, but at the beginning it was rather nerdy and being playable on Linux and Mac was nice for some tech-minded people.

            • veeti5 minutes ago
              I spent my first 12 hours glued to Minecraft back when it was a Java applet. Probably wouldn't have bothered to install...
            • PeterStuer3 hours ago
              Different era. At the time choosing the JVM and Java language for a multiplatform project that targetted a portable runtime was not controversial at all.
            • JBits8 hours ago
              At the time, Java ran on the web so he could easily share demos.

              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.

              • surround4 hours ago
                Minecraft gained popularity super fast in its early days, probably because it was a free-to-play game that worked in the browser (thanks to Java). Notch had no reputation or marketing at the time.
            • bennysaurus7 hours ago
              There were plenty of low level libraries available then, less in the way of frameworks. It was an environment that he was used to coding in and cross-platform (in the PC world anyway).

              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.

        • bl4ckneon12 hours ago
          No insider knowledge but as far as I know, bedrock is written C++ not Java. They did that for porting to other devices and consoles, as well as preformance. It also allows them to sell skins, server hosting, more micro transactions since it's more locked down. So I think it's just a thing that happened, and it has been going on for a while and if they did anything to either the Java edition or the bedrock edition then it would make a lot of people really mad.
        • somat11 hours ago
          Consoles hate having a jit vm so java is a non-starter for them.

          The real reason is you want to run your game on the latest greatest WiiStation(tm). if it is written in C/C++ you sit down with a copy of their development library and change your code to fit. If it is written in java you port the jvm to the device. And I don't really know how hard that is(having never ported the jvm) but most people sort of balk at that step.

          Microsoft thought it was easier/better to rewrite minecraft in C++ than port the jvm to the xbox. There was a big enough customer base attached to the original java version they did not want to discard it(backlash would be too huge and messy).

          • 0x3444ac5310 hours ago
            In Microsoft's defense at the time the java code base had a ton of technical debt and overtime they've essentially done a full rewrite of everything.

            That said, I'm convinced that 90% of the reason that the current mess exists is because Microsoft was convinced that most users would be migrating from Java to bedrock. And they probably would have (modding and other things aside), had the Microsoft team not decided to "fix" many aspects of redstone.

            Since then there's been the constant issue of parity between the two versions, which will likely never be achieved. And 90% of the time it's because the Microsoft developers working on bedrock edition decide they know better than mojang does, so they can implement a feature in a different way, or just implement a new feature entirely.

            Ugh it's a mess, and I've spent way too long thinking about it.

          • vintermann4 hours ago
            Unless I've got the product genealogy wrong, the rewrite predated Microsoft. The mobile version was also C++ based, and I think it is the distant ancestor to bedrock/windows/console editions.
        • LtdJorge10 hours ago
          Bedrock has much better performance so it was used for consoles, but there were already hundreds of thousands of mods for Java edition, thus the split.
          • 0x3444ac5310 hours ago
            Bedrock does have better performance but it is also hella buggy and unstable.
            • LtdJorge9 hours ago
              Yes it is. The lack of mods was already a dealbreaker for me, though.
      • tialaramex18 hours ago
        Geyser sounds very interesting especially if you know some or all players wouldn't be willing or perhaps able to play Java Minecraft and so they have to run Bedrock, but some would play Java and they'd enjoy being together.

        Java Minecraft is just a better toy, I'm not altogether sure it's a better game, depending on how you define game, but it's a better toy because it's so flexible. I assume Geyser can't magically donate much of that flexibility to a Bedrock client, but if the players can co-exist then that's a boon in itself.

        • augusto-moura17 hours ago
          Aside from being more flexible they are mostly the same game. The original excuse for bedrock was that Java was slow and a native game would render much better, it was also easier to put shaders in a a native codebase. But Java edition is pretty performant nowadays and computers also got much more stronger than the game became heavier
          • Philip-J-Fry16 hours ago
            As far as I can remember the origins of Bedrock are the original console releases which couldn't ship a JVM. So a whole new codebase was developed, and ultimately it was more performant as it had to run on 7th gen consoles.
            • ThatPlayer9 hours ago
              Console releases were done by a different studio originally, 4J Studios. Bedrock spawned from the mobile ports, and eventually replaced the console editions and had different features.
          • LtdJorge10 hours ago
            Java edition still horribly underperforms. It’s mostly single-threaded and even if they’ve rewritten the lighting engine a few times (those decade old black-block bugs disappeared), the Sodium family of mods show you how much it can be improved.
    • cogman1019 hours ago
      My main advice, ignore all advice online about JVM tuning minecraft. It's dated and often just wrong.

      The best thing you can do is run on the latest JVM, set your max memory as high as you can tolerate, and use ZGC. That's it.

      The JVM tuning guides for minecraft will have you switching and toggling every JVM flag under the sun with extremely dubious "evidence" of the payout for the flags they switch. In some cases, they will set contradictory flags. For example, setting eden size and target pause time. The fine tuning flags disable the heuristic flags like target pause time.

      KISS. ZGC has very low latency and the larger the heap you give it the less it'll slow things down (though, do keep it under 32gb. Object header compression works on heaps less than 32gb). And using the latest JVM reduces the memory needed and increases the performance in general of the JVM. Win-win.

      • Night_Thastus19 hours ago
        It did used to be required. Older Java versions performed pretty terrible. However, Java 17+ completely fixed that. Even the heaviest modded setups run buttery smooth, even on older versions which are not well optimized.
        • cogman1019 hours ago
          It really wasn't and was always dubious.

          A lot of the advice, for example, suggested using CMS. Which has been a terrible garbage collector almost since it was added to the JVM. When G1GC landed in 8, that was the correct GC to select for minecraft. Even the parallel collector would have been a better option than CMS in a lot of cases (sub 4gb heaps).

          It was placebo. People wanted there to be SOMETHING that made things better so they reached for the billion different flags on the JVM (rather than fixing the underlying code). I've seen the same sort of mentality professionally and it's basically always been wrong.

          • nananana95 hours ago
            > rather than fixing the underlying code

            There's not much you can do to fix the underlying code if the language doesn't allow you to declare a struct Vector3 { float x, y, z; } without heap-allocating it.

          • Quekid512 hours ago
            Yep, once people discover the multitude of JVM flags the cargo culting begins...

            It really applies to anything with a huge number of options, I remember similar things from back when I used Gentoo and the wild suggestions I'd get for what exact CC/C++ compiler options to use...

        • pjmlp18 hours ago
          It was more like Minecraft code was horrible, than anything else.

          Creating objects like crazy, range for in hot paths, not caring about data representation, chosen algorithms,....

          JIT and GC were already doing heroic efforts.

          Yet, it settled Notch for life, which is something to take into account in the usual question regarding which technical stack for games.

          • Night_Thastus12 hours ago
            Minecraft 1.7.10, covered in mods, can run fantastic (300+ FPS) if Java 25 is used. That used to be impossible.
            • vintermann4 hours ago
              Thanks to the Gregtech New Horizon folks.
          • hwyadenlaw18 hours ago
            For sure. The tech only needs to be good enough to support the game design. For some games that means very high optimisation is needed, and for others it's enough that the screen can refresh before the user gets tired of waiting.
          • 0x3444ac539 hours ago
            Yeah at the time it was bad. Now, it's a pretty nice codebase
      • Velocifyer16 hours ago
        Do not set the heap size to more than 8GiB, even if using heavy modpacks. Anything above 8GiB actually makes the game run worse, unless you have tons of players, because of GC lag.
        • cogman1016 hours ago
          It depends on the GC, with ZGC no. Particularly if you enable generational mode.

          For other GCs like G1 and the parallel collector, when new gen is filled up the GC pauses the application in order to run a minor collection. For G1, major collections are ran in the background until the heap fully fills up. When that happens, the GC triggers stop the world GC.

          A smaller heap size would cause those pauses to be more frequent but because the heap is smaller it means that ultimately the pauses will be limited in length.

          ZGC is different. Without generational mode, ZGC is collecting the entire heap every time with it, ZGC will do the young old collections.

          When a collection is triggered, ZGC flips a field to indicate a collection in progress, that flip is the only pause for the application under zgc (except the case that the heap fully fills) it typically finishes in microseconds. Once collection starts, the ZGC collector threads and the in progress application are running collections. The size of the heap really doesn't change much other than the background collection could last longer (slowing down the server, but not totally stopping it from being responsive).

          The payment you make with ZGC is that you do burn more CPU cycles doing collections especially while the app is running. But for a game server, that hardly matters. What matters is that the server remains responsive in a timely fashion, which ZGC enables.

          • acpdev13 hours ago
            I don’t believe this is exactly how g1 works.

            - It is divided into by default 2048 regions so it will be setting region size to 4mb means with an 8gb heap, and that you’ll get an inefficient collection once you have a 2mb+ object to deal with. So there is a value to setting a bigger heap size to get a bigger region size. The max is 32mb region size then after that iirc the region count bumps. https://docs.oracle.com/en/java/javase/17/gctuning/garbage-f...

            - The young gen size also something that resizes dynamically and so having a bigger max heap will let that get larger and avoid pressure and promotion of objects that would otherwise just never get promoted in the first place (stop the world to move from new to old gen). I’ve never seen this stated anywhere I can think of but believe that I’ve observed it many thousands times.

            - The reason that a Full GC occurs is because the application allocates too many objects that can't be reclaimed quickly enough, this isn’t just something that is always happening in the background , I would call full gcs a tuning problem, not everyone agrees in a given org fwiw, but I’ve been able to tune them out for nearly all workloads. https://docs.oracle.com/en/java/javase/17/gctuning/garbage-f...

            TLDR , as long as I have enough ram for the working set (page cache etc) I’ve had good luck cranking g1gc very high in prod and avoiding long collection times all together. You see other large deployments do similar (was big in the Cassandra space back in the day, Instagram off the top of my head was running very large heaps with g1gc before anyone else I knew of).

            • cogman1011 hours ago
              > I don’t believe this is exactly how g1 works.

              Everything you've posted is accurate but I also don't believe it contradicts what I said. I certainly simplified and I'm not suggesting G1 is a bad GC, it's one that we often use. I just think ZGC is better for the job of a game server.

              G1 is an excellent GC if your application can tolerate periodic 50ms latency spikes (most applications can). My argument is that specifically for a game server, ZGC is better. That's because game servers typically have more than enough CPU horse power and added latency is detrimental to the experience. So trading off more CPU usage due to GC is a worthy tradeoff vs the added latency spikes.

        • preg_match16 hours ago
          8 GB is simply not enough for most modpacks, at least the 200+ mods one. I know, I've tried, although it was years ago. You run at consistently 95% GC usage and get constant, very heavy, collections because of it. Like every second you get lag spikes due to GC pressure. And because of the usage these look to be full collections, which are stop-the-world last I checked.

          This was ~5 years ago, so I'm sure it's gotten better. But not that much better 8gb would cut it, either client or server side.

        • int0x2916 hours ago
          I would generally not call modpack that runs well on 8gb heavy
      • int0x2917 hours ago
        Set JVM heap to half available memory. Mincraft is very much the kind of appication that benifits from filesystem cache to help with loading chunks.

        Also if for some reason you are setting the heap size high avoid going past 32 gb unless you tune object alignment. Allocating between 32 and 47 gb will result in an effectively smaller heap. Allocating more than 32 gb can result in performance penalties.

        • inigyou17 hours ago
          Wow. When I played Minecraft, 1GB was enough and 4GB was a lot. I know that since 1.8 Microsoft rewrote large parts of the engine to make them less efficient and more ivory-tower, but I didn't know it was that bad.
          • atomicnumber317 hours ago
            We're talking for servers, which almost always means modded (even if only server side mods like the bukkit family). Pretty common for servers with more than a dozen people to be running heaps in the 8-16GB range. And one reason for the "large" size is that they can often run with a lot less but when memory isn't that constricted you can tune for smaller GC pause times
          • int0x2916 hours ago
            This was more a hasty response with modding in mind to the parent comment of "set it as high as you are comfortable with." There are limits to how high you should go. If you are running vanilla you may not need to set the heap to 50%. Anything past 50% or 32 gb isn't a great idea generally.
          • mudkipdev16 hours ago
            FWIW I still run a server for 5 people with 2GB ram and the performance is fine.
    • Velocifyer19 hours ago
      Go to https://minecraft.wiki/w/Tutorial:Setting_up_a_Java_Edition_... for how to create a vanilla server for Minecraft Java edition (which is the best version, but is only on Windows and MacOS and Linux, unlike the significantly inferrior bedrock edition, which is way buggier but is avalible elsewhere).

      If you need more performance, install [fabric](https://fabricmc.net/) and then install [lithium](https://modrinth.com/mod/lithium), but do not use mods like paper or spigot or purpur as they will mess up farms.

      • pjmlp18 hours ago
        And less capable as one is limited by the official extension points, instead of the anything goes with bytecode manipulation.
        • Velocifyer16 hours ago
          I assume you mean bedrock edition, but you did not specify.
          • pjmlp16 hours ago
            Yes, the inferior edition.
    • VCFundedGenYer20 hours ago
      The edition of Minecraft on phones/tablets/etc is more locked down and limited than Java, so unfortunately your options might be somewhat limited (though not impossible).

      I have run a Docker Minecraft Server (itzg/docker-minecraft-server) for years and it's been rock solid. Best part is not having to install a lot of dependencies, the image just does it all. I think they also have a Bedrock Edition server but I never got it working right (see above).

      You'd need everyone to run the Java Edition on Windows/Mac/Linux systems if you want to do it with the least amount of pain. Otherwise, people are just paying for "Realms" which are hosted servers.

      • hnlmorg17 hours ago
        Bedrock has always worked fine for me. That’s how I’ve self hosed for my kids.
    • hjkl019 hours ago
      Most comments here ignored the kids’ preference to play on the iPad. With that in mind, you may want to check out the Realms offering. I believe you get a 10 user server for ~$7. Note that is also highly fragmented, and there are different realms subscriptions for Java and Bedrock and also different tiers.

      Depends on what your goals are with the family server, Realms may not be a good fit at all. But in terms of getting kids playing together simply and quickly, it’s the easiest way to go.

      As a side note, I know kids who switched to Java after years of insisting only on Bedrock and sorely regretted not making the move much sooner. This is part of growing up these days.

    • abstractbill19 hours ago
      I've been admining our family minecraft servers for about 5 years, and just handed off that job to my 12 year old daughter who now knows more than enough of the linux command-line to do it. I thoroughly recommend it, it's been great!

      There are many ways to get it done. What worked best for us was choosing java over bedrock, renting a cheap linux vps, and writing some very simple shell scripts for starting, stopping, changing worlds, etc. Happy to talk you through anything you get stuck on!

    • munchbunny17 hours ago
      If it’s a problem you’re willing to solve with money and don’t want any special stuff like mods, you can pay for a server with Realms and then you don’t need to think too hard about it.

      But the canonical way to do it that is both free and infinitely customizable is to host your own server. It’s pretty straightforward to do these days. However, before you do, I would suggest playing the game a bit to understand what the settings are/mean. You and your kids could play together a bit on a Realms server or a community/public server to get a feel for what you want in a custom server.

    • stpedgwdgfhgddan hour ago
      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.
    • TrueSlacker018 hours ago
      I recently did this so the kids and their friends could all play together. I ended up running the paper minecraft server on one of our home linux computers. It runs the java version but this is ok as there is a mod for bedrock to connect to java. I set it up so that the service starts every time the computer boots up so they dont have to run anything to start it. Then once you have it running and open the appropriate ports on your router, technically anyone with a valid java version can connect. But now its time to install 3 mods. geyser, floodgate and via version so its easier for everyone to connect from bedrock on tablets and on versions that are too high while your server is a version behind. As of writing this paper server is still stable on 26.1 not yet to 26.2.

      [0] https://modrinth.com has a bunch of mods the kids have enjoyed as well.

    • cogogo20 hours ago
      I just run the server off of the fastest laptop and one of them also uses that machine to play and lock it all down with tailscale. Honestly probably not worth the effort when the java edition allows them to play together over the wifi network out of the box. Have not found a solution I like to open up to other kids at school.
    • echoangle20 hours ago
      If you want to selfhost and use docker for Java edition, this is the easiest way:

      https://github.com/itzg/docker-minecraft-server

      There’s also a version for bedrock (the version that’s supported on mobile devices).

    • Guvante16 hours ago
      Minecraft realms aren't as powerful as a server but if you are doing Bedrock to support iPads then it is certainly the easiest way to do it.
    • harrigan20 hours ago
      Minecraft servers are resource hogs even when idle. Enable the built-in idle server shutdown (IDLE_SERVER=true). It automatically stops the server after a few minutes with no players and starts it again when needed. It's not enabled by default.
    • pridkett17 hours ago
      GeyserMC will be your friend if using Bedrock and Java.

      But the big thing is that community is a little all over the place. I use ChatGPT to walk me through everything to securely set up a couple of servers. Kids love it.

      Most chatbots will be smart and recommend things you need for permissions, rollback, backups, and most importantly, whitelisting. For giggles I left an unprotected Minecraft server up on the default port of my residential IP and the thing was griefed to heck within days. The griefers were just griefing other griefers.

    • willis93614 hours ago
      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.
    • maccam91219 hours ago
      I've been on this journey! I am definitely not doing it the easiest way, but I've got it deployed on Kubernetes with https://github.com/itzg/minecraft-server-charts and then use prism launcher on my kids computers to get the versions to match up and stuff. I also use automodpack so I can install some quality of life mods on the server and they'll just sync to the clients.
    • madduci20 hours ago
      I run the itzg Docker Image behind a Wireguard VPN, all hosted on an embedded board (a armbian powered Radxa 12L with 16 GB Ram).

      So far so good, we have an offline server, so even if the Microsoft Server is down, we can play (we use PolyMC on PC with offline accounts as well, for the same reason). By default, new users are in "spectator" mode, so they can't do anything without an activation from admin.

      Friends get Wireguard QR codes, periodically we rotate them.

    • himata411320 hours ago
      https://pufferfish.host/ they have the most powerful and easy to use panel.
    • AussieWog9319 hours ago
      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 connection.

      • skipkey19 hours ago
        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.
    • kelvinjps1018 hours ago
      You can actually host a server for bedrock https://www.minecraft.net/en-us/download/server/bedrock The version that mobile and console uses and that in PC you can choose
    • lizimo18 hours ago
      I'm surprised no one mentioned https://github.com/pumpkin-mc/pumpkin in this thread. It's the fastest Minecraft server implementation and it's written in Rust.
    • terribleperson17 hours ago
      If you decide to do mods, you can make your life much, much easier by using a launcher. I use Prism, but I haven't looked for anything new in the last few years so it's possible there are better options now.

      Also, find a world backup solution and use it.

    • JamesSwift16 hours ago
      The server is simple, theres plenty of docker examples online. Cross play between bedrock and java edition, and connecting to custom servers on eg switch is the harder part. And using linux as a client is more advanced.
    • 17 hours ago
      undefined
    • nkrisc19 hours ago
      I run a docker image with the Java server and GeyserMC to allow Bedrock clients to connect to it so my son can play from my iPad while I use my computer.

      If they’re playing from MacOS/Windows then the GeyserMC layer isn’t necessary as they can run the Java client.

    • hedgehog18 hours ago
      Luanti with Mineclonia plug-in works well if you are willing to move entirely to Mac/Windows/Linux clients. The whole stack is open source so it's easier to make changes etc if you want. No hacky binary patching of Java bytecode. Originally I was going to try Minecraft proper first since I'd already paid for that, but Microsoft doesn't honor old licenses and in the end the Luanti path probably works better.

      https://content.luanti.org/packages/ryvnf/mineclonia/

    • kitd17 hours ago
      I tried running my own but it turned out to be more complex than I was expecting (and desiring). I ended up paying a bit for a hosted server at ShockByte.
    • hnlmorg17 hours ago
      Just run the either the Java or bedrock server as a docker container. There’s good community-maintained containers out there.
    • burner5482818218 hours ago
      I had Claude code do this for me last night. Setup the whole thing in about 10 minutes with directions on connecting
    • sebmaynard18 hours ago
      I ran geyser with paper for years.. now I pay for 2 realms, and it's so much easier for them and their friends
    • mikepurvis17 hours ago
      I run the crafty controller Docker container on my unraid machine and it's easy and pretty hands off.
    • poly2it20 hours ago
      Are all of your family playing on Bedrock edition? There is a version split between console editions (plus some Windows users) and the original Java edition, with most of the (verbal?) online community playing on the latter.

      If you are not all playing on the same edition, you can use something called GeyserMC (https://geysermc.org/) to allow Bedrock players to join your Java server.

      Modding your server can greatly improve your server performance. Java is the platform with the best modding support. The modding APIs are however community built, due to historical and upsteram reasons. The subjectively best API for development (in my opinion) is Fabric (https://fabricmc.net/), but many older mods have only targetted Forge. Due to a split in the Forge development team, this API was recently superceded by NeoForge (https://neoforged.net/). Most relevant mods support both Fabric and NeoForge.

      To explore mods, I would recommend using Modrinth. It has a pleasant and powerful interface, and links to source code on open source mods.

      https://modrinth.com/

      Here is a search filter for an overview of server-side optimisation mods:

      https://modrinth.com/discover/mods?g=categories:fabric&l=ope...

      To set up your Minecraft server, I would recommend NixOS (https://nixos.org) for devops with nix-minecraft for server configuration:

      https://github.com/Infinidoge/nix-minecraft

      Feel free to ask clarifying questions if you have any, I might have written this somewhat compactly!

    • spicyusername18 hours ago
      Just buy a Realm subscription from Mojang.

      I ran a private server for my kids for a while and it was a huge headache. Bedrock is purposely made to not make it easy to DIY. It was difficult for their friends to join, everyone was mad when it was down when they wanted to play, and I had to take great care to not lose their progress.

      Paying for a Realm doesn't scratch that DIY itch, but your kids will actually get to enjoy playing, which is really the point, isn't it?

      Alternately, run a Java server and use the Java-to-Bedrock plugin / proxy / adapter.

    • bombcar16 hours ago
      No joke serious - play GTNH. You can turn off the mobs if needed and the quest book is phenomenal and the feeling of accomplishment is real.

      And you can stay in steam forever if you wanted.

    • icase18 hours ago
      i did this and it’s so worth it.

      just get everyone on java. i play on my framework laptop, my wife on her mac and my son on a steam deck.

    • BoingBoomTschak13 hours ago
      Minetest?
    • preisschild19 hours ago
      itzg has OCI container images and kubernetes helm charts

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

    • speed_spread20 hours ago
      I used a Docker image. Good enough as is for LAN usage. I assume it could be exposed online with a Cloudflare tunnel but I wouldnt trust it to not be hacked. Docker may also make it harder to customize (install mods).
    • MagicMoonlight14 hours ago
      [dead]
  • hiccuphippo18 hours ago
    Icculus has some great videos of porting games from SDL2 to 3, here's the one porting Doom: https://www.youtube.com/watch?v=ixdeGhsoxy8
  • LelouBil19 hours ago
    It's really amazing how much Minecraft is becoming more and more a game engine on it's own rather than just a game.
    • p0w3n3d3 hours ago
      Unless some dapper people won't screw all the things up...
    • toxik18 hours ago
      • NelsonMinar12 hours ago
        One of my favorite easter eggs in Nethack was the way a Mailer Daemon would arrive in-game and deliver a scroll when you received an email on the host Unix system. Which then became a game exploit because there were some obscure in-game uses for the scroll items.
      • gavmor17 hours ago
        I'm sure it already can with the right mod/plugin.
        • reilly300015 hours ago
          I’m delighted to get to introduce you to ComputerCraft: Tweaked (modern fork).

          https://tweaked.cc/

          Email client and server in Lua

          https://github.com/GabrielleAkers/cc-email

          The whole project is a great way to get started with understanding computers, programming, and networking in an environment that appeals to the iPad generation- one that knows less about technology than its predecessors. It’s about making computers useful towards your economic and military interests with automation. You build equipment from scratch and connect it any way you please.

          For this email approach:

          > get 3 advanced computers and 3 ender modems then follow the instructions in the readme in the repo

          > the first two computer/modems are for the auth server and email server then the third is to actually use the email client to send emails. i guess it's 2+X where X is the number of computers you want to send/receive emails on

          https://www.reddit.com/r/ComputerCraft/comments/1lsl070/comm...

          • LoganDark12 hours ago
            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.
            • fishgoesblub11 hours ago
              OpenComputers II is even crazier as it uses a RISC-V emulator to run a real Linux image.
  • mort9620 hours ago
    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
    • creatonez15 hours ago
      Not sure, but they were able to get Wayland support working out of the box in this update. Previously it required workarounds, and even with workarounds, new issues would pop up in a game of whack-a-mole, and nobody really cared because running MC in XWayland was good enough for most people. Whereas SDL3 has very solid Wayland support out of the box. Minecraft only really uses GLFW to create the window, set the taskbar icon, go into fullscreen mode, and accept input, with everything else being handled by raw OpenGL, so this was an easy switchover. Now that Minecraft supports Vulkan, it's able to use a fully modern stack on Linux desktops / Steam Decks.
      • mort9615 hours ago
        GLFW 3.4 has always just worked under Wayland for me. What has been the issue for Minecraft?
    • akazantsev18 hours ago
      > I'm always wondering whether or not SDL would be better

      SDL supports mobile; GLFW doesn't. Maybe they're unifying codebases between the platforms.

      Edit: BTW SDL3 still works even on Android 4.2. I made an app using it and ImGui, without any Java.

      • mort9618 hours ago
        Your suspicion is that they're going to discontinue Bedrock and replace the iOS and Android versions with Java? Even though iOS doesn't even allow Java with JIT?
        • akazantsev18 hours ago
          Dunno. Apple makes exceptions for big companies and might do so for something as big as Minecraft. Also, SDL3 supports far more platforms https://wiki.libsdl.org/SDL3/README-platforms Now they can release a Java edition even for PlayStation and Xbox. At least porting to SDL3 opens the door to consoles and mobiles if they want to do so.
          • HenryMulligan16 hours ago
            If both sides are willing to do that, why didn't they do that the first time instead of creating Minecraft PE?
            • small_scombrus2 hours ago
              PE was created in a time where phones were VERY unimpressive when it came to compute
        • papercrane16 hours ago
          It's possible they could AOT compile for iOS, but I think the idea they are unifying to be unlikely.
      • Iron_Ninja512 hours ago
        Highly doubt it. The current mobile version (Minecraft bedrock) is the version that Microsoft wants everyone to use. Java edition only sticks around because they know it's the version most of the community wants.
    • 18 hours ago
      undefined
    • LoganDark18 hours ago
      For one, input method editor support.
    • dismalaf20 hours ago
      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.
      • mort9620 hours ago
        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?
        • dismalaf19 hours ago
          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).
          • mort9619 hours ago
            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.

            • dismalaf19 hours ago
              Well the article doesn't state why so all anyone has is speculation.

              Here's a bunch of GLFW questions on Microsoft's website, quite a few are Minecraft related errors: https://learn.microsoft.com/en-us/search/?terms=glfw&categor...

              Also do a search for GLFW here: https://bugs.mojang.com/browse/MC

              • mort9619 hours ago
                In case you missed it, the question was:

                > Is the rationale for switching away from GLFW documented anywhere?

                "Not that I know" is a perfectly good answer. Don't spew ChatGPT slop at me.

                • dismalaf18 hours ago
                  You're pleasant.

                  Should I have just said no, RTFA? Which clearly doesn't state why. That better? Or say you can search yourself?

                  As for ChatGPT slop, I've never used that particular LLM, but some are good for bypassing ads/SEO slop while searching the internet.

                  • mort9618 hours ago
                    I did read the article. As you say, it doesn't state why. That's why I asked if they had written about it elsewhere.

                    You don't have to answer questions you don't know the answer to. Answering with incorrect LLM slop is bad form.

                    • dismalaf16 hours ago
                      So am I wrong? I pulled up pages of various people reporting GLFW bugs in Minecraft Java edition.
                      • LtdJorge10 hours ago
                        Yes, you are. Because those are not actual stated reasons from the developer.
                  • nvme0n1p118 hours ago
                    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.
                    • dismalaf18 hours ago
                      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.

                      • jamilton16 hours ago
                        It’s entirely possible that Mojang has a blog somewhere with more detail, or maybe a dev tweeted something, that would be the type of useful info that could exist that someone more familiar with Mojang might know.
    • groundzeros201520 hours ago
      You could make an entire 2D game using the SDL API without OpenGL/vulkan.
      • creatonez16 hours ago
        Minecraft essentially only uses GLFW (and now SDL3) to create the window and accept input. The game itself is essentially coded in raw OpenGL (and now vulkan).
      • mort9620 hours ago
        Are they going to do that? If not, that's not the reason they're doing this either
  • nekiwo21 hours ago
    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.

    • jchw20 hours ago
      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 was, however, somewhat surprised to learn Ubuntu 24.04 didn't even ship SDL3 to begin with. Turns out SDL3 is newer than I remember. This is likely part of the explanation why SDL3 adoption is lower than expected.

      • chiffaa15 hours ago
        The compatibility layer mention is valid for many projects, and I personally greatly appreciate that it exists, even if it's a bit buggy

        osu! however, is only officially distributed on Linux via AppImage (and semi-officially via Flatpak) and bundles its own SDL for the reasons that, to my knowledge, range from the general pinning to a known stable version approach to the team backporting functionality from SDL3 to SDL2 (last one I remember is non-text-based clipboard functionality, not entirely sure though)

      • mort9620 hours ago
        Don't most games ship their own build of SDL?
        • jchw19 hours ago
          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.

      • BearOso19 hours ago
        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.

        • jchw19 hours ago
          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".

    • chiffaa20 hours ago
      osu! has spent a lot of time trying to switch from SDL2 to SDL3, but due to their high platform coverage (all three major desktop OSes + iOS and Android) and an attempt to keep all functionality native (so properly working Wayland supporr, along with other things) delayed the switch by around 2 years total. For the first time, the current switch seems actually final
    • pjmlp18 hours ago
      SDL3 changed several APIs, which doesn't help, especially if using it from binding libraries.
  • hizyyo12 hours ago
    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.
    • spacechild18 hours ago
      They actually switched from GLFW. In that case you would naturally pick SDL3 and not SDL2.
  • LelouBil13 hours ago
    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".

  • delduca20 hours ago
    SDL always had a great API design, but in SDL3... Goddamnn!
    • joss8217 hours ago
      In a good way or a bad way?
  • 20 hours ago
    undefined
  • philipallstar15 hours ago
    > Entering Exclusive fullscreen mode crashes the game on Wayland

    Pretty good for Wayland.

  • q2dg17 hours ago
    Luanti is the answer
  • yonisto18 hours ago
    I'm teaching my son python programming.

    Anyone with experience on programming Minecraft with python? Tips?

  • andrewshadura19 hours ago
    > Armadillos no longer try to roll up when submerged in liquids

    This sounds hilarious out of the context :D

  • kyo5uke17 hours ago
    [flagged]
  • quotelyapp19 hours ago
    [dead]
  • tempaccountabgd16 hours ago
    [dead]
  • metalbirds19 hours ago
    [flagged]
  • maxlin13 hours ago
    With the regressions this reads like an april fools post...
  • nottorp19 hours ago
    I honestly went and read those release notes just to check if they're using this transition as an excuse to make the game less cross platform.
    • frollogaston9 hours ago
      Or once again change the login system in some way that locks tons of people out
  • neals17 hours ago
    They still update that? I thought it's all bedrock now?
    • correct_horse16 hours ago
      All of my gamer friends exclusively play Java edition and so do I. Also minecraft's most active speedrun category (any % glitchless, random seed) uses version 1.16.1 on Java edition. The biggest server of minecraft youtubers, hermitcraft, runs on java edition. I suspect some younger gamers whose parents bought the first copy for them on the microsoft store play bedrock?
    • rbits8 hours ago
      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.
    • HelloUsername15 hours ago
      > I thought it's all bedrock now?

      What gave you that idea?

      • frollogaston9 hours ago
        Cause all the other platforms use Bedrock, and Windows can also run it, and it has some special features that would give the impression that it's the first class version. But they do still update the Java one first, which is nice.
  • revengerwizard21 hours ago
    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.
    • rbits20 hours ago
      This fixed a lot of bugs related to input. If you scroll down to the bottom of the page you can see all the bug fixes from this snapshot, there are a lot related to input.
    • superdisk21 hours ago
      You can compile in only the used stuff with various build flags, not sure if they did that though. I've done that before to make a pared down SDL that only does audio playback.
    • nottorp20 hours ago
      > SDL3 has a whole software renderer

      Does this mean SDL3 has a built in 3d renderer or it's the modern meaning where anything is a serverless renderer or something like that?

      • mort9619 hours ago
        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 counts as a 3D renderer I guess. Though of course the GPU is doing the heavy lifting; SDL is just exposing a little bit more of the GPU's functionality. It's quite useful for some 2D applications as well. I remember reading about how it could enable more efficient drawing of 2D plots or cleaner ImGUI integration, though I don't remember details.

        • kbolino18 hours ago
          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

          • MindSpunk6 hours ago
            If you want to get pedantic the hardware rasterizer in your GPU doesn't rasterize "3D triangles" either. Any notion of '3D' comes from how you project your vertices when transforming them through your coordinate spaces. Though the perspective divide needed to make perspective projection work is baked in, but otherwise NDC is a 2D space. Z only exists for the depth buffer/depth test and perspective correct interpolation. The "shape" of the triangle on screen isn't affected by it.

            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.

          • mort9618 hours ago
            Oh, I stand corrected. Thanks!