_______               __                   _______
       |   |   |.---.-..----.|  |--..-----..----. |    |  |.-----..--.--.--..-----.
       |       ||  _  ||  __||    < |  -__||   _| |       ||  -__||  |  |  ||__ --|
       |___|___||___._||____||__|__||_____||__|   |__|____||_____||________||_____|
                                                             on Gopher (inofficial)
   URI Visit Hacker News on the Web
       
       
       COMMENT PAGE FOR:
   URI   Minecraft removing obfuscation in Java Edition
       
       
        nullfield wrote 2 hours 48 min ago:
        One and only account (Mojang) that I can think of that I lost because
        it got taken over, and I couldn’t get support to help fix it
        (something about “go make another Mojang account”?)… and since I
        don’t really get the migration process they did or final outcome,
        it’s more of a “oh well losing that sucks”.
       
        Alex4386 wrote 4 hours 40 min ago:
        "Minecraft: Java Edition" has been obfuscated since the release. <
        Classic Microsoft move.
        
        No, It was obfuscated since around 1.8 when you (Microsoft) buy up
        Mojang Studios. before that? meh, It wasn't. That's the main reason why
        JE has broader mod ecosystem from the start., result being 1.7.2 being
        the one of the most active modded versions since most of them can't get
        passed to around 1.8.
        
        The motive behind this is probably due to them finding out people can
        not get their mods/server software updated in-time (due to extra work
        required) and this leading people being really reluctant to update
        their versions.
       
          creatonez wrote 26 min ago:
          > No, It was obfuscated since around 1.8 when you (Microsoft) buy up
          Mojang Studios. before that? meh, It wasn't.
          
          Huh? This is not true. The very first version released in 2009 was
          obfuscated with ProGuard, the same obfuscator used today.
          
          The reason Minecraft 1.7 was a popular version for modding was
          because Forge was taking too long to come out, and the block model
          system was changed in a fundamental way in the next update. Has
          nothing to do with obfuscation.
          
          > The motive behind this is probably due to them finding out people
          can not get their mods/server software updated in-time (due to extra
          work required) and this leading people being really reluctant to
          update their versions.
          
          Not really accurate. The Minecraft modding ecosystem has more agility
          right now than it ever had in the past. In the past 3 years, people
          have actually started updating their game & targeting the latest
          version. Minecraft 1.21.1 has the highest number of mods in the
          history of the game.
       
          pta2002 wrote 42 min ago:
          I learned to code by modding Minecraft, starting at ~1.6 a few years
          before the Microsoft acquisition.
          
          It was definitely already obfuscated by then, the Microsoft
          acquisition had nothing to do with it.
          
          If anything, looking back all the years, Microsoft has largely
          delivered on the promise to not fuck up the game and its community.
          They’ve mostly kept their hands off it, besides the Microsoft
          account stuff (which makes sense why they did it, but a lot of people
          are still understandably annoyed). Hell, they’ve kept up two
          separate codebases in fairly close feature parity for _years_. I
          doubt they’d have kept JE if there weren’t people in that team
          who genuinely cared.
       
          xboxnolifes wrote 1 hour 10 min ago:
          Minecraft has been obfuscate since the start. Even 1.7 is still
          obfuscated.
       
        nxobject wrote 6 hours 27 min ago:
        I got my start coding by modding Minecraft - I added a quest system;
        one day I wanted to add dialogue trees and slowly turn it into a RPG. I
        hope future generations will always have this wonderful opportunity,
        this low barrier to entry opportunity to do substantial
        personal-passion mods.
       
        SurceBeats wrote 7 hours 39 min ago:
        These are definitely good news!!!
       
        time4tea wrote 8 hours 1 min ago:
        Proguard obfuscation, particularly when you get to aggressive renaming
        (there are a lot of valid characters for a java class or method),
        flattening, overloading and inlining, can make it very hard to
        understand what is actually happening.
        
        Its great to make this step.
       
          kachapopopow wrote 4 hours 50 min ago:
          minecraft had none of these, it only had clean and predictable name
          obfuscation.
       
        charcircuit wrote 10 hours 51 min ago:
        I would rather see allowing creators to monetize their Java edition
        mods again, and to get rid of their restrictive rules on mods. The old
        version of the EULA actually gave people a lot of freedom, but then
        they changed the rules on everyone and locked it down. Obfuscation is
        not a true problem compared to those.
       
        ReFruity wrote 11 hours 16 min ago:
        One of my favorite mods ever across any game is Create for Minecraft.
        It is well-made and polished, and sparked a whole ecosystem of mods
        that work with it. I wonder what possibilities the de-obfuscation can
        bring to that ecosystem.
       
        huhtenberg wrote 11 hours 32 min ago:
        Ha, this explains then why MSFT dropped 4% after hours!
       
          ilsubyeega wrote 8 hours 16 min ago:
          might be another issue: the azure outage
       
        James_K wrote 11 hours 46 min ago:
        I wonder what Minecraft sales are like these days. I'd imagine most of
        the people who are going to buy it already have. Makes me wonder if
        they'll ever open the whole thing up.
       
          smlacy wrote 9 hours 35 min ago:
          Just think of the untapped market of fresh 9 year olds who've never
          seen/played the game before.  It's infinite, there will always be
          more people who have never played Minecraft.
       
            James_K wrote 6 hours 2 min ago:
            They're playing Roblox and Fortnite these days, both free of
            course.
       
        bityard wrote 11 hours 54 min ago:
        Asking from a place of sincere ignorance: TFA says the code was
        obfuscated from the beginning, and that they deliberately kept it
        obfuscated all these years, and acknowleded the huge community that
        built mods for Minecraft in spite of it. But what TFA doesn't say:
        
        Why did they keep it obfuscated for so long even after it became
        readily apparent that almost everyone buys Minecraft to (eventually)
        play the mods?
        
        Why did they keep it obfuscated even though they acknowledged it didn't
        really stop modders (or anyone else) from understanding the program?
        
        What occurred recently that caused them to change their mind?
       
          unleaded wrote 8 hours 14 min ago:
          "It does have some technical benefits for us, but it is a symbol that
          this game is not open source. You still can't publish the maps or the
          code decompiled, even using the maps."
          
   URI    [1]: https://twitter.com/Dinnerbone/status/1169242801508376582
       
        LelouBil wrote 12 hours 23 min ago:
        Maybe they'll publish javadoc jars down the line !
       
        txrx0000 wrote 12 hours 29 min ago:
        This is surprising. Perhaps the Minecraft devs and community are
        dedicated and capable enough to prevent it from being enshittified by
        Microsoft. It might even be open-sourced someday.
       
        RGBCube wrote 12 hours 29 min ago:
        Even if they made it Source Available it wouldn't hurt them much,
        because Minecraft is very easy to pirate and the reason anyone pays for
        anything at all is because you need an account in Mojang's
        authentication servers (which people do not want to move off of for
        various reasons).
        
        Hell, they could even make it Open Source with a clause preventing
        other companies from using to code to make a profit. It's too big to
        fail.
       
          TheDong wrote 10 hours 46 min ago:
          > Hell, they could even make it Open Source with a clause preventing
          other companies from using to code to make a profit
          
          Such a clause would immediately make it Source Available not Open
          Source.
       
        spullara wrote 13 hours 6 min ago:
        You know what would make it even easier? Releasing the source code with
        a license that allows for modding.
       
        nisegami wrote 13 hours 10 min ago:
        I consider Microsoft to be genuinely evil as an institution, but this
        is still nice to see.
       
          kgwxd wrote 7 hours 54 min ago:
          I fear it's the first step to announcing the discontinuation of Java
          Edition development.
       
            squigz wrote 2 hours 2 min ago:
            I don't really think this would be the end of the world, would it?
            Much of the content they've added over the past few years has been
            of questionable merit, at least to me. Surely at some point they'll
            run out of ideas that can reasonably fit inside vanilla Minecraft?
            
            (But no, I don't think they're going to stop JE development. I'd
            bet it's still the far more popular version, and they probably
            still make plenty of money from sales)
       
        nurettin wrote 13 hours 14 min ago:
        Maybe they should open source the loader instead of offering a solution
        to already solved problems so people don't have to resort to using
        third party loaders for on-prem gaming.
       
          mmis1000 wrote 12 hours 39 min ago:
          The game is still a licensed game though. You technically must pay it
          and go though proper verification to start the game. (Although it's a
          100% public secret that how to load it as you want, and basically
          every single mod dev kit does that for local dev)
          
          I guess Microsoft won't want to deal with the license issue of
          publishing the loader part.
       
            nurettin wrote 3 hours 4 min ago:
            I doubt they care about this or that license. They just want people
            to upgrade.
       
        64718283661 wrote 13 hours 21 min ago:
        The community obfuscation mappings unrestrictively licensed. The
        Microsoft ones are not. It's a trap.
       
          einsteinx2 wrote 11 hours 0 min ago:
          But the whole point is there are no more mappings. I’m not sure
          what the trap is supposed to be?
       
            throwaway290 wrote 7 hours 41 min ago:
            Your mod uses variable name FooBar in ways Microsoft don't like,
            Microsoft sues you for copyright
            
            before the judge would have to admit it was just coincident.
       
              rstat1 wrote 2 hours 2 min ago:
              They've had plenty of opportunity to do this and haven't, so
              would find it incredibly unlikely they would magically start to
              have a problem now
              
              Not to mention doing would basically kill game as one of the
              biggest reason people even still play Minecraft is the modding
              scene, not the minimum viable effort that have been the official
              updates for last number of years.
       
          poly2it wrote 12 hours 7 min ago:
          Does copyright apply to variable names?
       
            jagged-chisel wrote 11 hours 42 min ago:
            Given the Oracle v Google decision, the likely answer is yes. But
            then there’s a fair use argument to be made.
       
        NelsonMinar wrote 13 hours 31 min ago:
        It's extraordinary to me that Minecraft is both the game that has the
        most robust mod community out there and that the modders were working
        from obfuscated, decompiled Java binaries. With elaborate tooling to
        deobfuscate and then reobfuscate using the same mangled names. For over
        a decade! What dedication.
       
          strbean wrote 2 hours 7 min ago:
          This was how many Runescape bots were developed back in the OSRS
          days. At some point (RS2?) they made the client super thin so there
          were no longer methods for high level game functionality (walk to
          here, get amount of gold in inventory, etc.).
       
          quantified wrote 2 hours 56 min ago:
          I watched one of my young children power themselves through the
          obfuscation to learn advanced modding. There was zeal for the
          knowledge and mods in that community.
       
          kachapopopow wrote 4 hours 48 min ago:
          it's actually pretty trivial and something a single person can do I
          had to rebuild a server jar to source since the guy maintaining it
          disappeared and it had special behaviors in it that were relied upon
          for the game networks playability.
       
          gretch wrote 7 hours 48 min ago:
          In 2004 I played an MMO game on a pirated server. The owner of the
          server somehow got a version of the server binary, and used a hex
          editor (!) to add new features to the binary over time.
          
          It's the closest I've ever see to someone literally being one of the
          hackers from Matrix, literally staring at hexadecimal and changing
          chars one at a time
       
            twothreeone wrote 2 hours 56 min ago:
            That approach is also super useful if you're manually flashing an
            image onto some embedded thing (like an ECU, or other types of boot
            rom). Of course on many modern systems you'll have to get around
            the checksum guards, but there's typically all sorts of glitch
            hacks to do that.
       
            madog wrote 3 hours 42 min ago:
            Presumably they were using a decompiler e.g. IDA Pro to know what
            characters to change in the hex editor? I've done that before to
            find offsets in the binary to NOP out some function calls.
       
            int_19h wrote 6 hours 48 min ago:
            
            
   URI      [1]: https://doomwiki.org/wiki/DeHackEd
       
            Loughla wrote 7 hours 26 min ago:
            That's a level of dedication that I have never devoted to anything
            in my life.
            
            That's energy that could change the world if harnessed correctly.
       
              abtinf wrote 6 hours 55 min ago:
              It did change the world - it made it better for players of the
              game.
       
          Karrot_Kream wrote 10 hours 21 min ago:
          Java is pretty easy to decompile and it's not a huge amount of effort
          to poke into the generated JVM code and start doing things. If you
          have a decent idea of how VMs work, C-like languages work, and how
          object dispatch works it's really not that hard. Also the early
          modding scene for Minecraft was really fun. I was a huge Minecraft
          player at the time and was early into the deobfuscating -> modding
          scene and the community was one of the most fun computing communities
          I've been in. Due to how focused it was on the game and its output it
          wasn't bogged down in nearly as much bikeshedding and philosophy as
          most FOSS projects get. Honestly one of the highlights of the coding
          I've done in my life.
       
          ZeWaka wrote 12 hours 23 min ago:
          To be fair, since 2019 Mojang has been providing the mappings instead
          of everyone having to use community-created ones.
       
            undeveloper wrote 4 hours 50 min ago:
            Very few people use mojang mappings -- the two big modloaders,
            forge and fabric (and their derivatives) have their own mappings
            respectively, due to the restrictions of the mojang mappings. It's
            possible to use the mojang mappings, but much less common.
       
              creatonez wrote 43 min ago:
              PaperMC exclusively uses Mojang mappings, and it's the most
              popular loader for server-side modding these days.
       
              ZeWaka wrote 3 hours 12 min ago:
              Ah, I was aware of the different Fabric (Yarn) mappings and
              internal names (due to the few mods like architectury) but I
              think Forge switched over to Mojang's?
              
              > As of 1.16.5 [(2021)], Forge will be using Mojang’s Official
              Mappings, or MojMaps, for the forseeable future
              
              Pretty sure this applies to NeoForge as well:
              
   URI        [1]: https://neoforged.net/personal/sciwhiz12/what-are-mappin...
       
            zachrip wrote 9 hours 49 min ago:
            Why do they obfuscate if they're just going to provide the
            mappings?
       
              singron wrote 9 hours 31 min ago:
              Proguard can also apply optimizations while it obfuscates. I
              think a good JVM will eventually do most of them itself, but it
              can help code size and warm-up. I'm guessing as JVMs get better
              and everyone is less sensitive to file sizes, this matters less
              and less.
       
                mort96 wrote 8 hours 51 min ago:
                And there's no way to do only the optimisation part? Surely you
                could optimise without messing up class and method names..?
       
                  the_hoser wrote 8 hours 6 min ago:
                  One of the biggest optimizations it offers is shrinking the
                  size of the classes by obfuscating the names.  If you're
                  obfuscating the names anyway, there's no reason that the
                  names have to be the same length.
                  
                  "hn$z" is a heck of a lot smaller than
                  "tld.organization.product.domain.concern.ClassName"
       
                    voxic11 wrote 4 hours 58 min ago:
                    Yeah in some ways the obfuscation and mappings are similar
                    to minification and sourcemaps in javascript.
       
              kulahan wrote 9 hours 31 min ago:
              Well, maybe that's why they're not obfuscating anymore.
       
            tripplyons wrote 10 hours 53 min ago:
            It took me a while to find how to obtain the official mappings, but
            this article seems to have instructions: [1] According to the
            article, official mappings can be found here:
            
   URI      [1]: https://minescript.net/mappings
   URI      [2]: https://piston-meta.mojang.com/mc/game/version_manifest_v2...
       
              mikkupikku wrote 10 hours 44 min ago:
              They're also linked on the wiki page for each release, along with
              links to the client and server jars:
              
   URI        [1]: https://minecraft.wiki/w/Java_Edition_1.21.5
       
          userbinator wrote 12 hours 28 min ago:
          More proof that you don't need the source code to modify software.
          Then again, Java has always been easy to decompile, and IMHO the
          biggest obstacle to understanding is the "object-oriented
          obfuscation" that's inherent in large  codebases even when you have
          the original source.
       
            5- wrote 8 hours 45 min ago:
            indeed. with how good and cheap/free decompilers have gotten over
            the years my preferred way to read abstraction-happy c++ and rust
            code is to compile it with optimisations and debug symbols and then
            read the decompiler output.
       
            abraae wrote 10 hours 58 min ago:
            First time I have heard of object-oriented obfuscation.
            
            I get it, but in general I don't get the OO hate.
            
            It's all about the problem domain imo. I can't imagine building
            something like a graphics framework without some subtyping.
            
            Unfortunately, people often use crap examples for OO. The worst is
            probably employee, where employee and contractor are subtypes of
            worker, or some other chicanery like that.
            
            Of course in the real world a person can be both employee and
            contractor at the same time, can flit between those roles and many
            others, can temporarily park a role (e.g sabbatical) and many other
            permutations, all while maintaining history and even allowing for
            corrections of said history.
            
            It would be hard to find any domain less suited to OO that HR
            records. I think these terrible examples are a primary reason for
            some people believing that OO is useless or worse than useless.
       
              userbinator wrote 1 hour 31 min ago:
              It's all about the problem domain imo. I can't imagine building
              something like a graphics framework without some subtyping.
              
              The keyword being "some".
              
              Yes, there are those who can use OOP responsibly, but in my
              (fortunately short) experience with Enterprise Java, they are
              outnumbered by the cargo-cult dogma of architecture astronauts
              who advocate a "more is better" approach to abstraction and
              design patterns. That's how you end up with things like
              AbstractSingletonProxyFactoryBean.
       
              Brian_K_White wrote 1 hour 52 min ago:
              If everyone does it wrong, then that alone means it itself is
              wrong.
       
              qwertytyyuu wrote 2 hours 58 min ago:
              That's why we use depedency injection now~~!
       
                tormeh wrote 54 min ago:
                I've always wanted my editor's go-to functionality to take me
                to an abstract class instead of the place where the actual
                logic resides. Good times.
       
              haglin wrote 3 hours 42 min ago:
              I find inheritance works best when you model things that don't
              exist in reality, but only as software concepts, for example, an
              AbstractList, Buffer or GUI component.
       
              andai wrote 6 hours 34 min ago:
              Tried to modify one boolean in a codebase a few weeks ago and I
              had to go thru like 12 levels of indirection to find "the code
              that actually runs".
       
              jdswain wrote 7 hours 43 min ago:
              (Hi Andrew)
              
              It's the misuse of OO constructs that gives it a bad name, almost
              always that is inheritance being overused/misused. Encapsulation
              and modularity are important for larger code bases, and
              polymorphism is useful for making code simpler, smaller and more
              understandable.
              
              Maybe the extra long names in java also don't help too, along
              with the overuse/forced use of patterns? At least it's not
              Hungarian notation.
       
                abraae wrote 1 hour 42 min ago:
                Jason! Couldn't agree more.
       
              Retr0id wrote 8 hours 42 min ago:
              As a reverse engineer, I totally get the phrase.
              
              Even with non-obfuscated code, if you're working with a
              decompilation you don't get any of the accompanying code comments
              or documentation. The more abstractions are present, the harder
              it is to understand what's going on. And, the harder it is to
              figure out what code changes are needed to implement your desired
              feature.
              
              C++ vtables are especially annoying. You can see the dispatch,
              but it's really hard to find the corresponding implementation
              from static analysis alone. If I had to choose between "no
              variable names" and "no vtables", I'd pick the latter.
       
              devjab wrote 8 hours 52 min ago:
              I think the OO hatred comes from how academia and certain
              enterprise organisations for our industry picked it up and taught
              it like a religion. Molding an entire generation og developers
              who wrote some really horrible code because they were taught that
              abstractions were, always, correct. It obviously weren't so
              outside those institutions, the world slowly realized that
              abstractions were in many ways worse for cyclomatic complexity
              than what came before. Maybe not in a perfect world where people
              don't write shitty code on a thursday afternoon after a long day
              of horrible meetings in a long week of having a baby cry every
              night.
              
              As with everything, there isn't a golden rule to follow.
              Sometimes OO makes sense, sometimes it doesn't. I rarely use it,
              or abstractions in general, but there are some things where it's
              just the right fit.
       
                rcruzeiro wrote 7 hours 46 min ago:
                > I think the OO hatred comes from how academia and certain
                enterprise organisations for our industry picked it up and
                taught it like a religion.
                
                This, this, this. So much this.
                
                Back when I was in uni, Sun had donated basically an entire lab
                of those computers terminals that you used to sign in to with a
                smart card (I forgot the name). In exchange, the uni agreed to
                teach all classes related to programming in Java, and to have
                the professors certify in Java (never mind the fact that nobody
                ever used that laboratory because the lab techs had no idea how
                to work with those terminals).
                
                As a result of this, every class from algorithms, to software
                architecture felt like like a Java cult indoctrination. One of
                the professors actually said C was dead because Java was
                clearly superior.
       
                  anonzzzies wrote 1 hour 30 min ago:
                  > One of the professors actually said C was dead because Java
                  was clearly superior.
                  
                  In our uni (around 1998/99) all professors said that except
                  the Haskell teacher who indeed called Java a mistake (but c
                  also).
       
                  rasz wrote 2 hours 51 min ago:
                  And now you know how Nvidia CUDA got so popular.
       
                  mayoff wrote 3 hours 30 min ago:
                  Probably the Sun Ray computer.
                  
   URI            [1]: https://en.wikipedia.org/wiki/Sun_Ray
       
                taneq wrote 7 hours 58 min ago:
                Much like Agile, or Hungarian notation. When a general
                principle becomes a religion it ceases to be a good general
                principle.
       
              mywittyname wrote 9 hours 35 min ago:
              For me, it's the fact that the mess of DAOs and Factories that
              constituted "enterprise" Java in the 00s was a special kind of
              hellscape that was actively encouraged by the design of the
              language.
              
              Most code bases don't need dynamically loaded objects designed
              with interfaces that can be swapped out.  In fact, that
              functionality is nearly never useful.  But that's how most people
              wrote Java code.
              
              It was terrible and taught me to avoid applying for jobs that
              used Java.
              
              I like OOP and often use it.  But mostly just as an encapsulation
              of functionality, and I never use interfaces or the like.
       
                locknitpicker wrote 3 hours 0 min ago:
                > Most code bases don't need dynamically loaded objects
                designed with interfaces that can be swapped out. In fact, that
                functionality is nearly never useful. But that's how most
                people wrote Java code.
                
                Perhaps I'm not following, but dynamically loaded objects are
                the core feature of shared libraries. Among it's purposes, it
                allows code to be reused and even updated without having to
                recompile the project. That's pretty useful.
                
                Interfaces are also very important. They allow your components
                to be testable and mockable. You cannot have quality software
                without these basic testing techniques. Also, interfaces are
                extremely important to allow your components to be easily
                replaced even at runtime.
                
                Perhaps you haven't had the opportunity to experience the
                advantages of using these techniques, or were you mindful of
                when you benefited from them. We tend to remember the bad parts
                and assume the good parts are a given. But personal tastes
                don't refute the value and usefulness of features you never
                learned to appreciate.
       
                  athrowaway3z wrote 4 min ago:
                  We're talking about OO Java. You bring up shared libraries,
                  list a bunch of things not unique to Java nor OO, then claim
                  `etc.` benefits.
                  
                  You really haven't argued anything, so ending on a "you must
                  be personally blind jab" just looks dumb.
       
                jjmarr wrote 3 hours 24 min ago:
                It's very useful in C++, funnily enough. This is because I can
                have a non-templated interface base class, then a templated
                impl class.
                
                Then my templated impl header can be very heavy without killing
                my build times since only the interface base class is
                #included.
                
                Not sure if this is as common in Java.
       
                  vasvir wrote 12 min ago:
                  Java uses type erasure which are very cheap in compile time
                  but you cannot do things like
                  
                     t = new T(); // T is a template parameter class
                  
                  C++ uses reified generics which are heavy on compile time but
                  allows the above.
       
                Nursie wrote 5 hours 14 min ago:
                Thankfully those days are not with us any more. Java has moved
                on quite considerably in the last few years.
                
                I think people are still too ready to use massive, hulking
                frameworks for every little thing, of course, but the worst of
                the 'enterprise' stuff seems to have been banished.
       
              Quekid5 wrote 10 hours 23 min ago:
              > I can't imagine building something like a graphics framework
              without some subtyping.
              
              While React technically uses some OOP, in practice it's a pretty
              non-OOP way do UI. Same with e.g. ImGUI (C++), Clay (C). I
              suppose for the React case there's still an OOP thing called the
              DOM underneath, but that's pretty abstracted.
              
              In practice most of the useful parts of OOP can be done with a
              "bag/record of functions". (Though not all. OCaml has some
              interesting stuff wrt. the FP+OOP combo which hasn't been done
              elsewhere, but that may just be because it wasn't ultimately all
              that useful.)
       
                MobiusHorizons wrote 6 hours 44 min ago:
                React is most likely not what the author had in mind by a
                graphics framework. The browser implementation of the DOM or a
                desktop widget system  is much more likely the idea.
       
              pavo-etc wrote 10 hours 46 min ago:
              I am currently being radicalised against OOP because of one
              specific senior in my team that uses it relentlessly, no matter
              the problem domain. I recognise there are problems where OOP is a
              good abstraction, but there are so many places where it isn't.
              
              I suspect many OOP haters have experienced what I'm currently
              experiencing, stateful objects for handing calculations that
              should be stateless, a confusing bag of methods that are
              sometimes hidden behind getters so you can't even easily tell
              where the computation is happening, etc
       
                quantified wrote 2 hours 51 min ago:
                Separation of data and algorithm is so useful. I can't really
                comment on how your senior is doing it, but in the area of
                numeric calculations, making numbers know anything about their
                calcs is a Bad Idea. Even associations with their units or
                other metadata should be loose. Functional programming provides
                such a useful intellectual toolkit even if you program in Java.
                
                Sorry to learn, hope you don't get scar tissue from it.
       
                Romario77 wrote 9 hours 31 min ago:
                You could write crappy code in any language. I don't think it's
                specific for Java. Overall I think java is pretty good,
                especially for big code bases.
       
                  taneq wrote 8 hours 1 min ago:
                  You gotta admit, though, that a language which strongarms you
                  into writing classes with hidden state and then extending and
                  composing them endlessly is kinda pushing you in that
                  direction.
                  
                  It’s certainly possible to write good code in Java but it
                  does still lend itself to abuse by the kind of person that
                  treated Design Patterns as a Bible.
       
                    stirfish wrote 4 hours 36 min ago:
                    >kind of person that treated Design Patterns as a Bible
                    
                    I have a vague idea of what the Bible says, but I have my
                    favorite parts that I sometimes get loud about.
                    Specifically, please think really hard before making a
                    Singleton, and then don't do it.
       
                      taneq wrote 3 hours 5 min ago:
                      OK yeah that's a pretty good general principle. You think
                      you only need one of these? Are you absolutely certain?
                      You SURE? Wrong, you now need two. Or three.
       
                  stefs wrote 8 hours 33 min ago:
                  But there's a real difference how easy it is to write crappy
                  code in a  language. In regards to java that'd be, for
                  example, nullability, or mutability. Kotlin, in comparison,
                  makes those explicit and eliminates some pain points. You'd
                  have to go out of your way and make your code actively worse
                  for it to be on the same level as the same java code.
                  
                  And then there's a reason they're teaching the "functional
                  core, imperative shell" pattern.
       
                    fiddlerwoaroof wrote 3 hours 44 min ago:
                    On the other hand, Java's tooling for correctly refactoring
                    at scale is pretty impressive: using IntelliJ, it's pretty
                    tractable to unwind quite a few messes using automatic
                    tools in a way that's hard to match in many languages that
                    are often considered better.
       
            ed_elliott_asc wrote 11 hours 18 min ago:
            Tbh decompiling software and figuring out how it works isn’t easy
            but that is part of the fun :) - it’s the reason ive ended up
            following many of the weird paths in computing that I have
       
            pphysch wrote 12 hours 3 min ago:
            Agreed; modding obfuscated Java is impressive, but not quite on the
            level of modding in the (Nintendo) emulation community. The things
            that have been achieved with classic Nintendo titles are absurd,
            like adding high-performance online multiplayer to Super Smash Bro.
            Melee.
       
              karlding wrote 11 hours 34 min ago:
              Said online multiplayer [0].
              
              The devs also wrote a write-up here about how they handle the
              desyncs in netcode [1].
              
              [0] [1]
              
   URI        [1]: https://slippi.gg/
   URI        [2]: https://medium.com/project-slippi/fighting-desyncs-in-me...
       
          1313ed01 wrote 12 hours 59 min ago:
          I am terrified by Minecraft mods always being distributed from dodgy
          download sites    and not rarely come with their own Windows EXE
          installers. And as far as I know there is no sandboxing at all in the
          game (uhm, no pun intended) so once installed the mod has full access
          to your computer?
       
            pdntspa wrote 11 hours 21 min ago:
            Yes, much like how most software for PC has been written since the
            beginning of time?
       
            quamserena wrote 11 hours 25 min ago:
            Yeah mods are just regular Java .jars that can do anything. To
            circumvent this issue Mojang introduced datapacks but they are
            super limited in what they can do. They’re basically just
            Minecraft commands in a file along with some manifest files to
            change e.g. mob loot drop rates. These Minecraft commands are
            Turing complete but a huge PITA to work with directly, no concept
            of local variables or if statements, no network access, etc. Every
            entity in MC has associated NBT data that is similar to JSON that
            stores values like position, velocity, inventory, etc. You can
            change NBT with commands for mobs, but in what can only be
            described as a religious decision, Minecraft commands are unable to
            modify player NBT. So for example it is impossible to impart a
            velocity on a player.
            
            One wonders why Mojang didn’t embed Lua or Python or something
            and instead hand-rolled an even shittier version of Bash. The only
            reason MC servers like Hypixel exist is because the community
            developed an API on top of the vanilla jar that makes plugin
            development easy. Even with that there is still no way for servers
            to run client-side code, severely limiting what you can do. They
            could’ve easily captured all of Roblox’s marketshare but just
            let that opportunity slip through their fingers. Through this and a
            series of other boneheaded decisions (huge breaking changes,
            changes to the base game, lack of optimization), they have
            seriously fractured their ecosystem:
            
            - PvP is in 1.8 (a version from 2015) or sometimes even 1.7 (from
            2013)
            
            - Some technical Minecraft is latest, some is in 1.12 (from 2017)
            
            - Adventure maps are latest version
            
            - Casual players play Bedrock (an entirely different codebase!)
            
            The words “stable API” have never been said in the Mojang
            offices. So the community made their own for different versions,
            servers use the Bukkit 1.8 API, client 1.8 mods use Forge, latest
            mods use Forge or Fabric. The deobfuscated names are of little
            utility because the old names are so well ingrained, and modders
            will also probably avoid them for legal reasons.
       
              charcircuit wrote 10 hours 56 min ago:
              Bedrock has proper mod support and you can program with
              Typescript.
       
                quamserena wrote 10 hours 30 min ago:
                Better than datapacks overall but lacks a way to plug into the
                rendering pipeline or make custom dimensions. Java mods have
                more capabilities
       
            xp84 wrote 11 hours 40 min ago:
            As someone whose kid has pulled me into the world of using mods
            (though not (yet) making them for Java Edition) I think this PSA is
            worth sharing of how to use minecraft mods without pain and with
            minimal risk, in case anyone is getting started, or has gotten
            started and finds it frustrating:
            
            1. Use MultiMC to manage instances with various mods, since mods
            are rarely compatible with each other, and since each version of a
            mod only is compatible with a single specific point release of the
            game itself.
            
            Never download any EXE files to get a mod, that does sound sketch
            AF.
            
            2. mods are always packaged for a particular Loader (some package
            for multiples and some require Forge, Fabric, or NeoForge), and
            MultiMC can install any of them into a given instance. Aside from
            different startup screens there seems to be no difference so idk
            why we need 3 different ones.
            
            3. Curseforge's website and modrinth both seem to be legit places
            to get mods from. I personally find the installable Curseforge
            program itself to be bad and spammy, and would never use that, but
            the site still lets you directly download the jars you need, and
            lets you check "Dependencies" to find out what other mods you need.
       
              vintermann wrote 2 hours 41 min ago:
              Curseforge is OK, Modrinth is a less commercial alternative. The
              ten first Google hits if you search "Minecraft mods" are probably
              NOT OK, most Minecraft-related stuff is SEO optimized to hell by
              sites which are very fishy.
       
              yrxuthst wrote 10 hours 25 min ago:
              There are actually two versions of the Curseforge client, the
              "Overwolf" version that is built on that platform (and is quite
              bad as a result) and a newer standalone version that doesn't use
              Overwolf, it's much better.
       
              mikkupikku wrote 11 hours 20 min ago:
              If you're using MuliMC or one of its various forks, you can
              search for and install mods from modrinth or curseforge right in
              the launcher.  I fine it more convienent than doing it with a
              browser and dragging them in, but either way works.
       
            SkiFire13 wrote 12 hours 29 min ago:
            > I am terrified by Minecraft mods always being distributed from
            dodgy download sites and not rarely come with their own Windows EXE
            installers.
            
            That's not their main mean of distribution, most often those sites
            were just third parties unrelated to the mod authors that
            repackaged the mod and somehow got a better SEO. But TBF back in
            the days the UX/UI for installing mods was pretty terrible.
            Nowadays there are more standardized and moderated distribution
            websites from which you just download the .jar of the mod.
            
            > And as far as I know there is no sandboxing at all in the game
            (uhm, no pun intended) so once installed the mod has full access to
            your computer?
            
            This is totally true though.
       
            superb_dev wrote 12 hours 42 min ago:
            This is not the norm these days! There are popular mod loaders like
            curseforge that pulled from moderated repositories. It’s still
            not bulletproof, but a far cry from trusting some installer
            executable
       
              Imustaskforhelp wrote 12 hours 23 min ago:
              I prefer modrinth as well, both are good but curseforge has done
              some things which makes us require an api etc. for true
              automation where modrinth is genuinely nice.
              
              I used to use prism launcher which would just give me a search
              box and It on the side would have things like modrinth /
              curseforge etc., Usually I preferred Modrinth but there were some
              modpacks just on curseforge only but I never really downloaded a
              shady modpack from some random website aside from these two, In
              fact sometimes I never opened up a website but just prismlauncher
              itself lol
       
                superb_dev wrote 8 hours 22 min ago:
                +1 for Prism Launcher and Modrinth! I use Prism on my Steam
                Deck. I would’ve mentioned them both but Curseforge was the
                only name I could remember
       
            trenchpilgrim wrote 12 hours 58 min ago:
            Yup very common to take a popular minecraft mod, insert malware,
            rehost it, and seo your way into getting downloads.
       
          krackers wrote 13 hours 14 min ago:
          Me too. Having only a vague familiarity with the game, I thought that
          mods were using some official plugin system. I had no idea that
          minecraft modders (presumably kids/teens?) were not only reverse
          engineering things but also creating an entire ecosystem to work
          around proguard.
       
            creatonez wrote 39 min ago:
            > I had no idea that minecraft modders (presumably kids/teens?)
            [...]
            
            Players who were teenagers when the game first came out are now 29
            to 35 years old. It's a pretty ancient game at this point. From my
            experience, most contemporary modders are in their late 20s.
            
            We're still relying on legacy code written by inexperienced kids,
            though...
       
            userbinator wrote 2 hours 30 min ago:
            I wonder how much overlap Minecraft modders have with the Android
            custom ROM/app-modding community, another thing that the easy
            "reversibility" of Java has spawned.
       
            chillfox wrote 6 hours 51 min ago:
            While I don't doubt that some mods are created by teens, just under
            half of Minecraft players are adults.
       
            Philip-J-Fry wrote 11 hours 5 min ago:
            Most modders aren't reverse engineering the game. There's a small
            community that are doing the obfuscation and then everyone else is
            effectively working from normal Java code.
       
              vintermann wrote 2 hours 46 min ago:
              It's that way for most modding scenes. Someone makes an API/mod
              loader which makes it easy, then a lot of enthusiastic players
              make mods.
       
            Nition wrote 12 hours 16 min ago:
            I remember Notch saying in 2010 that he planned to add an official
            modding API, but it never actually happened.
            
            ---
            
            Edit:
            
   URI      [1]: https://web.archive.org/web/20100708183651/http://notch.tu...
       
              nightpool wrote 11 hours 58 min ago:
              Data packs were released in October 2017! And we had command
              blocks in 2012 for custom maps
       
            nightpool wrote 12 hours 32 min ago:
            Not only working around proguard, but Minecraft mods are built on
            top of an incredibly cool and flexible runtime class file rewriting
            framework that means that each JAR can use simple declarative
            annotations like @Inject to rewrite minecraft methods on the fly
            when their mod is loaded or unloaded. This massively revolutionized
            mod development, which was previously reliant on tens of thousands
            of lines of manually compiled patches that would create "modding
            APIs" for developers to use. Putting the patching tools in the
            hands of the mod developers has really opened up so many more
            doors.
            
            Minecraft also has a plugin system based around JSON file
            datapacks, but it's a lot more limited. It's more at the level of
            scope of adding a few cool features to custom maps then completely
            modding the game.
       
              LelouBil wrote 12 hours 26 min ago:
              The devs for Java Edition really have mods in mind nowadays.
              
              - They left in the code debug features that they used to strip
              out.
              
              - They left in the code their testing infrastructure that they
              used to strip out as well.
              
              - They started making everything namespaced to differentiate
              contents between mods (like in this week's snapshot they made
              gamerules namespaced with the "minecraft:" prefix like items and
              blocks and whatnot)
              
              - They are adding a lot more "building blocks" type features that
              both allow new /easier things in datapacks, and in mods as well.
              
              Method patching with Mixins is less needed now because the game's
              internal APIs are more versatile than ever.
       
                ZeWaka wrote 10 hours 14 min ago:
                They've also been working with a lot of modders on the
                rendering engine over the past year or two.
       
                nightpool wrote 12 hours 0 min ago:
                That's definitely true, and I think that's a testament to
                Minecraft / Java's strong OO design—it dovetails very nicely
                with the Open/Close principle. However my view is that for a
                mod to be a mod, there's always going to be stuff that you
                can't/shouldn't implement just with datapacks—whether that's
                complex rendering features, new entity logic, or whatever. The
                Mixin processor makes it really easy to build these kinds of
                features in a very compatible way
       
                  hyghjiyhu wrote 11 hours 15 min ago:
                  These tools sound very powerful, could they find use for
                  other Java codebases?
       
            6SixTy wrote 12 hours 34 min ago:
            There is and kind of isn't. There are community led modding apis,
            but also datapacks that are more limited but still allow someone to
            do cool stuff leveraging tools, items, etc already in the game.
            
            If you remember entire contraptions of command blocks doing stuff
            like playing Pokemon Red in Minecraft or "one commands" that
            summoned an entire obelisk of command blocks, the introduction of
            datapacks pretty much replaced both of those.
       
            bitexploder wrote 13 hours 3 min ago:
            Over time people learned the key APIs and classes that you needed
            to interact with. And obfuscated Java is like an order of magnitude
            easier to work with than machine code. Once someone figured out how
            to do something it was generally pretty easy to use that interface
            to do your own thing. Modders of course still often hit edge cases
            that required more reversing, but yeah, it was really cool to watch
            over the last 15+ years :)
       
        hackthemack wrote 13 hours 35 min ago:
        I much prefer just writing stuff for Luanti (formerly minetest).
        
        You can, pretty much, get the Minecraft experience by downloading mods.
        Or just use the VoxeLibre game mod. [1] The mods are written in lua and
        you can find the source code for most of them.
        
        One I like is Zoonami which turns the experience into a Pokemon like
        game.
        
   URI  [1]: https://content.luanti.org/packages/Wuzzy/mineclone2/
   URI  [2]: https://content.luanti.org/packages/isaiah658/zoonami/
       
          nickstinemates wrote 7 hours 36 min ago:
          does something like AllTheMods 10 exist for Luanti? Or Meatballcraft?
       
            hackthemack wrote 6 hours 6 min ago:
            The Luanti client lets you search and install mods from
            content.luanti.org
            
            It differentiates between mods and games. A game changes the core
            game to be much more different, but sometimes a game is just a
            collection of some other mods. [1] Personally, I find it more fun
            to just go and click on about 6 to 8 mods that are interesting and
            see how the game goes. [2] Some of my picks are... [3] [4] [5]
            
   URI      [1]: https://content.luanti.org/packages/?type=game
   URI      [2]: https://content.luanti.org/packages/?type=mod
   URI      [3]: https://content.luanti.org/packages/ElCeejo/animalia/
   URI      [4]: https://content.luanti.org/packages/random-wizard/gear_up/
   URI      [5]: https://content.luanti.org/packages/TenPlus1/farming/
   URI      [6]: https://content.luanti.org/packages/FreeLikeGNU/goblins/
       
          cachius wrote 12 hours 48 min ago:
          
          
   URI    [1]: https://github.com/luanti-org/luanti
       
          anthk wrote 12 hours 49 min ago:
          Zoonami will achieve what Tuxemon didn't.
       
        PaulKeeble wrote 13 hours 46 min ago:
        As I understand it way back in the early Beta days of Minecraft
        obfuscation was added to avoid mods being embedded into the JAR and it
        being released as a combination enabling piracy of the game with mods
        embedded.
        
        This has been a pain to workaround for years as the modding scene has
        gotten bigger. Hopefully this makes modding a bit more accessible.
       
        kevincox wrote 13 hours 56 min ago:
        I'm pretty excited this but for a slightly strange reason. I have a
        little monitor for the logs that posts things like player joins and
        deaths to a chat room. It is fun and also encourages people to hop on
        the server when someone joins.
        
        However the source information was always missing and strange in the
        logs making matching some messages difficult. Hopefully this will make
        more messages more unique so that I can easily match the ones I am
        interested in.
       
        squigz wrote 14 hours 20 min ago:
        For those in the modding scene, what difference, if any, will this
        make? Will this enable anything that was previously not possible?
       
          yrxuthst wrote 13 hours 45 min ago:
          Main difference for NeoForge developers will be method parameter
          names in the IDE, the current mapping doesn't include those. We have
          community mappings (Parchment) for common methods, but there are a
          lot of less used functions that just have decompiler names. I don't
          use Fabric so I'm not sure how it will affect those devs.
       
          axus wrote 13 hours 57 min ago:
          It's possible that the de-obfuscated symbols will be more
          backwards-compatible, since they don't need to change with every
          minor release.    Though I'd imagined Forge and Fabric were supposed to
          provide a stable platform, yet plugins for those still need a
          different jar for every minor version.
       
          VikingCoder wrote 14 hours 13 min ago:
          At a guess, it will enable quicker updates on major revisions, where
          things move around a lot.  There will be less reverse-engineering
          needed.
       
            ZeWaka wrote 12 hours 20 min ago:
            They were already releasing official mappings.
       
          the_gipsy wrote 14 hours 17 min ago:
          Should make it easy to have mods running on latest releases.
       
            squigz wrote 14 hours 12 min ago:
            But the only version that matters is 1.20.1!
       
              kachapopopow wrote 4 hours 46 min ago:
              1.2.5, the modding golden age (probably because of nostalgia)
       
              xboxnolifes wrote 13 hours 24 min ago:
              I think you typoed 1.7.10
       
                ZeWaka wrote 12 hours 20 min ago:
                I think you typed b1.7.3
       
              Modified3019 wrote 13 hours 29 min ago:
              Speak for yourself, Create supports 1.21.1 (neoforge) which is
              what my bloated and fragile mess of a mod pack is built on.
       
        Traubenfuchs wrote 14 hours 28 min ago:
        I'd like to see a benchmark between the obfuscated and non obfuscated
        version.
       
          xxs wrote 13 hours 42 min ago:
          same, except for meta space used - the class/variable names don't
          have pretty much any meaningful impact on java runtime, when the code
          is JIT'd. Even before (interpret mode) that the
          className/fields/methods are just references in the constant pool
       
          PaulKeeble wrote 13 hours 48 min ago:
          The files will be a little smaller obscured but it doesn't usually
          impact much other than RAM usage. The algorithms are all the same.
          Given the size of methods for being JIT compiled is token based not
          text size I don't think it even impacts that choice. So expect it to
          be identical.
       
          internetter wrote 14 hours 21 min ago:
          Probably virtually the same. If I recall, the "obfuscation" was
          mostly mangling
       
            SkiFire13 wrote 12 hours 13 min ago:
            AFAIK it also shortens the names, which might make the jar smaller
            or make it take less time to do name resolution at runtime. It
            probably won't be very relevant though, especially after startup.
       
            Traubenfuchs wrote 14 hours 18 min ago:
            Luckily I have never had to deal with obfuscation, but from what I
            have seen there are some grotesque things like defining every
            single randomly named method call in an array or map with random
            order or weirdly combining or tearing apart methods.
            
            The only time I encountered it was when I was working for the
            government, we were working on the rules that decide who gets
            audited in depth by the tax police. The .jar it compiled to was
            obfuscated.
       
              circuit10 wrote 12 hours 23 min ago:
              For Minecraft it’s just removing names and replacing them with
              random strings
       
              xxs wrote 13 hours 38 min ago:
              I have seen =tons= of obfuscation (non-minecraft). Back in the
              late 90s it used to be popular, unfortunately.
              
              Most of the stuff is like naming every method a or b, and using
              the fact they are overloaded, given one-letter-name or a reserved
              keyword like 'if' to classnames (or packages) was popular, too.
              Pretty much constant pool modifications w/o too much
              byte-code-editing.
              
              Overall cheap and unnecessary and has not stopped anyone.
       
                ok123456 wrote 11 hours 2 min ago:
                It's still pretty popular. Most large smartphone applications
                are obfuscated to some degree. At least for Android, because
                it's bytecode for a VM, it's still trivial to disassemble and
                understand what is happening at a high level.
       
              wtallis wrote 14 hours 5 min ago:
              My decade-old recollection is also that Minecraft's obfuscation
              didn't do anything structural, just mangled class and method
              names. Think of it more like JavaScript minification than a
              serious attempt to thwart reverse engineering.
       
                duskwuff wrote 13 hours 46 min ago:
                Minecraft - like most Java games - just used Proguard. It
                renames classes/fields/methods and sometimes inlines private
                methods, but doesn't make any substantial changes to control
                flow.
       
        giancarlostoro wrote 14 hours 30 min ago:
        I wonder if they'll ever just open source the Java Edition on GitHub.
        People will buy Minecraft on every platform it is released on, just
        like Skyrim.
       
          OkayPhysicist wrote 11 hours 18 min ago:
          At this point, they could open source it, and just charge for
          Minecraft accounts being able to authenticate with their login
          servers to join authenticated Minecraft servers, and it wouldn't
          change sales much.
       
          NelsonMinar wrote 13 hours 32 min ago:
          Back in 2010 Notch promised
          
          > Once sales start dying and a minimum time has passed, I will
          release the game source code as some kind of open source.
          
   URI    [1]: https://web.archive.org/web/20100301103851/http://www.minecr...
       
            umpalumpaaa wrote 6 hours 56 min ago:
            Sales are still good though- right? It’s the no paid iOS game.
       
            PeaceTed wrote 7 hours 4 min ago:
            Notch has said a lot of things over the years. Many after the sale
            to Microsoft were not so great. Suddenly without purpose and more
            money than he would ever need in a life time, he found a new
            purpose that wasn't so great.
            
            A lot of Qanon rants and other conspiracy things. Just goes to show
            you that some times it is best you don't get what you wish for.
       
            ntoskrnl_exe wrote 13 hours 20 min ago:
            I'm pretty sure A Minecraft Movie has already made more money that
            the game had made when he made that promise.
            
            Back then he couldn't have foreseen the size of the money printing
            factory that the game would become.
       
              pixl97 wrote 8 hours 56 min ago:
              I remember when Minecraft was sold for $2 billion and people
              thought it was madness and would never make the money back.
              
              Since then they've made that back on game copies alone, and god
              only knows how much from movie/merch rights and
              microtransactions.
       
            ikamm wrote 13 hours 27 min ago:
            Notch has said he would do many things and rarely follows through
            with them. I'm still waiting for 0x10c.
       
              I_AM_A_SMURF wrote 2 hours 39 min ago:
              TBF sales didn't start dying
       
              einsteinx2 wrote 11 hours 1 min ago:
              > Once sales start dying
              
              Has that part ever happened?
       
              ecshafer wrote 13 hours 15 min ago:
              He sold the game to Microsoft, his promises kind of don't matter
              anymore.
       
                ikamm wrote 13 hours 6 min ago:
                I think you meant to reply to the parent comment, I never
                mentioned Minecraft
       
          mikkupikku wrote 13 hours 54 min ago:
          There's no reason for them not to.  Open source launchers using the
          "honor system" for account verification are already established and
          normalized.  It's trivial to just comment out that verification.  The
          jars and assets are free to download from Microsoft's servers without
          needing an account.  It's a trivial game to get without paying, so I
          don't see any downside for them to open source the engine.
       
            giancarlostoro wrote 7 hours 17 min ago:
            Honestly, I would almost settle for Microsoft open sourcing the
            Minecraft Java back-end server at a minimum. This alone is long
            overdue. The massive fanbase could have started to maintain it in
            ways Microsoft could only fathom.
       
              kachapopopow wrote 4 hours 52 min ago:
              the client and server are the jar file, but net.minecraft.client
              deleted, client has both.
       
          kragen wrote 14 hours 7 min ago:
          It sounds like you might be looking for Minetest/Luanti.
       
            ajkjk wrote 14 hours 1 min ago:
            no, I think they're looking for the official game to be open
            sourced... that's much more appealing than a knockoff since it's
            the version everyone actually plays.
       
              kragen wrote 13 hours 56 min ago:
              It's much less appealing because it's much harder to mod.
       
                unleaded wrote 12 hours 32 min ago:
                less appealing to who? Lots of 13 year olds learned to code by
                writing minecraft mods so it can't be that hard. You also get
                the benefit & satisfaction of it actually being in
                Minecraft—yes, they are both very similar games where you
                explore and place blocks in a procedurally generated world, but
                it really does matter. I can't really explain why if you don't
                get it but it's evident people do care even when they know
                about Minetest.
       
                  herewulf wrote 4 hours 40 min ago:
                  IMHO, "actually in Minecraft" is roughly akin to "my shoes
                  are actually Nike".
                  
                  That said, I never had any interest in playing on a server
                  that was populated by anyone but my small circle of friends.
                  
                  Now my kids are growing up doing the same which I find great
                  because I know exactly with whom they are interacting and
                  have no worries about it.
       
                willis936 wrote 13 hours 6 min ago:
                It's much more appealing because it has a much more vibrant
                modding community.
       
                  kragen wrote 12 hours 57 min ago:
                  Community can go a long way towards compensating for worse
                  technology, yeah.
       
                    nmilo wrote 10 hours 26 min ago:
                    Community is the entire goal. The technology just has to
                    meet some minimum threshold. You know any 13 year olds
                    playing Minetest?
       
                      herewulf wrote 4 hours 49 min ago:
                      My kids are younger than that and play Minetest/Luanti
                      all the time. They are well aware of Minecraft but are
                      completely engrossed by the modding first approach of
                      Luanti.
       
                      kragen wrote 9 hours 21 min ago:
                      I don't know any 13-year-olds, but I hear that a lot of
                      them do play Minetest.
       
          throwaway48476 wrote 14 hours 23 min ago:
          More games should be open source like doom. It doesnt effect the art
          assets which are still copyrighted.
       
            dontlaugh wrote 13 hours 58 min ago:
            Amusingly, Minecraft is a counter-example. It has very few assets
            and they are hardly essential to the experience.
       
              xboxnolifes wrote 13 hours 25 min ago:
              The music and sounds play a large part into the experience
              though, and are much harder to replace than the textures.
       
                tmtvl wrote 12 hours 50 min ago:
                The sounds maybe, but the music? If there's one game whose
                music I always turn off instantly it's Minecraft. Touhou
                Youyoumu Minecraft ain't.
       
                  MangoToupe wrote 4 hours 33 min ago:
                  Cannot disagree more. Probably my favorite video game music
                  of all time.
       
                  sodapopcan wrote 11 hours 51 min ago:
                  Interesting, I love Minecraft's music.    I do listen to it
                  intentionally outside of the game, but it's not quite the
                  same as having it suddenly start up during gameplay.  The
                  first I heard of someone "obviously turning off the music"
                  was, I kid you not, yesterday, and now I'm hearing it for a
                  second time today.  Would woulda thunk!
       
                    tmtvl wrote 7 hours 38 min ago:
                    There are soundtracks I listen to outside of their games:
                    Castlevania Symphony of the Night, Chrono Trigger,
                    Shadowgate,... but Minecraft would be way near the end of
                    the list. The music is too generic to be worth the
                    attention, yet too present to work as ambiance. It kinda
                    reminds me of Silent Hill's soundtrack.
       
                      sodapopcan wrote 6 hours 18 min ago:
                      "Generic"?  Ouch, lol.
       
                  xigoi wrote 11 hours 54 min ago:
                  I like Minecraft’s music. If there was a way to have it not
                  play when the game is paused or on the title screen, I would
                  probably keep it on.
       
                  gbear605 wrote 12 hours 43 min ago:
                  The music is definitely considered classic, you can find tons
                  of people online talking about how it means a lot to them -
                  and personally, I really loved the music.
       
                    ollien wrote 9 hours 55 min ago:
                    It's even recognized by the Library of Congress!
                    
   URI              [1]: https://www.loc.gov/static/programs/national-recor...
       
                      HaZeust wrote 1 hour 27 min ago:
                      It's not hard to get into the library of congress? It's
                      purposely extremely easy. I forgot who it was, but there
                      was one big right-wing talk show host that would end all
                      of his segments by saying it's being added to the Library
                      of Congress as if it's an exclusive accolade, and people
                      rightfully called him out on his shit for how easy it is
                      to do that
       
                    speedgoose wrote 12 hours 7 min ago:
                    I remember the early Minecraft musics from C418 to be
                    relatively unconventional, especially some of the jukebox
                    discs.
                    
                    I started playing Minecraft again recently and while it
                    sounds like it’s the same artist, and it’s still
                    somewhat contemplative, it’s not dissonant anymore.
       
                      vintermann wrote 1 hour 59 min ago:
                      It's not the same artist. C418 had a very good deal with
                      Notch's Mojang, letting him keep rights. Microsoft
                      demanded that he sign over the rights to further music as
                      work for hire. He refused, as a result the newer music in
                      Minecraft is made by other composers who signed on to
                      that deal and try to make music fitting with C418's
                      style.
       
              duskwuff wrote 13 hours 49 min ago:
              There are so many third-party texture packs for Minecraft that
              losing access to the official ones would hardly even be an
              obstacle.
       
        pwdisswordfishy wrote 14 hours 37 min ago:
        > But we encourage people to get creative both in Minecraft and with
        Minecraft – so in 2019 we tried to make this tedious process a little
        easier by releasing “obfuscation mappings”. These mappings were
        essentially a long list that allowed people to match the obfuscated
        terms to un-obfuscated terms. This alleviated the issue a little, as
        modders didn’t need to puzzle out what everything did, or what it
        should be called anymore. But why stop there?
        
        Indeed, why did they even bother with this half-measure in the first
        place?
       
          naruhodo wrote 2 hours 7 min ago:
          If my memory serves, the stated justification for not going open
          source was copyright and trademark protection. Apparently, that is no
          longer a concern, if it ever really was.
          
          Now I'm bracing for them to drop support for Java Edition entirely
          and go strictly Bedrock in a couple of years.
          
          Perhaps Minecraft 2.0 is finally nearing release.
       
          ethmarks wrote 12 hours 16 min ago:
          Perhaps it was easier? There were also probably legal reasons.
       
          matteotom wrote 12 hours 29 min ago:
          Were the mappings only a subset of the obfuscated
          classes/methods/etc?  Basically making the mapping a sort of public
          API
       
          Macha wrote 14 hours 24 min ago:
          A lot of mod tooling was built around the obfuscated or community
          names for those APIs.
       
            tantalor wrote 8 hours 50 min ago:
            Hyrum's Law
       
            quamserena wrote 11 hours 16 min ago:
            Still is for legal reasons. Also the community names (Yarn) come
            with javadoc that actually explains what the function does
       
            gs17 wrote 13 hours 42 min ago:
            I wouldn't worry too much about it breaking anything with how
            version-specific modding already is. And by the time the full
            release is out, I'm sure every tool will have updated based on the
            new names from the snapshots.
       
          rirze wrote 14 hours 29 min ago:
          If I had to guess, the legal team's brains started melting when
          de-obfuscation was mentioned.
       
        armchairhacker wrote 15 hours 10 min ago:
        Minecraft, Roblox, Geometry Dash, Trackmania...these are games that
        succeeded because of their communities. Alone, they don't provide much
        for the average player, but creative players build interesting things
        that appeal to everyone.
        
        I think one of the reasons Vision Pro and metaverse have been
        struggling is because their engines are bad. Not just locked down, but
        hard to develop on (although I don't have personal experience, I've
        heard this about VR in general). If you want to build a community, you
        must make development easy for hobbyists and small users*. I believe
        this has held even for the biggest companies, case in point the
        examples above.
        
        * Though you also need existing reputation, hence small companies
        struggle to build communities even with good engines.
       
          andrewxdiamond wrote 4 hours 32 min ago:
          I would throw Rimworld into that list as well. A fine game by itself,
          if a bit simplistic. But the mods make the game massively
          customizable and lets the player do basically whatever they want
       
          haunter wrote 11 hours 38 min ago:
          > these are games that succeeded because of their communities
          
          To me an interesting thing when a game succedes despite its
          community. As if people can endure a lot of toxicity as long as the
          game is good
       
          bsimpson wrote 12 hours 1 min ago:
          Fortnite has been attempting to be a platform rather than a game for
          years now.  (Epic Games Store too, so you ridiculously have to launch
          one then the other before you can pick your game.)
          
          Curious to know to what degree the "Creative" maps have fueled
          Fortnite's success as opposed to the 1st and 2nd party developed
          experiences.
       
          pugworthy wrote 12 hours 7 min ago:
          I think Valve wouldn't exist as they do now except for modding. 
          Counter-Strike's popularity must have driven a lot of purchases early
          on, which allowed Valve the freedom to do things at their own pace
          rather than under pressure from publishers.
       
          YesBox wrote 12 hours 37 min ago:
          I disagree with regard to Minecraft (only game I played in that
          list). I bought the game while it was in alpha and even then the
          single player experience was outstanding and sucked me in. I still
          have vivid memories from 15+ years ago. The balance of creativity and
          survival (and friggen creepers) was perfect.
          
          I dont think I am alone in saying this. IIRC the game was making
          millions while still in alpha.
       
            joemi wrote 9 hours 23 min ago:
            Yeah, I think Minecraft definitely still would have been a hit
            without any modding. Though it might not have become the absolute
            juggernaut that it is now without it -- it's hard to say for sure.
       
          kvam wrote 13 hours 6 min ago:
          Agree! We saw this a lot. Launching with the Quest 3, we were often
          the first company to do X, Y, Z despite being months after new
          features had been released in the SDKs because they were poorly
          documented (and often even conflicting).
          
          Diverging even slightly from the demo use case would quickly feel
          like Sisyphus; so close, but never succeeding in getting over the
          hill.
          
          Good for marketing in certain cases (to be the first), but bad for
          the community of builders
       
          jjmarr wrote 13 hours 29 min ago:
          Roblox had a phenomenal engine when it came out and its terrain
          destruction is still unmatched.
          
          In 2006, I could download the Roblox app and bam, I would play
          thousands of 3D multiplayer games for free that loaded near
          instantly. With fully destructible buildings and dynamic terrain.
          Somehow I didn't get viruses from remote code execution.
          
          That was groundbreaking at the time. In that era, I'd have to
          download Steam, buy individual games like Counterstrike, and the
          wackiest thing would be the "surf" gamemode. Most games I'd buy on
          CDs. I certainly couldn't knock down entire buildings with grenades.
          
          If you contrast with Second Life/Habbo Hotel, you could walk around
          and talk to people I guess?
          
          The community that spring up around it eventually carried it into
          total dominance of gaming for American children, but the basic parts
          of the engine like "click button, load into game, blow stuff up" were
          a decade ahead of the curve.
          
          Also Blockland cost money, Roblox was free.
       
            throwaway89201 wrote 10 hours 44 min ago:
            > I'd have to download Steam, buy individual games like
            Counterstrike, and the wackiest thing would be the "surf" gamemode.
            
            It's interesting that you chose Counter-Strike as an example, as
            that is a Half Life mod itself, and by 2006 there was a large
            ecosystem [1] of Half Life modifications using Metamod and AMX Mod
            (X). The last one in a weird C-like language called Small or Pawn,
            which was my first programming language that I made serious
            programs with.
            
            Especially the War3FT mod where users gained server-bound XP in
            combination with a reserved slots plugins which allowed top-XP
            users to join a full server really created a tight community of
            players on my tiny DSL home-hosted server.
            
   URI      [1]: https://www.amxmodx.org/compiler.php?mod=1&cat=0&plugin=&a...
       
            skeaker wrote 11 hours 0 min ago:
            In many ways it remains ahead of the curve. Kids that grow up
            making games in Roblox rarely survive the jump to a dedicated
            engine because Roblox is just so much easier to develop for in
            nearly every aspect. One big thing I've heard is that instantly
            getting working, robust online multiplayer by default baked into
            the engine is a major plus.
       
              ehnto wrote 5 hours 32 min ago:
              I would call multiplayer out of the box the defining feature for
              sure.
              
              It's challenging to get networking right, and the effort required
              doesn't get all that much smaller just because your game is
              smaller.
              
              Most engines do come with a networking framework or layer these
              days but Roblox gets to assume a bunch of things an engine can't,
              and as such provide a complete solution out of the box.
       
                jjmarr wrote 5 hours 3 min ago:
                They originally accomplished this with an interesting approach
                to netcode you couldn't do today.
                
                Everything was replicated in the client and server. So you
                could open Cheat Engine, modify your total $$$ on the client,
                and it would propagate to the server and everyone else playing.
                
                They only fixed this in 2014 with
                FilteringEnabled/RemoteFunctions but that was opt-in until 2018
                and fully rolled out in 2021 (breaking most classic Roblox
                games). This also made games much harder to develop.
       
            Sweepi wrote 12 hours 26 min ago:
            how big was Roblox in 2006?
            
            > In that era, I'd have to download Steam, buy individual games
            like Counterstrike, and the wackiest thing would be the "surf"
            gamemode.
            
            You could also play any Source mod. Also WC3 maps were insane at
            the time.
       
              jjmarr wrote 9 hours 55 min ago:
              Roblox was tiny in 2006. I joined in 2008. It was still leading
              the market.
              
              To give an example, Roblox added user-created cosmetic t-shirts
              as a way to monetize the platform. Developers immediately
              scripted their games to recognize special "VIP t-shirts" that
              would provide in-game benefits. And quickly created idle games
              called "tycoons" where you could wait 2 hours to accumulate money
              to buy a fortress, or buy the t-shirt to skip all that.
              
              I don't think there were any modding systems with mtx support.
       
          mminer237 wrote 13 hours 32 min ago:
          All of those were also all $0–$20. It's kind of a chicken and egg
          problem to build a user and developer community. Games have to build
          a strong playerbase with limited content, then enough gamers have to
          be invested enough to become creators. Enough have to be able to
          actually pull off the development, yes, but I think the even bigger
          problem is that they'll never have a reason to with the small number
          of users inherent with platforms that cost $500–$3500 for special
          hardware to get onto.
       
          stronglikedan wrote 13 hours 48 min ago:
          The Meta Quest is very easy to develop for. There's tons of games of
          all caliber from solo devs up to full studios. The reason the
          Metaverse is failing is because no one wants it, even though they
          keep shoving it down people's throats. VR gamers just want to play
          games, not dick around in "worlds". Meta is tone deaf to this.
       
            cubefox wrote 12 hours 58 min ago:
            There isn't yet a game that involves all the players in one huge
            level, without shards, but there might be eventually. Current game
            engines don't support levels with that many players simultaneously.
            There is an interview with Neal Stephenson and Tim Sweeney on the
            Metaverse where Sweeney says supporting massive multiplayer is what
            he plans for Unreal Engine 6: [1] > So one of the big efforts that
            we're making for Unreal Engine 6 is improving the networking model,
            where we both have servers supporting lots of players, but also the
            ability to seamlessly move players between servers and to enable
            all the servers in a data center or in multiple data centers, to
            talk to each other and coordinate a simulation of the scale of
            millions or in the future, perhaps even a billion concurrent
            players. That's got to be one of the goals of the technology.
            Otherwise, many genres of games just can never exist because the
            technology isn't there to support them. And further, we've seen
            massively multiplayer online games that have built parts of this
            kind of server technology. They've done it by imposing enormous
            costs on every programmer who writes code for the system. As a
            programmer you would write your code twice, one version for doing
            the thing locally when the player's on your server and another for
            negotiating across the network when the player's on another server.
            Every interaction in the game devolves into this complicated
            networking protocol every programmer has to make work. And when
            they have any bugs, you see item duplication bugs and cheating and
            all kinds of exploits. Our aim is to build a networking model that
            retains the really simple Verse programming model that we have in
            Fortnite today using technology that was made practical in the
            early 2000's by Simon Marlow, Simon Peyton Jones and others called
            Software Transactional Memory.
            
   URI      [1]: https://www.matthewball.co/all/sweeneystephenson
       
            criddell wrote 13 hours 12 min ago:
            I don't think they're tone deaf, they just know that inexpensive
            gaming headsets can't make them enough money. They've invested
            something like $100 billion into VR and "only" sold 20 million
            headsets The revenue generated annually is almost nothing.
       
          astrobe_ wrote 13 hours 58 min ago:
          You can add the Flight Simulator series to the list, which spawned a
          vast ecosystem of add-ons, both free and commercial.
          
          I believe though, that what you actually need as a big or small
          company, is good game first and foremost; the engine is secondary.
          When the community around a game reaches a critical mass, the very
          small percentage of its members who have the skills to modify things
          becomes significant as well.
          
          For instance, Richard Burns Rally was not intended to be modded at
          all, yet the fans added new cars, new tracks, online scoreboards,
          etc.
          
          In the Luanti [1] community (a voxel games engine/platform, designed
          to be moddable nearly from the start), one begins to see something
          similar as well: notable games gets mods, others don't (the former
          default game is a particular case; it is not exactly good but go tons
          of mods because of its status, and games based on it benefit from
          that ecosystem). Yet all use the same engine (perhaps Roblox is
          similar in that respect, I'm not sure if they have "reified" whole
          games like Luanti did).
          
   URI    [1]: https://www.luanti.org/
       
            vintermann wrote 1 hour 49 min ago:
            Not sure if I understand exactly what you mean by reified, but
            Minecraft has a ton of minigames based on server-side mods which
            clone other popular games. Sometimes popular Minecraft
            minigames/mods even get implemented as standalone games.
            
            Battle royale games were almost certainly heavily inspired by the
            Minecraft minigame which predates them. Factorio has the old
            industrialcraft mod as an acknowledged inspiration. Vintage Story
            is basically standalone Terrafirmacraft (and by a dev from that, as
            I recall).
       
            nkrisc wrote 9 hours 39 min ago:
            The thing is, Minecraft of 10 years ago (or more) wasn’t even
            really that great of a game. It wasn’t bad, I enjoyed it, but it
            wasn’t that great.
            
            What it did do right was be very open-ended and be conducive to
            modding, both of which were amplified by multiplayer capabilities.
            
            I would wager that most of the fun players have had in Minecraft is
            from experiences that were built on top of Minecraft, not from the
            game’s own gameplay.
       
              vintermann wrote 1 hour 41 min ago:
              It was, as far as I can tell, the first game which was infinitely
              procedurally generated yet changeable. Huge procedurally
              generated games have a long history but in e.g. Elite or Seven
              Cities of Gold you couldn't modify the world in any meaningful
              way. The closest is probably dwarf fortress, but there the
              modifiable world is pretty small (or was when Minecraft came
              out).
              
              That made it a great game. I think it was inevitable that the
              first game which combined these two, infinite procedural worlds
              and free modifiability, would be a huge success. Worth noting
              also that infiniminer, despite the name, didn't have the infinite
              part worked out!
       
            Nition wrote 12 hours 11 min ago:
            I'm always impressed when I check it, that flightsim.com is still
            running, and still has everyone's mods going right back to the 90s.
            Just in case anyone still wants the poor quality airport I uploaded
            for Flight Simulator 2000 twenty-something years ago.
       
          maeln wrote 14 hours 7 min ago:
          > I think one of the reasons Vision Pro and metaverse have been
          struggling is because their engines are bad. Not just locked down,
          but hard to develop on (although I don't have personal experience,
          I've heard this about VR in general). If you want to build a
          community, you must make development easy for hobbyists and small
          users*. I believe this has held even for the biggest companies, case
          in point the examples above.
          
          Unity and UE have pretty good VR support nowadays, and even godot is
          getting there. Plus making a custom engine for VR was never that much
          harder than for a normal 3D game (well, once some API like OpenXR got
          normalized).
          
          The big issue with VR right now is that it is more costly to develop
          for than normal apps and games, while having less user. It makes it a
          hard sell. For some indie dev, I allow them to profit from a market
          that is not yet saturated (right now, with no good marketing, you
          just get buried on steam, any app store, etc).
          There are many factors that make it more costly, like having to
          support several mobility and accessibility features for games (for
          example smooth and jump locomotion, reduce fov when moving the view,
          etc), that you usually don't have to care for in other plateform. 
          And there is the issue of interactivity. UX (and in many ways UI) is
          still very far from ideal. Most VR apps and games just try things
          out, but there is still a world of pattern and good practice to build
          up. This makes using anything VR often an annoying experience.
          Especially since some issue can be an absolute no-go for some user.
          As an example, displaying subtitle in a 6dof environment can be
          tricky. Some game put it at a fix point of your view, which can cause
          nausea and readability problem, some move still follows the head/view
          but with a delay, which reduce nausea issue but can be distracting
          and also has readability issue (the subs can go out of view).
       
            Nextgrid wrote 8 hours 9 min ago:
            I think there’s a difference between “indie dev” aka either
            an experienced SWE trying it or some really motivated person with
            an established identity, credit card & income stream and a
            kid/teenager tinkering around.
            
            In a “free for all” setting, anyone (including kids) could
            potentially learn enough (or even just download pre-made scripts)
            and try their hand at modding software/games.
            
            In a modern situation with developer registration, etc someone
            would need some sort of established identity, potentially going
            through age verification, paying some nominal fee for a license,
            accepting an EULA and so forth. This is a huge barrier to entry for
            kids/teenagers just wanting to tweak the game experience for
            themselves/their friends. I remember my first time trying to
            install Apache on Windows I guess around 2008-09, and the (very
            well-made!) install wizard asked me for a domain name. At the time
            I wasn’t aware of how DNS/etc worked and was scared to continue,
            thinking I would either take up some other company’s name or not
            being “allowed” to use a random name I’d pick and get
            myself/my parents in trouble.
            
            All these “regulated” ecosystems make it scarier for
            well-meaning but inexperienced devs to get started, while doing
            little to deter dedicated attackers who know the game and know
            actual cybercrime enforcement is both lacking and trivial to defeat
            in any case.
            
            The “free for all” environment made me the developer & sysadmin
            (or DevOps person as the techbros call it) I am today despite no
            formal training/education and I am sad to see this opportunity go
            for the younger generations.
       
          jon-wood wrote 14 hours 26 min ago:
          The other reason being that nobody is asking for The Metaverse, and
          definitely don’t want to spend huge chunks of cash on a funny hat
          to wear in order to access it.
       
            kragen wrote 14 hours 6 min ago:
            A lot of people seem to be spending huge chunks of cash on enormous
            monitors, dual monitors, curved monitors, etc., and the appeal of
            that is mostly that it gets you a little bit closer to wearing a
            head-mounted display.
       
              mikkupikku wrote 13 hours 50 min ago:
              Monitors load my desk, not my neck.
       
              shermantanktop wrote 14 hours 1 min ago:
              Makes sense that a primate with front-facing eyes that is both
              predator and prey would prefer to look at things at arms length
              rather than encase their head in a cocoon that is designed to
              block environmental awareness.
       
                cubefox wrote 13 hours 14 min ago:
                Depends on what you mean with "environmental" awareness.
                Awareness of reality or virtuality?
       
                kragen wrote 13 hours 56 min ago:
                That's a function of what software you have running on it.
       
            beeflet wrote 14 hours 18 min ago:
            Some people are asking for The Metaverse. Currently, the entire
            VRChat userbase. But you're right that there is not a large
            population of people willing to throw cash at it outside of a
            minority of virtual furries
       
              kragen wrote 14 hours 5 min ago:
              Probably half the people who grew up with Instagram cat filters
              are furries now.
       
                tmtvl wrote 12 hours 53 min ago:
                I am now instantly reminded of that clip of the cat whose human
                filter wasn't working. 'I'm not a cat', indeed.
       
              kg wrote 14 hours 15 min ago:
              Critically, VRChat works on desktop (though it's an inferior
              experience), and you can incrementally enhance your experience
              with it by doing things like webcam face/hand tracking instead of
              buying an expensive headset.
       
                rcxdude wrote 6 hours 39 min ago:
                It's also very highly customisable without being monetized out
                the wazoo, allows you to host your own servers, and in general
                avoids the incredibly bland corporate image that meta projects.
                
                (Meta, I think, fails to understand that the people that most
                want a virtual space to interact with, to the point of putting
                up with the limitations of VR tech, mostly want to not look
                like regular people in that space, because they keep pushing a
                vision that seems to be a uniform 'normality' even more extreme
                than the real world)
       
                  ehnto wrote 5 hours 25 min ago:
                  I think they also would not accept that variability, in both
                  avatars and spaces. Even VRChat developers have struggled
                  with what users do and frankly as a company that makes total
                  sense. It's a wild west which is great for a community,
                  nightmarish for a company with moderation liabilities,
                  copyright concerns etc.
                  
                  The VRChat community should consider forming and funding an
                  open source group to re-implement the platform as it will
                  eventually get regulated.
                  
                  For what it's worth I don't use VRChat, I've just been around
                  the internet for long enough to know the pattern.
       
                hnuser123456 wrote 12 hours 28 min ago:
                VRChat is also consistently active with people making new
                worlds/maps, avatars, etc. There also used to be a client
                modding scene with e.g. melonloader but that got cracked down
                on around 2022. The "metaverse" however, does it even exist? Is
                there a vrchat-like, meta-built social vr environment available
                on quest hardware?
       
                  ehnto wrote 5 hours 21 min ago:
                  No idea, which is notable because I boot into my Meta Quest 3
                  most nights for sim racing. You'd think I'd have seen it if
                  they were pushing it.
                  
                  I am glad they don't, the headset should be a general
                  computing device first and foremost, launching apps you
                  choose to participate in.
       
                armchairhacker wrote 13 hours 44 min ago:
                Examples that demonstrate why lockdown hurts ease-of-use and
                therefore non-intrinsically hurts community. Meta or Apple may
                not realize people want on desktop want to use VR software;
                they may want people to spend more (although a smaller
                community may generate less overall revenue); they may want
                people to have the “true” experience (their idea of what
                the users want, instead of what they actually want); they may
                not want to spend the budget and expertise to develop webcam
                face/hand tracking.
                
                If they released a cheap or impressive enough VR headset, I
                doubt desktop or face-tracking would matter. But I think the
                next best thing, a decent headset with an open platform that
                enabled such things, would’ve saved them.
       
          Mr_Bees69 wrote 14 hours 33 min ago:
          UE5 is decent for vr.
       
          bigyabai wrote 14 hours 38 min ago:
          > Not just locked down
          
          The lockdown is a big part of it, though. The industry has
          cross-platform VR/AR SDKs like OpenXR that Apple refuses to
          implement. A big reason their platform isn't supported day-and-date
          with multiplat VR releases is Apple's insistence on reinventing the
          wheel with every platform they make.
          
          If the rumors of Valve's VR headset being able to run flatscreen
          games are true, it's more-or-less Game Over for the Vision Pro. The
          appetite for an iPad-like experience with six DOF is already handled
          by much cheaper machines.
       
            armchairhacker wrote 14 hours 19 min ago:
            Many creative people don’t care about being “locked in”,
            since they already make mods that can be broken by updates (and
            often are, unintentionally) and threatened legally (for violating
            IP and DRM). I think the much bigger problem with locked-down
            engines is simply that the lockdown methods used make it harder to
            develop on them.
       
       
   DIR <- back to front page