Minecraft removing obfuscation in Java Edition

minecraft.net

955 points by SteveHawk27 a day ago


NelsonMinar - a day 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.

AyanamiKaine - 10 hours ago

There is always one thing that I found so facintating with the modding scene in Minecraft. Because Minecraft does not have a modding api but the java byte code can be changed. People simply developed their own way of creating an API. There are 2 main modding APIs. Forge/Neo-Forge and Fabric.

[1]Fabric uses Mix-ins while [2]Forge uses a more event based system that is added to the source code of minecraft where they add hooks into events that users can use.

To me its just incredible. Its not often that I see that users own an abstraction instead of the developers.

I wonder from a modding perspective would it be better if all public methods are just the API users can call and they themselves create a way for mods to exist?

[1] https://wiki.fabricmc.net/tutorial:mixin_introduction [2] https://docs.minecraftforge.net/en/latest/concepts/lifecycle...

bob1029 - 13 hours ago

Obfuscating Minecraft code doesn't make much sense to me from an IP protection angle. It is one of the easier games to build from scratch once you see how it plays. Most of the magic is emergent behavior between many simple rule systems. Nothing in that source code would be much of a revelation. It's not like there's a nanite implementation hiding in there somewhere. It's mostly boring stuff like defining how pig or sheep walk through the scene and respond to various goals. The "scariest" part of Minecraft tech is probably chunk management.

giancarlostoro - a day 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.

ojosilva - 6 hours ago

I hope Claude Code follows the same path. It's just wrong to have such a key tool in your development toolchain obfuscated. Changes to CC reflect in the way I work. I've been modding the app for ever now. Something as simple as evalling prompt changes, or finding ways to optimize context. Just make it OSS, like Codex. To add insult to injury, Claude has coined some key industry standards, such as MCP, now Skills. It also supports plugins, inviting others to release their plugins as OSS on Github [1], while their core remains proprietary.

[1] https://www.anthropic.com/news/claude-code-plugins#:~:text=P...

armchairhacker - a day 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.

pwdisswordfishy - a day 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?

RGBCube - a day 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.

hackthemack - a day 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.

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/

Chihuahua0633 - 6 hours ago

I have to assume this runs the risk of opening the floodgates for potential vulnerabilities to be discovered now. Hopefully they're prepared to start working on a bunch of new bug reports.

nxobject - 20 hours 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.

xxmarkuski - 4 hours ago

Minecraft modding has done so much to get young people into CS. I started learning Java when I was 10 because I wanted to do modding. At university, I met so many people who had the same experience. The tooling developed for Minecraft modding is world-class and better than what is developed during PhDs. It's very advanced, and people internalized the JVM and Java spec. One problem, though, is that Mojang's updates often change much of the foundation, and upgrading mods is very time-intensive. Mojang announced in 2012 that an official modding API is in the works. This is another step.

64718283661 - a day ago

The community obfuscation mappings unrestrictively licensed. The Microsoft ones are not. It's a trap.

nullfield - 16 hours 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”.

kevincox - a day 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.

iqandjoke - 6 hours ago

Hope the rename would not cause unintentional file deletion accident like Japan one. https://news.ycombinator.com/item?id=29734021

PaulKeeble - a day 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.

zimpenfish - 12 hours ago

On the one hand, great; should hopefully mean the monkey-patching by mods isn't quite as fragile as it is once you get into a decent number of installed mods.

On the other, I'd assume this means that any official modding support is now stone dead and will never happen.

zaoui_amine - 4 hours ago

Good move. Makes modding easier for everyone.

bityard - a day 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?

huhtenberg - a day ago

Ha, this explains then why MSFT dropped 4% after hours!

time4tea - 21 hours 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.

spullara - a day ago

You know what would make it even easier? Releasing the source code with a license that allows for modding.

ReFruity - a day 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.

hedora - 7 hours ago

We paid for minecraft java edition and have no desire to use the online features.

Microsoft logs us out every damn time we close the software, which means my grade schoolers have my (now guessable) MS account password (and I scorch-earthed the account, because this is so dumb I won’t trust or use their crap moving forward).

Has anyone figured out how to pirate the binaries? I’d like to remove the yellow sticky note with the password from my monitor.

flykespice - 7 hours ago

Does removing obfuscation implies any performance speed-up for Minecraft Java, or were the obfuscations done in Java with zero-cost?

LelouBil - a day ago

Maybe they'll publish javadoc jars down the line !

charcircuit - a day 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.

nisegami - a day ago

I consider Microsoft to be genuinely evil as an institution, but this is still nice to see.

Traubenfuchs - a day ago

I'd like to see a benchmark between the obfuscated and non obfuscated version.

lenerdenator - 7 hours ago

Could just go find the Infiniminer source code if you really wanted to have seen it before now.

SurceBeats - 21 hours ago

These are definitely good news!!!

James_K - a day 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.

txrx0000 - a day 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.

nurettin - a day 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.

squigz - a day ago

For those in the modding scene, what difference, if any, will this make? Will this enable anything that was previously not possible?

ika9os - 8 hours ago

[dead]

monika_bhuva - 17 hours ago

[dead]

ika9os - a day ago

[flagged]

taccal - a day ago

[flagged]

sylware - 11 hours ago

Heard "AI" can de-obfuscate very easily web javascript.

Probably the same with java. No point doing so with our beyond fast and powerful computers.

Alex4386 - 18 hours 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.