This article is draft quality and needs references and restructuring. It is pretty boring at the beginning, too long, and doesn’t really have a conclusion, for instance. I’m publishing it this way because I have a lot of other stuff to do and I don’t know when I’ll have time to polish, but I think this article can be helpful as-is in the interim. Please excuse the spotty quality.
Minecraft is an intriguing exploration game by Swedish game development company Mojang. In the last almost two years, Minecraft’s community has exploded via exposure on tech aggregators like reddit. Minecraft has always cost money, allowing the independent developer Notch to form Mojang and turn Minecraft into a full-time enterprise and hire additional developers.
Minecraft’s Current License
As I mentioned, Minecraft has been distributed under what is effectively an All Rights Reserved copyright license since its inception. However, as Minecraft’s community has grown and particularly because Minecraft’s main audience is the tech-savvy reddit crowd, which contains a disproportionate amount of software developers, interest in modifying and customizing the game has flourished.
Mojang does not distribute Minecraft’s source and does not allow redistribution of its files (despite Notch’s realistic viewpoint on software piracy). One Minecraft license allows one licensee to play.
The State of Minecraft Modding
Minecraft is written in Java, and that heritage has also played an important role in the modding community for two main reasons: first, Java is an accessible language frequently taught as an introduction to programming, and secondly, and most importantly, Java bytecode can be decompiled to meaningful and useful source code without much difficulty (like most bytecodes).
Mojang uses an obfuscator in an attempt to make decompilation of the distributed jars impractical, but the fine folks at the Minecraft Coder Pack provide a great infrastructure and service to the community in de-obfuscating the obfuscated code (decompilation results in the obfuscated codebase, and MCP contains patches that de-obfuscate and change variable back to meaningful names).
There is a large selection of mods for Minecraft that have been made primarily with this deobfuscated, decompiled source code, some of which are extremely impressive, especially considering the circumstances around the codebase, a complete lack of any official modding support, and the difficulty in working with decompiled, (de)-obfuscated Java.
The Minecraft protocol, interface, mapping format (which was originally contributed by a community member), and other fundamentals have been thoroughly documented despite its closed nature.
As you can probably tell, a lot of people really like Minecraft, and are really interested in contributing to the project, even if it requires a totally absurd time commitment in order to reverse engineer an entire codebase of obfuscated Java. Mojang is doing a large disservice to themselves and the Minecraft community by maintaining these conditions.
Most open-source projects have to struggle and bite and claw to generate interest adequate to get patches from more than one or two developers. Mojang is sitting on a golden opportunity to vastly improve their game, provide useful, marketable skills to individuals, and increase its profitability.
Minecraft should change immediately to a shared source model where each licensee receives a full copy of the game’s source code and is granted the right to share that code and any modifications thereto with other MC licensees. Think how much effort currently wasted on working around the program’s propreitary nature would be saved, and instead invested in under-the-hood improvements, new features, etc. Any Minecraft player knows that there is definitely a lot of room for improvement in Minecraft’s performance.
Minecraft should be developed in public on a site like GitHub, allowing users to track changes, fix bugs, test immediately, and generally providing all of the other benefits of an open development model. Minecraft’s community has already demonstrated its value, practically forcing a closed development environment wide open as far as can be done with the material Mojang provides; the expansive possibilities yielded to MC from an open development model should be obvious at this point.
An Industry Leader
Mojang also has the opportunity to secure for themselves an historic leadership position in software. By providing a thorough shared-source license, Mojang can demonstrate that giving your users source code can vastly improve your product, vastly improve your sales, and vastly improve the freedom and enjoyment of your customers. This is a very important lesson to teach.
The only defense left in the digital realm is entirely legal. Your programs will be distributed on pirate networks if there is any semblance of wide interest in them. Your programs will be disassembled, decompiled, cracked, and reverse-engineered until they can be used without restriction by interested parties. This is just a fact of wide dissemination of object code, and the only reason an informed individual (like the audience that you meet when reddit is your primary avenue of exposure) ever buys your software is because he thinks he should. As such, it should be painstakingly obvious that draconian DRM measures only further impede the sales of a product, as legitimate users are forced to obtain the content via pirate distribution if they are to be expected to use it in a normal and convenient manner.
So, what is gained by keeping your source close to chest? It certainly doesn’t change your sales numbers at all. A legitimate company won’t copy your source code in circumvention of a shared source license because they know that they’d immediately be sued and immediately lose in a blatant case of copyright infringement. Your users will just download your program for free on pirate networks anyway if it is more convenient for them to do so (except for a very small portion of users that do not want to violate copyright law and will therefore probably never even use your program, a net loss even if they would have paid $0 because it deprives potential word-of-mouth marketing, etc.).
There is no logic in this kind of fear. The Free Software methodology has set a precedent and created an impression that supplying your users with source means a complete depletion of meaningful revenue, but a shared source license can demonstrate that it’s in the best interest of every involved party to include source code with every application as long as the FSF’s so-called “freedom to help your neighbor” (i.e., the virtual elimination of traditional copyright privileges (also called copyleft), allowing unlimited distribution by anyone for any reason as long as source and a copy of the license is included) is taken out of equation. Mojang can become a great leader in establishing software freedom for a great many users by demonstrating by example the benefits of providing licensed users with source code and relying on legal remedies (the only realistic remedy for any pirate activity anymore) to ensure that sales remain intact.
With the vast interest in Minecraft, including interest by youth, Mojang can also lead the industry by switching to an open development model and tutoring interested contributors. Getting code included in a game like Minecraft in itself can be a huge motivator for a teen, especially if Mojang offers a small cash bounty for useful fixes, and with Mojang’s help there is potential to succor many-a-youth to a skillset that will allow them to provide utility to the world and a goodly supply of income for their (future and current) family.
Minecraft sales can also be expected to skyrocket as with Mojang’s cooperation, extensive new features can be added (Hammer-like object creator and internal scripting mechanisms, allowing users to craft a model and integrate all-new items into MC without heavy recoding, anyone?), the (many) performance issues can be addressed and enhanced, and so on.
With a community as fervent and committed as the community behind Minecraft, the possibilities really are tantalizing. I sincerely hope that Mojang embraces this great potential.