Live data from Hacker News

Minecraft removing obfuscation in Java Edition

minecraft.net

471–478 of 478 posts

Re: Minecraft removing obfuscation in Java Edition

#471
post #120

Earlier quoted context omitted.

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…

> 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. PrismLauncher, a popular MultiMC fork, has direct integration with Curseforge and Modrint…

Indeed I finally got Prism working and it’s super cool, even installs the dependencies like a package manager!

Re: Minecraft removing obfuscation in Java Edition

#472
post #156

Earlier quoted context omitted.

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

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

I think you're remembering Minecraft in a poor light. Even 10 years ago Minecraft was a great game because even in the base game it encouraged creativity and the community immediately realized the potential to expand that with mods.

Re: Minecraft removing obfuscation in Java Edition

#473

Earlier quoted context omitted.

To be fair, the tooling existed before Minecraft and they published obfuscation maps that map the obfuscated names to the non obfuscated ones.

They only published the mappings starting from 2019.

6 years ago, yes.

Re: Minecraft removing obfuscation in Java Edition

#475

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.

This is fairly common in gaming mods. I wrote some mods myself and had to work with decompiled obfuscated code to find the right hooks, injection points, reverse implementations, etc.

Re: Minecraft removing obfuscation in Java Edition

#476

Earlier quoted context omitted.

Just for the record, I don't think C ever dried up in the embedded space. And the embedded space is waaaay bigger than most people realise, because almost all of it is proprietary, so very little "leaks" onto the public interwebs.

Believe it or not but there is plenty of Java and C++ in the embedded space. It’s far from being a C fortress.

Java in the embedded space? I believe you, but I know nothing about this area. Can you share some examples?

Re: Minecraft removing obfuscation in Java Edition

#477

Earlier quoted context omitted.

I don't understand these complaints. Here is a tiny interface that will do what you need: @FunctionalInterface public interface IPasswordChecker { bool isValid(String password); } Now you can trivially declare a lambda that implements the interface. Example: const IPasswordChecker passwordChecker = (String password) -> password.length() >= 16;

I'm personally rather fond of Java, but even this (or the shorter `Predicate`) still can't compete with the straightforward simplicity of a type along the lines of `string -> bool`.

I bet you are the kind of person who uses "auto" a lot in whatever programming language that you use. For me, context matters because, in the words of Joel Spolsky, (1) you read code much more than you write code, and (2) it is harder to read code than write code. As a result, I always choose the more verbose form when writing code that other people will read.

Re: Minecraft removing obfuscation in Java Edition

#478

Earlier quoted context omitted.

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

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

now if they could just move the npc behavior and pathing off the main thread, life would be grand
Post reply on HN