How Mojang and Minecraft Could Change the World

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.

The Possibilities

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.

The Netflix/Qwikster disaster

As usual, this post is merely an edition of comments I’ve made on HN.

The Lowdown

Netflix has announced its intention to spin out its DVD-by-mail service into a separate entity called “Qwikster”. Netflix will henceforth offer streaming video exclusively. The two sites are completely discrete and will no longer share data or even a billing mechanism.

This is a terrific disaster for Netflix devotees and Netflix itself.

The Customers’ Disaster

The primary issue is that Netflix has made a major consumer-facing split on what is really an implementation detail. Netflix users want to watch movies. That is the reason you get a Netflix account, that is the goal of the Netflix customer. Whether that movie is available on DVD or via the intertubes’ streaming fairies is not really exceptionally relevant to the customers’ ultimate goal of watching that movie. Netflix is a company for intrepid movie-watchers, and artificially restricting this to intrepid streamers is just leaving money on the table.

Netflix’s success heretofore has been based upon a vast simplification in watching movies. In splitting the service and creating an artificial rift in their offerings, they’ve backpedaled tremendously; with the hard division of DVD and streaming, Netflix has gone to lengths to de-simplify your movie watching in order to remedy what really was a problem with management structure.

Netflix emphasizes, as they have for years, that DVD-by-mail will eventually go away. They do this in the same breath as they attempt to encourage users to register for Qwikster, essentially promising that those who are still interested in receiving physical DVDs will, in the relatively near-term future, have even greater hassle to their ultimate goal of watching movies, because Qwikster will shut down and take its users’ ratings, recommendations, and rental history with it.

What Should Have Happened: Redbox + Netflix

Instead of dividing the company in a way that made movie-watching less convenient, Netflix should have turned its attention to Redbox. Netflix and Redbox (which is now owned by Coinstar, a much less compatible couple) are a match made in heaven; Redbox is ubiquitous in most areas of the US these days and could function well as Netflix’s physical distribution arm, cutting Netflix’s dependence on the dwindling US Postal Service and saving postal costs.

I am personally acquainted with several individuals whose Redbox usage has replaced Netflix. These people are primarily interested in recent-ish releases and might have streamed if the content were available for streaming, but since desired content is rarely streamable, found it simpler just to go to Redbox and pick up the physical DVD. This is much faster than waiting for the mail, which in most cases has a 2-4 day turnaround.

Redbox would be an investment worth quite a significant chunk of money and integrating a user’s Redbox experience with the Netflix website would have been a great win. My speculation is that Coinstar doesn’t really know what to do with Redbox and they may have acquired the kiosks in anticipation of reselling in the first place, since it really doesn’t fit in with their standard business practice.

I recognize that Reed Hastings would probably balk at this suggestion; Netflix doesn’t want any of the hassles of pesky physical media anymore, and if nothing else they’ve made that quite obvious today. But I think it’s misguided — as exciting as streaming is, I don’t think discs are going to make a permanent exit any time soon. There are still issues with streaming delivery, like conflicted, guarded ISPs (Comcast, whose cable subscription tallies are constantly diminished by Netflix) and the non-tech-savvy who insist on using ancient computers riddled with spyware and can barely get Gmail to load in less than 10 minutes, let alone stream a HD movie. It’s much easier to go pick up a disc and place it in a tray than it is to start a Netflix Instant movie, especially since one must usually install Silverlight before watching.

The staying power of physical DVDs is really its own post, so I’ll just stop there.

And on top of all that, the prevalent red color schemes of the Netflix website and the Redbox kiosk already match. How is this not obvious?