Live data from Hacker News

Minecraft removing obfuscation in Java Edition

minecraft.net

141–150 of 478 posts

Re: Minecraft removing obfuscation in Java Edition

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

Re: Minecraft removing obfuscation in Java Edition

#143
post #137

Earlier quoted context omitted.

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.

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

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

Re: Minecraft removing obfuscation in Java Edition

#144
post #86

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

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

Re: Minecraft removing obfuscation in Java Edition

#145
post #53

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…

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

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

Re: Minecraft removing obfuscation in Java Edition

#146
post #94

Earlier quoted context omitted.

To be fair, since 2019 Mojang has been providing the mappings instead of everyone having to use community-created ones.

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

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

Re: Minecraft removing obfuscation in Java Edition

#147

Earlier quoted context omitted.

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

Bedrock has proper mod support and you can program with Typescript.

Better than datapacks overall but lacks a way to plug into the rendering pipeline or make custom dimensions. Java mods have more capabilities

Re: Minecraft removing obfuscation in Java Edition

#148
post #73

Earlier quoted context omitted.

It's much more appealing because it has a much more vibrant modding community.

Community can go a long way towards compensating for worse technology, yeah.

Community is the entire goal. The technology just has to meet some minimum threshold. You know any 13 year olds playing Minetest?

Re: Minecraft removing obfuscation in Java Edition

#149
post #120

Earlier quoted context omitted.

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?

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…

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.

Re: Minecraft removing obfuscation in Java Edition

#150
post #137

Earlier quoted context omitted.

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.

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

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

Post reply on HN