[HN Gopher] Minecraft removing obfuscation in Java Edition
       ___________________________________________________________________
        
       Minecraft removing obfuscation in Java Edition
        
       Author : SteveHawk27
       Score  : 446 points
       Date   : 2025-10-29 16:12 UTC (6 hours ago)
        
 (HTM) web link (www.minecraft.net)
 (TXT) w3m dump (www.minecraft.net)
        
       | armchairhacker wrote:
       | 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.
        
         | bigyabai wrote:
         | > 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:
           | 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.
        
         | Mr_Bees69 wrote:
         | UE5 is decent for vr.
        
         | jon-wood wrote:
         | 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.
        
           | beeflet wrote:
           | 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
        
             | kg wrote:
             | 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.
        
               | armchairhacker wrote:
               | 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.
        
               | hnuser123456 wrote:
               | 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?
        
             | kragen wrote:
             | Probably half the people who grew up with Instagram cat
             | filters are furries now.
        
               | tmtvl wrote:
               | I am now instantly reminded of that clip of the cat whose
               | human filter wasn't working. 'I'm not a cat', indeed.
        
           | kragen wrote:
           | 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.
        
             | shermantanktop wrote:
             | 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.
        
               | kragen wrote:
               | That's a function of what software you have running on
               | it.
        
               | cubefox wrote:
               | Depends on what you mean with "environmental" awareness.
               | Awareness of reality or virtuality?
        
             | mikkupikku wrote:
             | Monitors load my desk, not my neck.
        
         | maeln wrote:
         | > 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).
        
         | astrobe_ wrote:
         | 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).
         | 
         | [1] https://www.luanti.org/
        
           | Nition wrote:
           | 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.
        
           | nkrisc wrote:
           | 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.
        
         | stronglikedan wrote:
         | 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.
        
           | criddell wrote:
           | 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.
        
           | cubefox wrote:
           | 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:
           | https://www.matthewball.co/all/sweeneystephenson
           | 
           | > 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.
        
         | mminer237 wrote:
         | 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.
        
         | jjmarr wrote:
         | 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.
        
           | Sweepi wrote:
           | 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:
             | 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.
        
           | skeaker wrote:
           | 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.
        
           | throwaway89201 wrote:
           | > 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.
           | 
           | [1] https://www.amxmodx.org/compiler.php?mod=1&cat=0&plugin=&
           | aut...
        
         | kvam wrote:
         | 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
        
         | YesBox wrote:
         | 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:
           | 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.
        
         | pugworthy wrote:
         | 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.
        
         | bsimpson wrote:
         | 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.
        
         | haunter wrote:
         | > 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
        
       | pwdisswordfishy wrote:
       | > 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?
        
         | rirze wrote:
         | If I had to guess, the legal team's brains started melting when
         | de-obfuscation was mentioned.
        
         | Macha wrote:
         | A lot of mod tooling was built around the obfuscated or
         | community names for those APIs.
        
           | gs17 wrote:
           | 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.
        
           | quamserena wrote:
           | Still is for legal reasons. Also the community names (Yarn)
           | come with javadoc that actually explains what the function
           | does
        
         | matteotom wrote:
         | Were the mappings only a subset of the obfuscated
         | classes/methods/etc? Basically making the mapping a sort of
         | public API
        
         | ethmarks wrote:
         | Perhaps it was easier? There were also probably legal reasons.
        
       | giancarlostoro wrote:
       | 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.
        
         | throwaway48476 wrote:
         | More games should be open source like doom. It doesnt effect
         | the art assets which are still copyrighted.
        
           | dontlaugh wrote:
           | Amusingly, Minecraft is a counter-example. It has very few
           | assets and they are hardly essential to the experience.
        
             | duskwuff wrote:
             | There are _so many_ third-party texture packs for Minecraft
             | that losing access to the official ones would hardly even
             | be an obstacle.
        
             | xboxnolifes wrote:
             | The music and sounds play a large part into the experience
             | though, and are much harder to replace than the textures.
        
               | tmtvl wrote:
               | 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.
        
               | gbear605 wrote:
               | 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.
        
               | speedgoose wrote:
               | 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.
        
               | ollien wrote:
               | It's even recognized by the Library of Congress!
               | 
               | https://www.loc.gov/static/programs/national-recording-
               | prese...
        
               | xigoi wrote:
               | 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.
        
               | sodapopcan wrote:
               | 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!
        
         | kragen wrote:
         | It sounds like you might be looking for Minetest/Luanti.
        
           | ajkjk wrote:
           | 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:
             | It's much less appealing because it's much harder to mod.
        
               | willis936 wrote:
               | It's much more appealing because it has a much more
               | vibrant modding community.
        
               | kragen wrote:
               | Community can go a long way towards compensating for
               | worse technology, yeah.
        
               | nmilo wrote:
               | Community is the entire goal. The technology just has to
               | meet some minimum threshold. You know any 13 year olds
               | playing Minetest?
        
               | kragen wrote:
               | I don't know any 13-year-olds, but I hear that a lot of
               | them do play Minetest.
        
               | unleaded wrote:
               | 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.
        
         | mikkupikku wrote:
         | 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.
        
         | NelsonMinar wrote:
         | 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.
         | 
         | https://web.archive.org/web/20100301103851/http://www.minecr...
        
           | ikamm wrote:
           | Notch has said he would do many things and rarely follows
           | through with them. I'm still waiting for 0x10c.
        
             | ecshafer wrote:
             | He sold the game to Microsoft, his promises kind of don't
             | matter anymore.
        
               | ikamm wrote:
               | I think you meant to reply to the parent comment, I never
               | mentioned Minecraft
        
             | einsteinx2 wrote:
             | > Once sales start dying
             | 
             | Has that part ever happened?
        
           | ntoskrnl_exe wrote:
           | 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.
        
         | OkayPhysicist wrote:
         | 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.
        
       | Traubenfuchs wrote:
       | I'd like to see a benchmark between the obfuscated and non
       | obfuscated version.
        
         | internetter wrote:
         | Probably virtually the same. If I recall, the "obfuscation" was
         | mostly mangling
        
           | Traubenfuchs wrote:
           | 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.
        
             | wtallis wrote:
             | 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:
               | 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.
        
             | xxs wrote:
             | 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:
               | 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.
        
             | circuit10 wrote:
             | For Minecraft it's just removing names and replacing them
             | with random strings
        
           | SkiFire13 wrote:
           | 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.
        
         | PaulKeeble wrote:
         | 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.
        
         | xxs wrote:
         | 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
        
       | squigz wrote:
       | For those in the modding scene, what difference, if any, will
       | this make? Will this enable anything that was previously not
       | possible?
        
         | the_gipsy wrote:
         | Should make it easy to have mods running on latest releases.
        
           | squigz wrote:
           | But the only version that matters is 1.20.1!
        
             | Modified3019 wrote:
             | Speak for yourself, Create supports 1.21.1 (neoforge) which
             | is what my bloated and fragile mess of a mod pack is built
             | on.
        
             | xboxnolifes wrote:
             | I think you typoed 1.7.10
        
               | ZeWaka wrote:
               | I think you typed b1.7.3
        
         | VikingCoder wrote:
         | 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:
           | They were already releasing official mappings.
        
         | axus wrote:
         | 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.
        
         | yrxuthst wrote:
         | 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.
        
       | kevincox wrote:
       | 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.
        
       | PaulKeeble wrote:
       | 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.
        
       | hackthemack wrote:
       | 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.
       | 
       | https://content.luanti.org/packages/Wuzzy/mineclone2/
       | 
       | 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.
       | 
       | https://content.luanti.org/packages/isaiah658/zoonami/
        
         | anthk wrote:
         | Zoonami will achieve what Tuxemon didn't.
        
         | cachius wrote:
         | https://github.com/luanti-org/luanti
        
       | NelsonMinar wrote:
       | 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.
        
         | krackers wrote:
         | 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.
        
           | bitexploder wrote:
           | 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 :)
        
           | 6SixTy wrote:
           | 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.
        
           | nightpool wrote:
           | 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:
             | 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.
        
               | nightpool wrote:
               | 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:
               | These tools sound very powerful, could they find use for
               | other Java codebases?
        
               | ZeWaka wrote:
               | They've also been working with a lot of modders on the
               | rendering engine over the past year or two.
        
           | Nition wrote:
           | I remember Notch saying in 2010 that he planned to add an
           | official modding API, but it never actually happened.
           | 
           | ---
           | 
           | Edit: https://web.archive.org/web/20100708183651/http://notch
           | .tumb...
        
             | nightpool wrote:
             | Data packs were released in October 2017! And we had
             | command blocks in 2012 for custom maps
        
           | Philip-J-Fry wrote:
           | 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.
        
         | 1313ed01 wrote:
         | 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?
        
           | trenchpilgrim wrote:
           | Yup very common to take a popular minecraft mod, insert
           | malware, rehost it, and seo your way into getting downloads.
        
           | superb_dev wrote:
           | 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:
             | 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
        
           | SkiFire13 wrote:
           | > 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.
        
           | xp84 wrote:
           | 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.
        
             | mikkupikku wrote:
             | 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.
        
             | yrxuthst wrote:
             | 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.
        
           | quamserena wrote:
           | 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:
             | Bedrock has proper mod support and you can program with
             | Typescript.
        
               | quamserena wrote:
               | Better than datapacks overall but lacks a way to plug
               | into the rendering pipeline or make custom dimensions.
               | Java mods have more capabilities
        
           | pdntspa wrote:
           | Yes, much like how most software for PC has been written
           | since the beginning of time?
        
         | userbinator wrote:
         | 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.
        
           | pphysch wrote:
           | 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:
             | Said online multiplayer [0].
             | 
             | The devs also wrote a write-up here about how they handle
             | the desyncs in netcode [1].
             | 
             | [0] https://slippi.gg/
             | 
             | [1] https://medium.com/project-slippi/fighting-desyncs-in-
             | melee-...
        
           | ed_elliott_asc wrote:
           | 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
        
           | abraae wrote:
           | 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.
        
             | pavo-etc wrote:
             | 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
        
               | Romario77 wrote:
               | 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.
        
             | Quekid5 wrote:
             | > 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.)
        
             | mywittyname wrote:
             | 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.
        
         | ZeWaka wrote:
         | To be fair, since 2019 Mojang has been providing the mappings
         | instead of everyone having to use community-created ones.
        
           | tripplyons wrote:
           | It took me a while to find how to obtain the official
           | mappings, but this article seems to have instructions:
           | https://minescript.net/mappings
           | 
           | According to the article, official mappings can be found
           | here: https://piston-
           | meta.mojang.com/mc/game/version_manifest_v2.j...
        
             | mikkupikku wrote:
             | They're also linked on the wiki page for each release,
             | along with links to the client and server jars:
             | https://minecraft.wiki/w/Java_Edition_1.21.5
        
           | zachrip wrote:
           | Why do they obfuscate if they're just going to provide the
           | mappings?
        
             | kulahan wrote:
             | Well, maybe that's why they're not obfuscating anymore.
        
             | singron wrote:
             | 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.
        
         | Karrot_Kream wrote:
         | 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.
        
       | 64718283661 wrote:
       | The community obfuscation mappings unrestrictively licensed. The
       | Microsoft ones are not. It's a trap.
        
         | poly2it wrote:
         | Does copyright apply to variable names?
        
           | jagged-chisel wrote:
           | Given the Oracle v Google decision, the likely answer is yes.
           | But then there's a fair use argument to be made.
        
         | einsteinx2 wrote:
         | But the whole point is there are no more mappings. I'm not sure
         | what the trap is supposed to be?
        
       | nurettin wrote:
       | 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:
         | 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.
        
       | nisegami wrote:
       | I consider Microsoft to be genuinely evil as an institution, but
       | this is still nice to see.
        
       | spullara wrote:
       | You know what would make it even easier? Releasing the source
       | code with a license that allows for modding.
        
       | RGBCube wrote:
       | 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:
         | > 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.
        
       | txrx0000 wrote:
       | 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.
        
       | LelouBil wrote:
       | Maybe they'll publish javadoc jars down the line !
        
       | bityard wrote:
       | 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?
        
       | James_K wrote:
       | 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:
         | 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.
        
       | huhtenberg wrote:
       | Ha, this explains then why MSFT dropped 4% after hours!
        
       | ReFruity wrote:
       | 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.
        
       | taccal wrote:
       | Stop scrolling! Ini yang lagi hype! jo 777 banyak menangnya!
        
       | charcircuit wrote:
       | 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.
        
       | ika9os wrote:
       | Nnl n Rnl,rtl rtt,rtl ll,,,, B - )( ^ ^ ): - P: -
        
       ___________________________________________________________________
       (page generated 2025-10-29 23:00 UTC)