25 ms·
Minecraft removing obfuscation in Java Edition
- armchairhacker 1y agoMinecraft, 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.
- Mr_Bees69 1y agoUE5 is decent for vr.
- bigyabai 1y 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 1y agoMany 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.
- jon-wood 1y agoThe 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 1y agoSome 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 1y agoCritically, 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 1y agoExamples 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 1y agoVRChat 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?
- maeln 1y 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 1y agoI 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_ 1y agoYou 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/ https://www.luanti.org/
- Nition 1y agoI'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 1y agoThe 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.
- vintermann 1y agoIt was, as far as I can tell, the first game which was infinitely procedurally generated yet changeable. Huge procedurally generated games have a long history but in e.g. Elite or Seven Cities of Gold you couldn't modify the world in any meaningful way. The closest is probably dwarf fortress, but there the modifiable world is pretty small (or was when Minecraft came out). That made it a great game. I think it was inevitable that the first game which combined these two, infinite procedural worlds and free modifiability, would be a huge success. Worth noting also that infiniminer, despite the name, didn't have the infinite part worked out!
- stronglikedan 1y agoThe 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 1y agoI 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 1y agoThere 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 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 1y agoAll 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 1y agoRoblox 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 1y agohow 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 1y agoRoblox 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 1y agoIn 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.
- kvam 1y agoAgree! 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 1y agoI 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 1y agoYeah, 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 1y agoI 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 1y agoFortnite 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 1y 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
- andrewxdiamond 1y agoI would throw Rimworld into that list as well. A fine game by itself, if a bit simplistic. But the mods make the game massively customizable and lets the player do basically whatever they want
- pwdisswordfishy 1y 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 1y agoIf I had to guess, the legal team's brains started melting when de-obfuscation was mentioned.
- Macha 1y agoA lot of mod tooling was built around the obfuscated or community names for those APIs.
- gs17 1y agoI 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 1y agoStill is for legal reasons. Also the community names (Yarn) come with javadoc that actually explains what the function does
- tantalor 1y agoHyrum's Law
- matteotom 1y agoWere the mappings only a subset of the obfuscated classes/methods/etc? Basically making the mapping a sort of public API
- giancarlostoro 1y agoI 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 1y agoMore games should be open source like doom. It doesnt effect the art assets which are still copyrighted.
- dontlaugh 1y agoAmusingly, Minecraft is a counter-example. It has very few assets and they are hardly essential to the experience.
- duskwuff 1y agoThere are so many third-party texture packs for Minecraft that losing access to the official ones would hardly even be an obstacle.
- xboxnolifes 1y agoThe music and sounds play a large part into the experience though, and are much harder to replace than the textures.
- tmtvl 1y agoThe 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 1y agoThe 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.
- Traubenfuchs 1y agoI'd like to see a benchmark between the obfuscated and non obfuscated version.
- internetter 1y agoProbably virtually the same. If I recall, the "obfuscation" was mostly mangling
- Traubenfuchs 1y agoLuckily 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 1y agoMy 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 1y agoMinecraft - 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 1y agoI 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.
- squigz 1y agoFor those in the modding scene, what difference, if any, will this make? Will this enable anything that was previously not possible?
- the_gipsy 1y agoShould make it easy to have mods running on latest releases.
- squigz 1y agoBut the only version that matters is 1.20.1!
- Modified3019 1y agoSpeak for yourself, Create supports 1.21.1 (neoforge) which is what my bloated and fragile mess of a mod pack is built on.
- xboxnolifes 1y agoI think you typoed 1.7.10
- ZeWaka 1y agoI think you typed b1.7.3
- kachapopopow 1y ago1.2.5, the modding golden age (probably because of nostalgia)
- immibis 1y agoIn reality, Minecraft gets less Minecrafty in every update, and your baseline is whenever you bought it. I bought the game after they added fences and fishing rods and before the Nether. The nether ruined the game, beds ruined the game, hunger ruined the game, potions, enchantments, villager trading, and hoppers ruined the game, but redstone and minecarts and dungeons didn't ruin the game because those were added before I bought it, see? If you bought it today, you wouldn't think hunger ruined the game, you'd rather think I took away a good feature if I showed you a version without hunger.
- kevincox 1y agoI'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 1y agoAs 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.
- LauraMedia 1y agoYeah I still remember when you had to manually patch your minecraft.jar with mods. Always remove the META-INF directory so it works. Back then, when you installed two mods that were incompatible with each other, you had to throw away the whole minecraft.jar and start again. This already changed A LOT when Forge and later Fabric came out, with a simple patch system akin to BepinEx and a mods folder.
- mmis1000 1y agoThe later generation mod loader use preloader and asm hooks though. So the file isn't even physically patched, just patched in memory. That is such an old day that you still need to patch the jar by yourself. (If I am not remembered it incorrectly, I think the community change happens between 1.3 and 1.5?)
- 64718283661 1y agoThe community obfuscation mappings unrestrictively licensed. The Microsoft ones are not. It's a trap.
- poly2it 1y agoDoes copyright apply to variable names?
- jagged-chisel 1y agoGiven the Oracle v Google decision, the likely answer is yes. But then there’s a fair use argument to be made.
- Tyrannosaur 1y agoI was initially a little confused at your comment. I had thought the decision was against Oracle being able to sue for use of the Java API. Reading a little closer, the decision was that even assuming the API copyright claim was valid, Google's use of the API was fair use. > In April 2021, the Supreme Court ruled in a 6–2 decision that Google's use of the Java APIs served an organizing function and fell within the four factors of fair use, bypassing the question on the copyrightability of the APIs. The decision reversed the Federal Circuit ruling and remanded the case for further review. https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_Inc https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....
- einsteinx2 1y agoBut the whole point is there are no more mappings. I’m not sure what the trap is supposed to be?
- throwaway290 1y agoYour 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.
- hackthemack 1y agoI 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/ 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/ https://content.luanti.org/packages/isaiah658/zoonami/
- anthk 1y agoZoonami will achieve what Tuxemon didn't.
- cachius 1y agohttps://github.com/luanti-org/luanti https://github.com/luanti-org/luanti
- nickstinemates 1y agodoes something like AllTheMods 10 exist for Luanti? Or Meatballcraft?
- hackthemack 1y agoThe 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 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 https://content.luanti.org/packages/?type=mod Some of my picks are... https://content.luanti.org/packages/ElCeejo/animalia/ https://content.luanti.org/packages/ElCeejo/animalia/ https://content.luanti.org/packages/random-wizard/gear_up/ https://content.luanti.org/packages/random-wizard/gear_up/ https://content.luanti.org/packages/TenPlus1/farming/ https://content.luanti.org/packages/TenPlus1/farming/ https://content.luanti.org/packages/FreeLikeGNU/goblins/ https://content.luanti.org/packages/FreeLikeGNU/goblins/
- NelsonMinar 1y agoIt'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 1y agoMe 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 1y agoOver 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 1y agoThere 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.
- immibis 1y agoDatapacks kind of ruined the Java side. Instead of (metaphorically) "grass.colour = green;" now you have several layers of indirection to look up the mapping of block types to colours, in several real and virtual entity-attribute-value stores that shadow and inherit from each other, and the easiest way to make grass green becomes to write a data pack - with all the limitations of that, not to mention the obscure syntax (do you write "{"inherits":"dirt", "variables":{"colour":"green"}}" in stuff/things/blocks/grass/index.html.json?) This is called the inner-platform effect, where in order to avoid programming in the original language, you invent a worse programming language. Apparently it used to be a big killer of enterprise software. It's also one of the reasons Minecraft needs ten times the RAM it used to. To be fair, we have fifty times as much RAM as we did when Minecraft came out, but wouldn't you rather have it put to use doing extended view distance, extended world height, and shaders?
- nurettin 1y agoMaybe 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 1y agoThe 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.
- nurettin 1y agoI doubt they care about this or that license. They just want people to upgrade.
- nisegami 1y agoI consider Microsoft to be genuinely evil as an institution, but this is still nice to see.
- kgwxd 1y agoI fear it's the first step to announcing the discontinuation of Java Edition development.
- squigz 1y agoI 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 money from sales)
- kgwxd 1y ago-Surely at some point they'll run out of ideas that can reasonably fit inside vanilla Minecraft? Exactly...? How much content is built with Bedrock edition and Marketplace Add-on's?
- rbits 1y agoI'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.
- immibis 1y agoNotice they're only doing this after the game is ensloppified (they make their money from merch and movies now, not from game sales) and after the game code suffers from so much inner-platform effect that modding it directly isn't as useful any more. The inner platform effect is when, in an effort to make it so people don't have to use the original programming language because programming is complicated, you create a worse programming language and make people use that. In Minecraft, it's data and resource packs. The Java code isn't just a function on the block that renders it, any more - there's a bunch of indirection through resource packs, and they've gone abstraction hell with that too, adding unnecessary abstractions in the way of the actual abstraction they want.
- spullara 1y agoYou know what would make it even easier? Releasing the source code with a license that allows for modding.
- RGBCube 1y agoEven 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 1y 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.
- netdur 1y agoby that logic GPL wouldn’t be open source either since it also adds restrictions unlike the fuck license nowadays github is filled with so-called open source projects under GPL3 but the maintainers want you to pay for a dual license
- TheDong 1y agoLet's look at the OSI definition since that's what people mean by Open Source (particularly when capitalized): https://opensource.org/osd https://opensource.org/osd > The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. > No Discrimination Against Fields of Endeavor You cannot restrict selling derivatives of the software (a field of endeaver), and the derived work must be able to be shared under a similar license. GPL does not add any restrictions counter to that. It allows you to redistribute and sell copies if you want, you just have to respect your user's freedom by also giving them the modified source code.
- deleted 1y ago[deleted]
- txrx0000 1y agoThis 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 1y agoMaybe they'll publish javadoc jars down the line !
- bityard 1y agoAsking 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 1y 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 https://twitter.com/Dinnerbone/status/1169242801508376582
- James_K 1y agoI 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 1y agoJust 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 1y agoThey're playing Roblox and Fortnite these days, both free of course.
- lurk2 1y agoWhere 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 MAU in 2024, which also seems completely beyond the pale.
- James_K 1y agoSo 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.
- lurk2 1y ago> 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.com/en-us/wp-content/uploads/sites/2/2021/04/Minecraft-Franchise-Fact-Sheet_April-2021.pdf 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.
- huhtenberg 1y agoHa, this explains then why MSFT dropped 4% after hours!
- ilsubyeega 1y agomight be another issue: the azure outage
- ReFruity 1y agoOne 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.
- taccal 1y ago[flagged]
- charcircuit 1y agoI 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.
- immibis 1y agoYou're always welcome to just ignore the EULA and hope they don't sue you. Which they won't because the costs to them are much greater than the benefits. Even with the monetized server thing, they didn't sue them, but they did create a server address blacklist, but it only contains a minority of monetized servers.
- ika9os 1y ago[flagged]
- time4tea 1y agoProguard 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.
- kachapopopow 1y agominecraft had none of these, it only had clean and predictable name obfuscation.
- time4tea 1y agoSuper interesting to know. I wonder why they bothered! Thanks for the info.
- SurceBeats 1y agoThese are definitely good news!!!
- nxobject 1y agoI 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.
- Alex4386 1y ago"Minecraft: Java Edition" has been obfuscated since the release. < Classic Microsoft move. No, It was obfuscated since around 1.8 when you (Microsoft) buy up Mojang Studios. before that? meh, It wasn't. That's the main reason why JE has broader mod ecosystem from the start., result being 1.7.2 being the one of the most active modded versions since most of them can't get passed to around 1.8. The motive behind this is probably due to them finding out people can not get their mods/server software updated in-time (due to extra work required) and this leading people being really reluctant to update their versions.
- xboxnolifes 1y agoMinecraft has been obfuscate since the start. Even 1.7 is still obfuscated.
- pta2002 1y agoI learned to code by modding Minecraft, starting at ~1.6 a few years before the Microsoft acquisition. It was definitely already obfuscated by then, the Microsoft acquisition had nothing to do with it. If anything, looking back all the years, Microsoft has largely delivered on the promise to not fuck up the game and its community. They’ve mostly kept their hands off it, besides the Microsoft account stuff (which makes sense why they did it, but a lot of people are still understandably annoyed). Hell, they’ve kept up two separate codebases in fairly close feature parity for _years_. I doubt they’d have kept JE if there weren’t people in that team who genuinely cared.
- creatonez 1y ago> No, It was obfuscated since around 1.8 when you (Microsoft) buy up Mojang Studios. before that? meh, It wasn't. Huh? This is not true. The very first version released in 2009 was obfuscated with ProGuard, the same obfuscator used today. The reason Minecraft 1.7 was a popular version for modding was because Forge was taking too long to come out, and the block model system was changed in a fundamental way in the next update. Has nothing to do with obfuscation. > The motive behind this is probably due to them finding out people can not get their mods/server software updated in-time (due to extra work required) and this leading people being really reluctant to update their versions. Not really accurate. The Minecraft modding and custom server software ecosystem has more agility right now than it ever had in the past. In the past 5 years, a remarkable shift has occurred: people have actually started updating their game & targeting the latest version. Minecraft 1.21 has the highest number of mods in the history of the game.
- monika_bhuva 1y ago[dead]
- nullfield 1y agoOne and only account (Mojang) that I can think of that I lost because it got taken over, and I couldn’t get support to help fix it (something about “go make another Mojang account”?)… and since I don’t really get the migration process they did or final outcome, it’s more of a “oh well losing that sucks”.
- lurk2 1y agoThis situation was a lot more common than people might think. If you bought the game before Notch introduced the EULA (late 2011 if memory serves), what they did was also probably illegal, since they didn’t have the legal boilerplate in place that would allow them to brick the game the way that they did. There was a streamer trying to start a class action over it a few years ago, but I don’t think anything ever came of it.
- OkayPhysicist 1y agoWhat they did was illegal, and you absolutely can (and are encouraged to do so by Microsoft) sue them in small claims court for your Minecraft account back.
- squigz 1y ago> and are encouraged to do so by Microsoft Source? It seems that if they wanted people to get their lost accounts back, there's more efficient, less expensive ways of doing it?
- OkayPhysicist 1y ago"Encourage" may be a strong word, but it's specifically outlined in the Microsoft Services Agreement: > 11. Choice of Law and Place to Resolve Disputes. If you live in (or, if a business, your principal place of business is in) the United States, the laws of the state where you live (or, if a business, where your principal place of business is located) govern all claims, regardless of conflict of laws principles, except that the Federal Arbitration Act governs all provisions relating to arbitration. You and we irrevocably consent to the exclusive jurisdiction and venue of the state or federal courts in King County, Washington, for all disputes arising out of or relating to these Terms or the Services that are not heard in arbitration or small claims court.
- bob1029 1y agoObfuscating Minecraft code doesn't make much sense to me from an IP protection angle. It is one of the easier games to build from scratch once you see how it plays. Most of the magic is emergent behavior between many simple rule systems. Nothing in that source code would be much of a revelation. It's not like there's a nanite implementation hiding in there somewhere. It's mostly boring stuff like defining how pig or sheep walk through the scene and respond to various goals. The "scariest" part of Minecraft tech is probably chunk management.
- bombcar 1y agoThat's all true now but none of it was true back in the alpha days. And once there were mods and mod loaders built on the obscured source, it became easier to not disrupt the toolchains than to bite the bullet; I think Mojang now wants to make moving mods easier (someone somewhere has to be a bit sad that there are famous modpacks running old versions of Minecraft because it's easier to backport everything to 1.7.10 (including running on newer Javas) than it is to update mods).
- zimpenfish 1y agoOn 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.
- quitit 1y agoI haven't played minecraft in a fair while, but started with the alpha builds back when the Seecret updates were the most exciting thing going for the game. > I'd assume this means that any official modding support is now stone dead and will never happen. I was a bit surprised to read this because talk of modding support had been on the radar since notch days, it's wild to me that this hasn't happened yet.
- movpasd 1y agoI suspect Minecraft was large enough to support an effective modding community from the start regardless of official support, so that there was always some kind of third-party unofficial mechanism (ModLoader, then Forge, then now Fabric and Quilt). Mojang probably punted it down the priority list because of that, or didn't want to impose a structure and kill those ecosystems. Technically speaking, Java is reasonably easy to plug stuff into at runtime, so that was never a barrier. The original issue with official modding support, from my perspective, has always been a legal one. But the Mojang EULA explicitly allows modding now. So I would see this decision as one in a long line of decisions by Mojang to both normalise the legal relationship with modders, and beyond that giving a "thumbs up" to the community.
- rbits 1y agoIt'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.
- sylware 1y agoHeard "AI" can de-obfuscate very easily web javascript. Probably the same with java. No point doing so with our beyond fast and powerful computers.
- AyanamiKaine 1y agoThere is always one thing that I found so facintating with the modding scene in Minecraft. Because Minecraft does not have a modding api but the java byte code can be changed. People simply developed their own way of creating an API. There are 2 main modding APIs. Forge/Neo-Forge and Fabric. [1]Fabric uses Mix-ins while [2]Forge uses a more event based system that is added to the source code of minecraft where they add hooks into events that users can use. To me its just incredible. Its not often that I see that users own an abstraction instead of the developers. I wonder from a modding perspective would it be better if all public methods are just the API users can call and they themselves create a way for mods to exist? [1] https://wiki.fabricmc.net/tutorial:mixin_introduction https://wiki.fabricmc.net/tutorial:mixin_introduction [2] https://docs.minecraftforge.net/en/latest/concepts/lifecycle/ https://docs.minecraftforge.net/en/latest/concepts/lifecycle...
- NwpierratorR 1y ago> I wonder from a modding perspective would it be better if all public methods are just the API users can call and they themselves create a way for mods to exist? It's the way vintage story implemented modding. They developed the whole game as engine + modapi + hooking engine for stuff outside of hookapi. Then most of gameplay is implemented as mods on top of engine using api and hooking. And those tools are open source, with central distribution point for mods, so servers can dispatch and send update of required mods to clients as they join. Marvellous and elegant design. Makes running a server with client side mods a breeze, because mods are automatically pushed to the clients. Though in the end, you can't really open all the interfaces and expect it to be stable without making some huge trade offs. When it works, it's extremely pleasing. Some mods for vintage story that are made purely using mod api can work between major game versions. Even server/client version check is intentionally loose as mismatched versions can still for the most part interact across most of mechanics. In practice, to preserve balance of api evolution and stability, not everything in the game is in the api, and thus you have to use their hooking api, and stuff that is not exposed tends to break much more often, so mods require manual updates, just like in minecraft(though not as bad, tbh. In minecraft nowadays modders tend to support both fabric and neoforge/forge apis, targeting each for at least a few major versions. In vintage story, you only gotta support one modding api heh).
- ika9os 1y ago[dead]
- flykespice 1y agoDoes removing obfuscation implies any performance speed-up for Minecraft Java, or were the obfuscations done in Java with zero-cost?
- OkayPhysicist 1y agoThe obfuscation in question was just name mangling, so it was probably ~zero-cost. Possibly slightly negative cost, depending on the relative verbosity of method names.
- lenerdenator 1y agoCould just go find the Infiniminer source code if you really wanted to have seen it before now.
- hedora 1y agoWe paid for minecraft java edition and have no desire to use the online features. Microsoft logs us out every damn time we close the software, which means my grade schoolers have my (now guessable) MS account password (and I scorch-earthed the account, because this is so dumb I won’t trust or use their crap moving forward). Has anyone figured out how to pirate the binaries? I’d like to remove the yellow sticky note with the password from my monitor.
- OkayPhysicist 1y agoUse an alternate launcher, like MultiMC, and if you're not using the online features anyway, you can just "Launch in Offline Mode", which will just be unable to authenticate with legitimate servers. You'd still need to log in to update the game (I think), but for your purposes it'd probably work pretty well.
- ojosilva 1y agoI hope Claude Code follows the same path. It's just wrong to have such a key tool in your development toolchain obfuscated. Changes to CC reflect in the way I work. I've been modding the app for ever now. Something as simple as evalling prompt changes, or finding ways to optimize context. Just make it OSS, like Codex. To add insult to injury, Claude has coined some key industry standards, such as MCP, now Skills. It also supports plugins, inviting others to release their plugins as OSS on Github [1], while their core remains proprietary. [1] https://www.anthropic.com/news/claude-code-plugins#:~:text=Plugin%20marketplaces https://www.anthropic.com/news/claude-code-plugins#:~:text=P...
- Chihuahua0633 1y agoI 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.
- lucb1e 1y agoClosed-source code isn't that much less secure than open one that I think this is a legitimate worry, especially in this case where the obfuscation doesn't sound like it was effective much
- rbits 1y agoThey already released deobfuscation mappings years ago. Modders already have a deep understanding of the Minecraft codebase.
- mmis1000 1y agoWhether is obfuscated or not. Minecraft java runs most logic in java, and write the save and network handling in parse & validate style instead of serialization/deserialization style. So there isn't much "vulnerabilities" for you though. The game probably isn't best in performance, but there aren't much vulnerabilities either.
- iqandjoke 1y agoHope the rename would not cause unintentional file deletion accident like Japan one. https://news.ycombinator.com/item?id=29734021 https://news.ycombinator.com/item?id=29734021
- zaoui_amine 1y agoGood move. Makes modding easier for everyone.
- xxmarkuski 1y agoMinecraft modding has done so much to get young people into CS. I started learning Java when I was 10 because I wanted to do modding. At university, I met so many people who had the same experience. The tooling developed for Minecraft modding is world-class and better than what is developed during PhDs. It's very advanced, and people internalized the JVM and Java spec. One problem, though, is that Mojang's updates often change much of the foundation, and upgrading mods is very time-intensive. Mojang announced in 2012 that an official modding API is in the works. This is another step.
- hshdhdh 11mo agohttps://vulcanocraft-plugin-v3.onrender.com/ https://vulcanocraft-plugin-v3.onrender.com/