Minecraft is removing Code Obfuscation in Java!
On a random Wednesday, Mojang posted an announcement that none of us would have ever expected. From future snapshots, Minecraft releases will include their code un-obfuscated, or in other words: entirely visible! (See original post here.)
This is wonderful news! Mojang has always been in favor of modding the game and this move will lead even more people doing so. Minecraft already has one of the largest modding communities in gaming, with thousands of mods available and millions of players who install them regularly.
What this means for developers
But more importantly, this is a great news for us developers as well! Even if you don't plan on modding the game, having the source code accessible means you can learn how Minecraft is built, piece by piece, and improve your skill(s) even more. Just think about what lies behind the procedural world generation: algorithms for chunk loading, biome blending, structure placement and cave carving that have been running in production at massive scale for over 15 years. We're excited!!
For modders specifically, working against obfuscated bytecode meant relying on community-maintained mappings (like MCP or Yarn) to give readable names back to obfuscated fields and methods. That extra step added friction and sometimes caused mapping mismatches between versions. With un-obfuscated code, that entire layer goes away.
A rare move
During times like this, where money is often put before everything else (and it'd be difficult to justify releasing your entire codebase), it's nice to see Mojang take an important step towards the community and developers. Looking forward to learn more about the game's behind the scenes!
Frequently asked questions
What is code obfuscation and why did Minecraft use it?
Obfuscation renames classes, methods, and fields to meaningless names (like "a", "b", "c") to make compiled code harder to read. Minecraft used it to protect proprietary code from easy copying.
Does this mean Minecraft is open source?
No. Removing obfuscation makes the compiled code readable, but the source code is still Mojang's property and the license hasn't changed.
Does this affect Minecraft Bedrock Edition?
The announcement specifically covers Minecraft Java Edition. Bedrock Edition is a separate codebase written in C++ and is not affected.
Federico is the founder and original "Febucci", developing games since 2016 and helping others do the same. Started as a solo developer and built a team around Text Animator making tools, games and traveling to events with talks and more.
Comments