frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Uv is the best thing to happen to the Python ecosystem in a decade

https://emily.space/posts/251023-uv
1205•todsacerdoti•8h ago•691 comments

China has added forest the size of Texas since 1990

https://e360.yale.edu/digest/china-new-forest-report
385•Brajeshwar•1d ago•241 comments

Tell HN: Azure outage

662•tartieret•11h ago•633 comments

IRCd service written in awk

https://example.fi/blog/ircd.html
14•pabs3•31m ago•2 comments

Minecraft removing obfuscation in Java Edition

https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition
575•SteveHawk27•10h ago•197 comments

Raspberry Pi Pico Bit-Bangs 100 Mbit/S Ethernet

https://www.elektormagazine.com/news/rp2350-bit-bangs-100-mbit-ethernet
70•chaosprint•3h ago•14 comments

OS/2 Warp, PowerPC Edition

https://www.os2museum.com/wp/os2-history/os2-warp-powerpc-edition/
30•TMWNN•3h ago•12 comments

AWS to bare metal two years later: Answering your questions about leaving AWS

https://oneuptime.com/blog/post/2025-10-29-aws-to-bare-metal-two-years-later/view
627•ndhandala•15h ago•431 comments

Dithering – Part 1

https://visualrambling.space/dithering-part-1/
225•Bogdanp•8h ago•48 comments

How the U.S. National Science Foundation Enabled Software-Defined Networking

https://cacm.acm.org/federal-funding-of-academic-research/how-the-u-s-national-science-foundation...
57•zdw•5h ago•15 comments

AOL to be sold to Bending Spoons for $1.5B

https://www.axios.com/2025/10/29/aol-bending-spoons-deal
192•jmsflknr•10h ago•170 comments

Kafka is Fast – I'll use Postgres

https://topicpartition.io/blog/postgres-pubsub-queue-benchmarks
312•enether•12h ago•250 comments

A century of reforestation helped keep the eastern US cool

https://news.agu.org/press-release/a-century-of-reforestation-helped-keep-the-eastern-us-cool/
89•softwaredoug•3h ago•10 comments

Tailscale Peer Relays

https://tailscale.com/blog/peer-relays-beta
259•seemaze•10h ago•71 comments

Crunchyroll is destroying its subtitles

https://daiz.moe/crunchyroll-is-destroying-its-subtitles-for-no-good-reason/
175•Daiz•3h ago•58 comments

OpenAI’s promise to stay in California helped clear the path for its IPO

https://www.wsj.com/tech/ai/openais-promise-to-stay-in-california-helped-clear-the-path-for-its-i...
156•badprobe•9h ago•210 comments

Board: New game console recognizes physical pieces, with an open SDK

https://board.fun/
147•nicoles•23h ago•56 comments

The Internet runs on free and open source software and so does the DNS

https://www.icann.org/en/blogs/details/the-internet-runs-on-free-and-open-source-softwareand-so-d...
111•ChrisArchitect•8h ago•7 comments

GLP-1 therapeutics: Their emerging role in alcohol and substance use disorders

https://academic.oup.com/jes/article/9/11/bvaf141/8277723?login=false
156•PaulHoule•2d ago•67 comments

How to Obsessively Tune WezTerm

https://rashil2000.me/blogs/tune-wezterm
79•todsacerdoti•7h ago•47 comments

Keep Android Open

http://keepandroidopen.org/
2342•LorenDB•22h ago•748 comments

Responses from LLMs are not facts

https://stopcitingai.com/
148•xd1936•5h ago•100 comments

Meta and TikTok are obstructing researchers' access to data, EU commission rules

https://www.science.org/content/article/meta-and-tiktok-are-obstructing-researchers-access-data-e...
147•anigbrowl•4h ago•68 comments

More than DNS: Learnings from the 14 hour AWS outage

https://thundergolfer.com/blog/aws-us-east-1-outage-oct20
79•birdculture•2d ago•25 comments

Using Atomic State to Improve React Performance in Deeply Nested Component Trees

https://runharbor.com/blog/2025-10-26-improving-deeply-nested-react-render-performance-with-jotai...
4•18nleung•3d ago•0 comments

Upwave (YC S12) is hiring software engineers

https://www.upwave.com/job/8228849002/
1•ckelly•10h ago

Composer: Building a fast frontier model with RL

https://cursor.com/blog/composer
179•leerob•10h ago•133 comments

How blocks are chained in a blockchain

https://www.johndcook.com/blog/2025/10/27/blockchain/
50•tapanjk•2d ago•21 comments

Extropic is building thermodynamic computing hardware

https://extropic.ai/
97•vyrotek•8h ago•70 comments

Tailscale Services

https://tailscale.com/blog/services-beta
126•xd1936•1d ago•28 comments
Open in hackernews

Minecraft removing obfuscation in Java Edition

https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition
575•SteveHawk27•10h ago

Comments

armchairhacker•10h 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.

bigyabai•9h ago
> Not just locked down

The lockdown is a big part of it, though. The industry has cross-platform VR/AR SDKs like OpenXR that Apple refuses to implement. A big reason their platform isn't supported day-and-date with multiplat VR releases is Apple's insistence on reinventing the wheel with every platform they make.

If the rumors of Valve's VR headset being able to run flatscreen games are true, it's more-or-less Game Over for the Vision Pro. The appetite for an iPad-like experience with six DOF is already handled by much cheaper machines.

armchairhacker•9h ago
Many creative people don’t care about being “locked in”, since they already make mods that can be broken by updates (and often are, unintentionally) and threatened legally (for violating IP and DRM). I think the much bigger problem with locked-down engines is simply that the lockdown methods used make it harder to develop on them.
Mr_Bees69•9h ago
UE5 is decent for vr.
jon-wood•9h ago
The other reason being that nobody is asking for The Metaverse, and definitely don’t want to spend huge chunks of cash on a funny hat to wear in order to access it.
beeflet•9h ago
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
kg•9h ago
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.
armchairhacker•8h ago
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.

hnuser123456•7h ago
VRChat is also consistently active with people making new worlds/maps, avatars, etc. There also used to be a client modding scene with e.g. melonloader but that got cracked down on around 2022. The "metaverse" however, does it even exist? Is there a vrchat-like, meta-built social vr environment available on quest hardware?
ehnto•24m ago
No idea, which is notable because I boot into my Meta Quest 3 most nights for sim racing. You'd think I'd have seen it if they were pushing it.

I am glad they don't, the headset should be a general computing device first and foremost, launching apps you choose to participate in.

rcxdude•1h ago
It's also very highly customisable without being monetized out the wazoo, allows you to host your own servers, and in general avoids the incredibly bland corporate image that meta projects.

(Meta, I think, fails to understand that the people that most want a virtual space to interact with, to the point of putting up with the limitations of VR tech, mostly want to not look like regular people in that space, because they keep pushing a vision that seems to be a uniform 'normality' even more extreme than the real world)

ehnto•28m ago
I think they also would not accept that variability, in both avatars and spaces. Even VRChat developers have struggled with what users do and frankly as a company that makes total sense. It's a wild west which is great for a community, nightmarish for a company with moderation liabilities, copyright concerns etc.

The VRChat community should consider forming and funding an open source group to re-implement the platform as it will eventually get regulated.

For what it's worth I don't use VRChat, I've just been around the internet for long enough to know the pattern.

kragen•9h ago
Probably half the people who grew up with Instagram cat filters are furries now.
tmtvl•7h ago
I am now instantly reminded of that clip of the cat whose human filter wasn't working. 'I'm not a cat', indeed.
kragen•9h ago
A lot of people seem to be spending huge chunks of cash on enormous monitors, dual monitors, curved monitors, etc., and the appeal of that is mostly that it gets you a little bit closer to wearing a head-mounted display.
shermantanktop•9h ago
Makes sense that a primate with front-facing eyes that is both predator and prey would prefer to look at things at arms length rather than encase their head in a cocoon that is designed to block environmental awareness.
kragen•9h ago
That's a function of what software you have running on it.
cubefox•8h ago
Depends on what you mean with "environmental" awareness. Awareness of reality or virtuality?
mikkupikku•8h ago
Monitors load my desk, not my neck.
maeln•9h ago
> 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.

Unity and UE have pretty good VR support nowadays, and even godot is getting there. Plus making a custom engine for VR was never that much harder than for a normal 3D game (well, once some API like OpenXR got normalized).

The big issue with VR right now is that it is more costly to develop for than normal apps and games, while having less user. It makes it a hard sell. For some indie dev, I allow them to profit from a market that is not yet saturated (right now, with no good marketing, you just get buried on steam, any app store, etc). There are many factors that make it more costly, like having to support several mobility and accessibility features for games (for example smooth and jump locomotion, reduce fov when moving the view, etc), that you usually don't have to care for in other plateform. And there is the issue of interactivity. UX (and in many ways UI) is still very far from ideal. Most VR apps and games just try things out, but there is still a world of pattern and good practice to build up. This makes using anything VR often an annoying experience. Especially since some issue can be an absolute no-go for some user. As an example, displaying subtitle in a 6dof environment can be tricky. Some game put it at a fix point of your view, which can cause nausea and readability problem, some move still follows the head/view but with a delay, which reduce nausea issue but can be distracting and also has readability issue (the subs can go out of view).

Nextgrid•3h ago
I think there’s a difference between “indie dev” aka either an experienced SWE trying it or some really motivated person with an established identity, credit card & income stream and a kid/teenager tinkering around.

In a “free for all” setting, anyone (including kids) could potentially learn enough (or even just download pre-made scripts) and try their hand at modding software/games.

In a modern situation with developer registration, etc someone would need some sort of established identity, potentially going through age verification, paying some nominal fee for a license, accepting an EULA and so forth. This is a huge barrier to entry for kids/teenagers just wanting to tweak the game experience for themselves/their friends. I remember my first time trying to install Apache on Windows I guess around 2008-09, and the (very well-made!) install wizard asked me for a domain name. At the time I wasn’t aware of how DNS/etc worked and was scared to continue, thinking I would either take up some other company’s name or not being “allowed” to use a random name I’d pick and get myself/my parents in trouble.

All these “regulated” ecosystems make it scarier for well-meaning but inexperienced devs to get started, while doing little to deter dedicated attackers who know the game and know actual cybercrime enforcement is both lacking and trivial to defeat in any case.

The “free for all” environment made me the developer & sysadmin (or DevOps person as the techbros call it) I am today despite no formal training/education and I am sad to see this opportunity go for the younger generations.

astrobe_•9h ago
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.

For instance, Richard Burns Rally was not intended to be modded at all, yet the fans added new cars, new tracks, online scoreboards, etc.

In the Luanti [1] community (a voxel games engine/platform, designed to be moddable nearly from the start), one begins to see something similar as well: notable games gets mods, others don't (the former default game is a particular case; it is not exactly good but go tons of mods because of its status, and games based on it benefit from that ecosystem). Yet all use the same engine (perhaps Roblox is similar in that respect, I'm not sure if they have "reified" whole games like Luanti did).

[1] https://www.luanti.org/

Nition•7h ago
I'm always impressed when I check it, that flightsim.com is still running, and still has everyone's mods going right back to the 90s. Just in case anyone still wants the poor quality airport I uploaded for Flight Simulator 2000 twenty-something years ago.
nkrisc•4h ago
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 own gameplay.

stronglikedan•8h ago
The Meta Quest is very easy to develop for. There's tons of games of all caliber from solo devs up to full studios. The reason the Metaverse is failing is because no one wants it, even though they keep shoving it down people's throats. VR gamers just want to play games, not dick around in "worlds". Meta is tone deaf to this.
criddell•8h ago
I don't think they're tone deaf, they just know that inexpensive gaming headsets can't make them enough money. They've invested something like $100 billion into VR and "only" sold 20 million headsets The revenue generated annually is almost nothing.
cubefox•8h ago
There isn't yet a game that involves all the players in one huge level, without shards, but there might be eventually. Current game engines don't support levels with that many players simultaneously. There is an interview with Neal Stephenson and Tim Sweeney on the Metaverse where Sweeney says supporting massive multiplayer is what he plans for Unreal Engine 6: https://www.matthewball.co/all/sweeneystephenson

> So one of the big efforts that we're making for Unreal Engine 6 is improving the networking model, where we both have servers supporting lots of players, but also the ability to seamlessly move players between servers and to enable all the servers in a data center or in multiple data centers, to talk to each other and coordinate a simulation of the scale of millions or in the future, perhaps even a billion concurrent players. That's got to be one of the goals of the technology. Otherwise, many genres of games just can never exist because the technology isn't there to support them. And further, we've seen massively multiplayer online games that have built parts of this kind of server technology. They've done it by imposing enormous costs on every programmer who writes code for the system. As a programmer you would write your code twice, one version for doing the thing locally when the player's on your server and another for negotiating across the network when the player's on another server. Every interaction in the game devolves into this complicated networking protocol every programmer has to make work. And when they have any bugs, you see item duplication bugs and cheating and all kinds of exploits. Our aim is to build a networking model that retains the really simple Verse programming model that we have in Fortnite today using technology that was made practical in the early 2000's by Simon Marlow, Simon Peyton Jones and others called Software Transactional Memory.

mminer237•8h ago
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.
jjmarr•8h ago
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, buy individual games like Counterstrike, and the wackiest thing would be the "surf" gamemode. Most games I'd buy on CDs. I certainly couldn't knock down entire buildings with grenades.

If you contrast with Second Life/Habbo Hotel, you could walk around and talk to people I guess?

The community that spring up around it eventually carried it into total dominance of gaming for American children, but the basic parts of the engine like "click button, load into game, blow stuff up" were a decade ahead of the curve.

Also Blockland cost money, Roblox was free.

Sweepi•7h ago
how big was Roblox in 2006?

> In that era, I'd have to download Steam, buy individual games like Counterstrike, and the wackiest thing would be the "surf" gamemode.

You could also play any Source mod. Also WC3 maps were insane at the time.

jjmarr•4h ago
Roblox was tiny in 2006. I joined in 2008. It was still leading the market.

To give an example, Roblox added user-created cosmetic t-shirts as a way to monetize the platform. Developers immediately scripted their games to recognize special "VIP t-shirts" that would provide in-game benefits. And quickly created idle games called "tycoons" where you could wait 2 hours to accumulate money to buy a fortress, or buy the t-shirt to skip all that.

I don't think there were any modding systems with mtx support.

skeaker•6h ago
In many ways it remains ahead of the curve. Kids that grow up making games in Roblox rarely survive the jump to a dedicated engine because Roblox is just so much easier to develop for in nearly every aspect. One big thing I've heard is that instantly getting working, robust online multiplayer by default baked into the engine is a major plus.
ehnto•35m ago
I would call multiplayer out of the box the defining feature for sure.

It's challenging to get networking right, and the effort required doesn't get all that much smaller just because your game is smaller.

Most engines do come with a networking framework or layer these days but Roblox gets to assume a bunch of things an engine can't, and as such provide a complete solution out of the box.

jjmarr•6m ago
They originally accomplished this with an interesting approach to netcode you couldn't do today.

Everything was replicated in the client and server. So you could open Cheat Engine, modify your total $$$ on the client, and it would propagate to the server and everyone else playing.

They only fixed this in 2014 with FilteringEnabled/RemoteFunctions but that was opt-in until 2018 and fully rolled out in 2021 (breaking most classic Roblox games). This also made games much harder to develop.

throwaway89201•5h ago
> 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...

kvam•8h ago
Agree! We saw this a lot. Launching with the Quest 3, we were often the first company to do X, Y, Z despite being months after new features had been released in the SDKs because they were poorly documented (and often even conflicting).

Diverging even slightly from the demo use case would quickly feel like Sisyphus; so close, but never succeeding in getting over the hill.

Good for marketing in certain cases (to be the first), but bad for the community of builders

YesBox•7h ago
I disagree with regard to Minecraft (only game I played in that list). I bought the game while it was in alpha and even then the single player experience was outstanding and sucked me in. I still have vivid memories from 15+ years ago. The balance of creativity and survival (and friggen creepers) was perfect.

I dont think I am alone in saying this. IIRC the game was making millions while still in alpha.

joemi•4h ago
Yeah, I think Minecraft definitely still would have been a hit without any modding. Though it might not have become the absolute juggernaut that it is now without it -- it's hard to say for sure.
pugworthy•7h ago
I think Valve wouldn't exist as they do now except for modding. Counter-Strike's popularity must have driven a lot of purchases early on, which allowed Valve the freedom to do things at their own pace rather than under pressure from publishers.
bsimpson•7h ago
Fortnite has been attempting to be a platform rather than a game for years now. (Epic Games Store too, so you ridiculously have to launch one then the other before you can pick your game.)

Curious to know to what degree the "Creative" maps have fueled Fortnite's success as opposed to the 1st and 2nd party developed experiences.

haunter•6h ago
> these are games that succeeded because of their communities

To me an interesting thing when a game succedes despite its community. As if people can endure a lot of toxicity as long as the game is good

pwdisswordfishy•9h 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?

rirze•9h ago
If I had to guess, the legal team's brains started melting when de-obfuscation was mentioned.
Macha•9h ago
A lot of mod tooling was built around the obfuscated or community names for those APIs.
gs17•8h ago
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.
quamserena•6h ago
Still is for legal reasons. Also the community names (Yarn) come with javadoc that actually explains what the function does
tantalor•3h ago
Hyrum's Law
matteotom•7h ago
Were the mappings only a subset of the obfuscated classes/methods/etc? Basically making the mapping a sort of public API
ethmarks•7h ago
Perhaps it was easier? There were also probably legal reasons.
giancarlostoro•9h 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.
throwaway48476•9h ago
More games should be open source like doom. It doesnt effect the art assets which are still copyrighted.
dontlaugh•9h ago
Amusingly, Minecraft is a counter-example. It has very few assets and they are hardly essential to the experience.
duskwuff•8h ago
There are so many third-party texture packs for Minecraft that losing access to the official ones would hardly even be an obstacle.
xboxnolifes•8h ago
The music and sounds play a large part into the experience though, and are much harder to replace than the textures.
tmtvl•7h ago
The sounds maybe, but the music? If there's one game whose music I always turn off instantly it's Minecraft. Touhou Youyoumu Minecraft ain't.
gbear605•7h ago
The music is definitely considered classic, you can find tons of people online talking about how it means a lot to them - and personally, I really loved the music.
speedgoose•7h ago
I remember the early Minecraft musics from C418 to be relatively unconventional, especially some of the jukebox discs.

I started playing Minecraft again recently and while it sounds like it’s the same artist, and it’s still somewhat contemplative, it’s not dissonant anymore.

ollien•4h ago
It's even recognized by the Library of Congress!

https://www.loc.gov/static/programs/national-recording-prese...

xigoi•6h ago
I like Minecraft’s music. If there was a way to have it not play when the game is paused or on the title screen, I would probably keep it on.
sodapopcan•6h ago
Interesting, I love Minecraft's music. I do listen to it intentionally outside of the game, but it's not quite the same as having it suddenly start up during gameplay. The first I heard of someone "obviously turning off the music" was, I kid you not, yesterday, and now I'm hearing it for a second time today. Would woulda thunk!
tmtvl•2h ago
There are soundtracks I listen to outside of their games: Castlevania Symphony of the Night, Chrono Trigger, Shadowgate,... but Minecraft would be way near the end of the list. The music is too generic to be worth the attention, yet too present to work as ambiance. It kinda reminds me of Silent Hill's soundtrack.
sodapopcan•1h ago
"Generic"? Ouch, lol.
kragen•9h ago
It sounds like you might be looking for Minetest/Luanti.
ajkjk•9h ago
no, I think they're looking for the official game to be open sourced... that's much more appealing than a knockoff since it's the version everyone actually plays.
kragen•8h ago
It's much less appealing because it's much harder to mod.
willis936•8h ago
It's much more appealing because it has a much more vibrant modding community.
kragen•8h ago
Community can go a long way towards compensating for worse technology, yeah.
nmilo•5h ago
Community is the entire goal. The technology just has to meet some minimum threshold. You know any 13 year olds playing Minetest?
kragen•4h ago
I don't know any 13-year-olds, but I hear that a lot of them do play Minetest.
unleaded•7h ago
less appealing to who? Lots of 13 year olds learned to code by writing minecraft mods so it can't be that hard. You also get the benefit & satisfaction of it actually being in Minecraft—yes, they are both very similar games where you explore and place blocks in a procedurally generated world, but it really does matter. I can't really explain why if you don't get it but it's evident people do care even when they know about Minetest.
mikkupikku•8h ago
There's no reason for them not to. Open source launchers using the "honor system" for account verification are already established and normalized. It's trivial to just comment out that verification. The jars and assets are free to download from Microsoft's servers without needing an account. It's a trivial game to get without paying, so I don't see any downside for them to open source the engine.
giancarlostoro•2h ago
Honestly, I would almost settle for Microsoft open sourcing the Minecraft Java back-end server at a minimum. This alone is long overdue. The massive fanbase could have started to maintain it in ways Microsoft could only fathom.
NelsonMinar•8h ago
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...

ikamm•8h ago
Notch has said he would do many things and rarely follows through with them. I'm still waiting for 0x10c.
ecshafer•8h ago
He sold the game to Microsoft, his promises kind of don't matter anymore.
ikamm•8h ago
I think you meant to reply to the parent comment, I never mentioned Minecraft
einsteinx2•6h ago
> Once sales start dying

Has that part ever happened?

ntoskrnl_exe•8h ago
I'm pretty sure A Minecraft Movie has already made more money that the game had made when he made that promise.

Back then he couldn't have foreseen the size of the money printing factory that the game would become.

pixl97•3h ago
I remember when Minecraft was sold for $2 billion and people thought it was madness and would never make the money back.

Since then they've made that back on game copies alone, and god only knows how much from movie/merch rights and microtransactions.

PeaceTed•2h ago
Notch has said a lot of things over the years. Many after the sale to Microsoft were not so great. Suddenly without purpose and more money than he would ever need in a life time, he found a new purpose that wasn't so great.

A lot of Qanon rants and other conspiracy things. Just goes to show you that some times it is best you don't get what you wish for.

umpalumpaaa•2h ago
Sales are still good though- right? It’s the no paid iOS game.
OkayPhysicist•6h ago
At this point, they could open source it, and just charge for Minecraft accounts being able to authenticate with their login servers to join authenticated Minecraft servers, and it wouldn't change sales much.
Traubenfuchs•9h ago
I'd like to see a benchmark between the obfuscated and non obfuscated version.
internetter•9h ago
Probably virtually the same. If I recall, the "obfuscation" was mostly mangling
Traubenfuchs•9h ago
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 compiled to was obfuscated.

wtallis•9h ago
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.
duskwuff•8h ago
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.
xxs•8h ago
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.

ok123456•6h ago
It's still pretty popular. Most large smartphone applications are obfuscated to some degree. At least for Android, because it's bytecode for a VM, it's still trivial to disassemble and understand what is happening at a high level.
circuit10•7h ago
For Minecraft it’s just removing names and replacing them with random strings
SkiFire13•7h ago
AFAIK it also shortens the names, which might make the jar smaller or make it take less time to do name resolution at runtime. It probably won't be very relevant though, especially after startup.
PaulKeeble•8h ago
The files will be a little smaller obscured but it doesn't usually impact much other than RAM usage. The algorithms are all the same. Given the size of methods for being JIT compiled is token based not text size I don't think it even impacts that choice. So expect it to be identical.
xxs•8h ago
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
squigz•9h ago
For those in the modding scene, what difference, if any, will this make? Will this enable anything that was previously not possible?
the_gipsy•9h ago
Should make it easy to have mods running on latest releases.
squigz•9h ago
But the only version that matters is 1.20.1!
Modified3019•8h ago
Speak for yourself, Create supports 1.21.1 (neoforge) which is what my bloated and fragile mess of a mod pack is built on.
xboxnolifes•8h ago
I think you typoed 1.7.10
ZeWaka•7h ago
I think you typed b1.7.3
VikingCoder•9h ago
At a guess, it will enable quicker updates on major revisions, where things move around a lot. There will be less reverse-engineering needed.
ZeWaka•7h ago
They were already releasing official mappings.
axus•9h ago
It's possible that the de-obfuscated symbols will be more backwards-compatible, since they don't need to change with every minor release. Though I'd imagined Forge and Fabric were supposed to provide a stable platform, yet plugins for those still need a different jar for every minor version.
yrxuthst•8h ago
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.
kevincox•8h 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.

PaulKeeble•8h 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.

hackthemack•8h 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/

anthk•7h ago
Zoonami will achieve what Tuxemon didn't.
cachius•7h ago
https://github.com/luanti-org/luanti
nickstinemates•2h ago
does something like AllTheMods 10 exist for Luanti? Or Meatballcraft?
hackthemack•1h ago
The Luanti client lets you search and install mods from content.luanti.org

It differentiates between mods and games. A game changes the core game to be much more different, but sometimes a game is just a collection of some other mods.

https://content.luanti.org/packages/?type=game

Personally, I find it more fun to just go and click on about 6 to 8 mods that are interesting and see how the game goes.

https://content.luanti.org/packages/?type=mod

Some of my picks are...

https://content.luanti.org/packages/ElCeejo/animalia/

https://content.luanti.org/packages/random-wizard/gear_up/

https://content.luanti.org/packages/TenPlus1/farming/

https://content.luanti.org/packages/FreeLikeGNU/goblins/

NelsonMinar•8h 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.
krackers•8h ago
Me too. Having only a vague familiarity with the game, I thought that mods were using some official plugin system. I had no idea that minecraft modders (presumably kids/teens?) were not only reverse engineering things but also creating an entire ecosystem to work around proguard.
bitexploder•8h ago
Over time people learned the key APIs and classes that you needed to interact with. And obfuscated Java is like an order of magnitude easier to work with than machine code. Once someone figured out how to do something it was generally pretty easy to use that interface to do your own thing. Modders of course still often hit edge cases that required more reversing, but yeah, it was really cool to watch over the last 15+ years :)
6SixTy•7h ago
There is and kind of isn't. There are community led modding apis, but also datapacks that are more limited but still allow someone to do cool stuff leveraging tools, items, etc already in the game.

If you remember entire contraptions of command blocks doing stuff like playing Pokemon Red in Minecraft or "one commands" that summoned an entire obelisk of command blocks, the introduction of datapacks pretty much replaced both of those.

nightpool•7h ago
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 compiled patches that would create "modding APIs" for developers to use. Putting the patching tools in the hands of the mod developers has really opened up so many more doors.

Minecraft also has a plugin system based around JSON file datapacks, but it's a lot more limited. It's more at the level of scope of adding a few cool features to custom maps then completely modding the game.

LelouBil•7h ago
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 whatnot)

- They are adding a lot more "building blocks" type features that both allow new /easier things in datapacks, and in mods as well.

Method patching with Mixins is less needed now because the game's internal APIs are more versatile than ever.

nightpool•7h ago
That's definitely true, and I think that's a testament to Minecraft / Java's strong OO design—it dovetails very nicely with the Open/Close principle. However my view is that for a mod to be a mod, there's always going to be stuff that you can't/shouldn't implement just with datapacks—whether that's complex rendering features, new entity logic, or whatever. The Mixin processor makes it really easy to build these kinds of features in a very compatible way
hyghjiyhu•6h ago
These tools sound very powerful, could they find use for other Java codebases?
ZeWaka•5h ago
They've also been working with a lot of modders on the rendering engine over the past year or two.
Nition•7h ago
I remember Notch saying in 2010 that he planned to add an official modding API, but it never actually happened.

---

Edit: https://web.archive.org/web/20100708183651/http://notch.tumb...

nightpool•7h ago
Data packs were released in October 2017! And we had command blocks in 2012 for custom maps
Philip-J-Fry•6h ago
Most modders aren't reverse engineering the game. There's a small community that are doing the obfuscation and then everyone else is effectively working from normal Java code.
chillfox•1h ago
While I don't doubt that some mods are created by teens, just under half of Minecraft players are adults.
1313ed01•8h ago
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?
trenchpilgrim•8h ago
Yup very common to take a popular minecraft mod, insert malware, rehost it, and seo your way into getting downloads.
superb_dev•7h ago
This is not the norm these days! There are popular mod loaders like curseforge that pulled from moderated repositories. It’s still not bulletproof, but a far cry from trusting some installer executable
Imustaskforhelp•7h ago
I prefer modrinth as well, both are good but curseforge has done some things which makes us require an api etc. for true automation where modrinth is genuinely nice.

I used to use prism launcher which would just give me a search box and It on the side would have things like modrinth / curseforge etc., Usually I preferred Modrinth but there were some modpacks just on curseforge only but I never really downloaded a shady modpack from some random website aside from these two, In fact sometimes I never opened up a website but just prismlauncher itself lol

superb_dev•3h ago
+1 for Prism Launcher and Modrinth! I use Prism on my Steam Deck. I would’ve mentioned them both but Curseforge was the only name I could remember
SkiFire13•7h ago
> I am terrified by Minecraft mods always being distributed from dodgy download sites and not rarely come with their own Windows EXE installers.

That's not their main mean of distribution, most often those sites were just third parties unrelated to the mod authors that repackaged the mod and somehow got a better SEO. But TBF back in the days the UX/UI for installing mods was pretty terrible. Nowadays there are more standardized and moderated distribution websites from which you just download the .jar of the mod.

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

This is totally true though.

xp84•6h ago
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 of a mod only is compatible with a single specific point release of the game itself.

Never download any EXE files to get a mod, that does sound sketch AF.

2. mods are always packaged for a particular Loader (some package for multiples and some require Forge, Fabric, or NeoForge), and MultiMC can install any of them into a given instance. Aside from different startup screens there seems to be no difference so idk why we need 3 different ones.

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.

mikkupikku•6h ago
If you're using MuliMC or one of its various forks, you can search for and install mods from modrinth or curseforge right in the launcher. I fine it more convienent than doing it with a browser and dragging them in, but either way works.
yrxuthst•5h ago
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.
quamserena•6h ago
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 network access, etc. Every entity in MC has associated NBT data that is similar to JSON that stores values like position, velocity, inventory, etc. You can change NBT with commands for mobs, but in what can only be described as a religious decision, Minecraft commands are unable to modify player NBT. So for example it is impossible to impart a velocity on a player.

One wonders why Mojang didn’t embed Lua or Python or something and instead hand-rolled an even shittier version of Bash. The only reason MC servers like Hypixel exist is because the community developed an API on top of the vanilla jar that makes plugin development easy. Even with that there is still no way for servers to run client-side code, severely limiting what you can do. They could’ve easily captured all of Roblox’s marketshare but just let that opportunity slip through their fingers. Through this and a series of other boneheaded decisions (huge breaking changes, changes to the base game, lack of optimization), they have seriously fractured their ecosystem:

- PvP is in 1.8 (a version from 2015) or sometimes even 1.7 (from 2013)

- Some technical Minecraft is latest, some is in 1.12 (from 2017)

- Adventure maps are latest version

- Casual players play Bedrock (an entirely different codebase!)

The words “stable API” have never been said in the Mojang offices. So the community made their own for different versions, servers use the Bukkit 1.8 API, client 1.8 mods use Forge, latest mods use Forge or Fabric. The deobfuscated names are of little utility because the old names are so well ingrained, and modders will also probably avoid them for legal reasons.

charcircuit•5h ago
Bedrock has proper mod support and you can program with Typescript.
quamserena•5h ago
Better than datapacks overall but lacks a way to plug into the rendering pipeline or make custom dimensions. Java mods have more capabilities
pdntspa•6h ago
Yes, much like how most software for PC has been written since the beginning of time?
userbinator•7h ago
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.
pphysch•7h ago
Agreed; modding obfuscated Java is impressive, but not quite on the level of modding in the (Nintendo) emulation community. The things that have been achieved with classic Nintendo titles are absurd, like adding high-performance online multiplayer to Super Smash Bro. Melee.
karlding•6h ago
Said online multiplayer [0].

The devs also wrote a write-up here about how they handle the desyncs in netcode [1].

[0] https://slippi.gg/

[1] https://medium.com/project-slippi/fighting-desyncs-in-melee-...

ed_elliott_asc•6h ago
Tbh decompiling software and figuring out how it works isn’t easy but that is part of the fun :) - it’s the reason ive ended up following many of the weird paths in computing that I have
abraae•6h ago
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 the real world a person can be both employee and contractor at the same time, can flit between those roles and many others, can temporarily park a role (e.g sabbatical) and many other permutations, all while maintaining history and even allowing for corrections of said history.

It would be hard to find any domain less suited to OO that HR records. I think these terrible examples are a primary reason for some people believing that OO is useless or worse than useless.

pavo-etc•5h ago
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

Romario77•4h ago
You could write crappy code in any language. I don't think it's specific for Java. Overall I think java is pretty good, especially for big code bases.
stefs•3h ago
But there's a real difference how easy it is to write crappy code in a language. In regards to java that'd be, for example, nullability, or mutability. Kotlin, in comparison, makes those explicit and eliminates some pain points. You'd have to go out of your way and make your code actively worse for it to be on the same level as the same java code.

And then there's a reason they're teaching the "functional core, imperative shell" pattern.

taneq•3h ago
You gotta admit, though, that a language which strongarms you into writing classes with hidden state and then extending and composing them endlessly is kinda pushing you in that direction.

It’s certainly possible to write good code in Java but it does still lend itself to abuse by the kind of person that treated Design Patterns as a Bible.

Quekid5•5h ago
> 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.)

MobiusHorizons•1h ago
React is most likely not what the author had in mind by a graphics framework. The browser implementation of the DOM or a desktop widget system is much more likely the idea.
mywittyname•4h ago
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 taught me to avoid applying for jobs that used Java.

I like OOP and often use it. But mostly just as an encapsulation of functionality, and I never use interfaces or the like.

Nursie•17m ago
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.

devjab•3h ago
I think the OO hatred comes from how academia and certain enterprise organisations for our industry picked it up and taught it like a religion. Molding an entire generation og developers who wrote some really horrible code because they were taught that abstractions were, always, correct. It obviously weren't so outside those institutions, the world slowly realized that abstractions were in many ways worse for cyclomatic complexity than what came before. Maybe not in a perfect world where people don't write shitty code on a thursday afternoon after a long day of horrible meetings in a long week of having a baby cry every night.

As with everything, there isn't a golden rule to follow. Sometimes OO makes sense, sometimes it doesn't. I rarely use it, or abstractions in general, but there are some things where it's just the right fit.

taneq•3h ago
Much like Agile, or Hungarian notation. When a general principle becomes a religion it ceases to be a good general principle.
rcruzeiro•2h ago
> I think the OO hatred comes from how academia and certain enterprise organisations for our industry picked it up and taught it like a religion.

This, this, this. So much this.

Back when I was in uni, Sun had donated basically an entire lab of those computers terminals that you used to sign in to with a smart card (I forgot the name). In exchange, the uni agreed to teach all classes related to programming in Java, and to have the professors certify in Java (never mind the fact that nobody ever used that laboratory because the lab techs had no idea how to work with those terminals).

As a result of this, every class from algorithms, to software architecture felt like like a Java cult indoctrination. One of the professors actually said C was dead because Java was clearly superior.

Retr0id•3h ago
As a reverse engineer, I totally get the phrase.

Even with non-obfuscated code, if you're working with a decompilation you don't get any of the accompanying code comments or documentation. The more abstractions are present, the harder it is to understand what's going on. And, the harder it is to figure out what code changes are needed to implement your desired feature.

C++ vtables are especially annoying. You can see the dispatch, but it's really hard to find the corresponding implementation from static analysis alone. If I had to choose between "no variable names" and "no vtables", I'd pick the latter.

jdswain•2h ago
(Hi Andrew)

It's the misuse of OO constructs that gives it a bad name, almost always that is inheritance being overused/misused. Encapsulation and modularity are important for larger code bases, and polymorphism is useful for making code simpler, smaller and more understandable.

Maybe the extra long names in java also don't help too, along with the overuse/forced use of patterns? At least it's not Hungarian notation.

andai•1h ago
Tried to modify one boolean in a codebase a few weeks ago and I had to go thru like 12 levels of indirection to find "the code that actually runs".
5-•3h ago
indeed. with how good and cheap/free decompilers have gotten over the years my preferred way to read abstraction-happy c++ and rust code is to compile it with optimisations and debug symbols and then read the decompiler output.
ZeWaka•7h ago
To be fair, since 2019 Mojang has been providing the mappings instead of everyone having to use community-created ones.
tripplyons•5h ago
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...

mikkupikku•5h ago
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
zachrip•4h ago
Why do they obfuscate if they're just going to provide the mappings?
kulahan•4h ago
Well, maybe that's why they're not obfuscating anymore.
singron•4h ago
Proguard can also apply optimizations while it obfuscates. I think a good JVM will eventually do most of them itself, but it can help code size and warm-up. I'm guessing as JVMs get better and everyone is less sensitive to file sizes, this matters less and less.
mort96•3h ago
And there's no way to do only the optimisation part? Surely you could optimise without messing up class and method names..?
the_hoser•3h ago
One of the biggest optimizations it offers is shrinking the size of the classes by obfuscating the names. If you're obfuscating the names anyway, there's no reason that the names have to be the same length.

"hn$z" is a heck of a lot smaller than "tld.organization.product.domain.concern.ClassName"

voxic11•1m ago
[delayed]
Karrot_Kream•5h ago
Java is pretty easy to decompile and it's not a huge amount of effort to poke into the generated JVM code and start doing things. If you have a decent idea of how VMs work, C-like languages work, and how object dispatch works it's really not that hard. Also the early modding scene for Minecraft was really fun. I was a huge Minecraft player at the time and was early into the deobfuscating -> modding scene and the community was one of the most fun computing communities I've been in. Due to how focused it was on the game and its output it wasn't bogged down in nearly as much bikeshedding and philosophy as most FOSS projects get. Honestly one of the highlights of the coding I've done in my life.
gretch•2h ago
In 2004 I played an MMO game on a pirated server. The owner of the server somehow got a version of the server binary, and used a hex editor (!) to add new features to the binary over time.

It's the closest I've ever see to someone literally being one of the hackers from Matrix, literally staring at hexadecimal and changing chars one at a time

Loughla•2h ago
That's a level of dedication that I have never devoted to anything in my life.

That's energy that could change the world if harnessed correctly.

abtinf•1h ago
It did change the world - it made it better for players of the game.
int_19h•1h ago
https://doomwiki.org/wiki/DeHackEd
64718283661•8h ago
The community obfuscation mappings unrestrictively licensed. The Microsoft ones are not. It's a trap.
poly2it•7h ago
Does copyright apply to variable names?
jagged-chisel•6h ago
Given the Oracle v Google decision, the likely answer is yes. But then there’s a fair use argument to be made.
einsteinx2•6h ago
But the whole point is there are no more mappings. I’m not sure what the trap is supposed to be?
throwaway290•2h ago
Your mod uses variable name FooBar in ways Microsoft don't like, Microsoft sues you for copyright

before the judge would have to admit it was just coincident.

nurettin•8h 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.
mmis1000•7h ago
The game is still a licensed game though. You technically must pay it and go though proper verification to start the game. (Although it's a 100% public secret that how to load it as you want, and basically every single mod dev kit does that for local dev)

I guess Microsoft won't want to deal with the license issue of publishing the loader part.

nisegami•8h ago
I consider Microsoft to be genuinely evil as an institution, but this is still nice to see.
kgwxd•2h ago
I fear it's the first step to announcing the discontinuation of Java Edition development.
spullara•8h ago
You know what would make it even easier? Releasing the source code with a license that allows for modding.
RGBCube•7h 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.

TheDong•5h ago
> 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.

txrx0000•7h 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.
LelouBil•7h ago
Maybe they'll publish javadoc jars down the line !
bityard•6h 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?

unleaded•3h ago
"It does have some technical benefits for us, but it is a symbol that this game is not open source. You still can't publish the maps or the code decompiled, even using the maps."

https://twitter.com/Dinnerbone/status/1169242801508376582

James_K•6h 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.
smlacy•4h ago
Just think of the untapped market of fresh 9 year olds who've never seen/played the game before. It's infinite, there will always be more people who have never played Minecraft.
James_K•1h ago
They're playing Roblox and Fortnite these days, both free of course.
huhtenberg•6h ago
Ha, this explains then why MSFT dropped 4% after hours!
ilsubyeega•3h ago
might be another issue: the azure outage
ReFruity•6h 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.
charcircuit•5h 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.
time4tea•3h 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.

SurceBeats•2h ago
These are definitely good news!!!
nxobject•1h 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.