Live data from Hacker News

Minecraft removing obfuscation in Java Edition

minecraft.net

431–440 of 478 posts

Re: Minecraft removing obfuscation in Java Edition

#431

Earlier quoted context omitted.

Separation of data and algorithm is so useful. I can't really comment on how your senior is doing it, but in the area of numeric calculations, making numbers know anything about their calcs is a Bad Idea. Even associations with their units or other metadata should be loose. Functional programming provides such a useful intellectual toolkit even if you program in Java. Sorry to learn, hope you don't get scar tissue fr…

Not sure how many people are writing programs with lots of numeric calculations. Most programs in my experience are about manipulating records: retrieve something from a database, manipulate it a bit (change values), update it back. Over here OOP do a good job - you create the data structures that you need to manipulate, but create the exact interface to effect the changes in a way that respect the domain rules. I do…

Creating good reusable abstractions is not easy. It's quite possible to create tarballs of unusuable or overwrought abstractions. That is less of a knock on OOP and more a knock on the developers.

Re: Minecraft removing obfuscation in Java Edition

#432
post #345

Earlier quoted context omitted.

Using more complex architecture (which requires more human time to understand) to merely make build time shorter is a ridiculous choice.

For a large project this could save hours of developer time. C++ is a hell of a language.

just buy your devs faster computers to compile on

Re: Minecraft removing obfuscation in Java Edition

#433
post #345

Earlier quoted context omitted.

For a large project this could save hours of developer time. C++ is a hell of a language.

just buy your devs faster computers to compile on

You can't buy your way out of this, because C++ builds are only parallelizable across multiple translation units[1] (i.e. separate .cpp files). Unless you're willing to build a better single-core CPU, there's not much you can do.

The challenge with modern C++ projects is that every individual TU can take forever to build because it involves parsing massive header files. Oftentimes you can make this faster with "unity builds" that combine multiple C++ files into a single TU since the individual .cpp file's build time is negligible compared to your chonky headers.

The reason the header files are so massive is because using a templated entity (function or class) requires seeing the ENTIRE DEFINITION at the point of use, because otherwise the compiler doesn't know if the substitution will be successful. You can't forward declare a templated entity like you would with normal code.[2]

If you want to avoid including these definitions, you create an abstract interface and inherit from that in your templated implementations, then pass the abstract interface around.

[1] or linking with mold

[2] There used to be a feature that allowed forward declaring templated entities called "export". A single compiler tried to implement it and it was such a failure it was removed from the language. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n14...

Re: Minecraft removing obfuscation in Java Edition

#434
post #326

Earlier quoted context omitted.

They're playing Roblox and Fortnite these days, both free of course.

Where are you getting that from? Minecraft has been comfortably above 100,000,000 monthly active users since at least 2019. The only comparable figure I can find for Fortnite claims 650,000,000 registered users, which doesn’t seem remotely possible unless at least half of them are bots. 650,000,000 is something like 1/12th of the world’s entire population. The Roblox figures I could find showed just under 400,000,000…

So anyone who reports higher numbers than Minecraft is lying, but Minecraft's numbers are all accurate? You have literally just invented a conspiracy theory to affirm your biases around this matter.

Also note that monthly active users for Roblox and Fortnite equate to monthly revenue, whereas I doubt there are as many people buying Minecraft in-app purchases.

Re: Minecraft removing obfuscation in Java Edition

#435
post #326

Earlier quoted context omitted.

Where are you getting that from? Minecraft has been comfortably above 100,000,000 monthly active users since at least 2019. The only comparable figure I can find for Fortnite claims 650,000,000 registered users, which doesn’t seem remotely possible unless at least half of them are bots. 650,000,000 is something like 1/12th of the world’s entire population. The Roblox figures I could find showed just under 400,000,000…

So anyone who reports higher numbers than Minecraft is lying, but Minecraft's numbers are all accurate? You have literally just invented a conspiracy theory to affirm your biases around this matter. Also note that monthly active users for Roblox and Fortnite equate to monthly revenue, whereas I doubt there are as many people buying Minecraft in-app purchases.

> So anyone who reports higher numbers than Minecraft is lying, but Minecraft's numbers are all accurate?

Minecraft has made press releases detailing active player counts (“Up to”139,000,000 MAU in 2021). See here:

https://web.archive.org/web/20210809155838/https://news.xbox...

This does claim that 238,000,000 copies have been sold but that there are 400,000,000 registered Minecraft players in China (this would be about 1/3rd of the population so I think it’s probably a typo).

Epic is privately held so I suspect they wouldn’t bother reporting official player counts. Roblox actually does have numbers listed in their annual report, it just wasn’t showing up when I Googled it: 3.6 billion in revenue and 82.9 million daily active users. So that would put it within the wheelhouse of Minecraft’s playerbase, but still about 20,000,000 short.

It may well be that all the kids are playing it over Minecraft, though, since the document I linked above claims the average Minecraft player in North America and Europe is 27. I have no idea what those numbers look like for Roblox but from what I understand the playerbase has always skewed substantially towards minors.

> You have literally just invented a conspiracy theory to affirm your biases around this matter.

This was incredibly abrasive.

Re: Minecraft removing obfuscation in Java Edition

#436

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

If my memory serves, the stated justification for not going open source was copyright and trademark protection. Apparently, that is no longer a concern, if it ever really was. Now I'm bracing for them to drop support for Java Edition entirely and go strictly Bedrock in a couple of years. Perhaps Minecraft 2.0 is finally nearing release.

I don't see that happening any time soon. Too many people at Mojang care about the Minecraft Java Edition community too much.

Re: Minecraft removing obfuscation in Java Edition

#437

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.

They already released deobfuscation mappings years ago. Modders already have a deep understanding of the Minecraft codebase.

Re: Minecraft removing obfuscation in Java Edition

#438

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.

It's been dead already. There's datapacks but it's been pretty obvious they're not going to make an official modding API. I think they realised that the community modloaders are already really good.

So instead they have been structuring the code in ways that help mod development, and have been talking directly to the devs of mods and mod loaders to try and reduce friction with Minecraft updates.

Re: Minecraft removing obfuscation in Java Edition

#439
post #244
post #179

Earlier quoted context omitted.

I fear it's the first step to announcing the discontinuation of Java Edition development.

I don't really think this would be the end of the world, would it? Much of the content they've added over the past few years has been of questionable merit, at least to me. Surely at some point they'll run out of ideas that can reasonably fit inside vanilla Minecraft? (But no, I don't think they're going to stop JE development. I'd bet it's still the far more popular version, and they probably still make plenty of mo…

I'm pretty sure Bedrock Edition is far more popular if you take all platforms into account.

But I agree Java Edition is not ending any time soon.

Re: Minecraft removing obfuscation in Java Edition

#440
post #205

Earlier quoted context omitted.

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

Thankfully those days are not with us any more. Java has moved on quite considerably in the last few years. I think people are still too ready to use massive, hulking frameworks for every little thing, of course, but the worst of the 'enterprise' stuff seems to have been banished.

[deleted]
Post reply on HN