Live data from Hacker News

Minecraft removing obfuscation in Java Edition

minecraft.net

41–50 of 478 posts

Re: Minecraft removing obfuscation in Java Edition

#41
post #24

Earlier quoted context omitted.

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

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.

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.

Re: Minecraft removing obfuscation in Java Edition

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

Re: Minecraft removing obfuscation in Java Edition

#43
post #13

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

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.

Re: Minecraft removing obfuscation in Java Edition

#44
post #18
post #16

Earlier quoted context omitted.

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

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.

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.

Re: Minecraft removing obfuscation in Java Edition

#45
post #10

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

A lot of mod tooling was built around the obfuscated or community names for those APIs.

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.

Re: Minecraft removing obfuscation in Java Edition

#46

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

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

Re: Minecraft removing obfuscation in Java Edition

#47

Earlier quoted context omitted.

Probably virtually the same. If I recall, the "obfuscation" was mostly mangling

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

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.

Re: Minecraft removing obfuscation in Java Edition

#48
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/

Re: Minecraft removing obfuscation in Java Edition

#49

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

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.

Re: Minecraft removing obfuscation in Java Edition

#50

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.

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

Post reply on HN