Tuesday, November 15, 2011

Did Notch invent a new category of game that he doesn't intend to pursue?

There are a number of Minecraft players unhappy with the RPG elements recently added to the game, in the form of potion brewing, enchanting, and a dragon boss to fight.

The RPG stuff didn't make Notch rich and famous, since it wasn't in the game yet when it went viral.

Had he started with brewing, enchanting, and the dragon fight, he'd still be toiling in obscurity.

Exploring the procedurally-generated world to find a good site for a base, then building it up and staying safe from the bad guys is what made the game compelling for many of us. For a long time Minecraft was about this, as it was what had been implemented before the RPG stuff was tacked on. It doesn't matter to us that Notch ultimately intended to make an RPG when for months what he'd delivered was a survival builder.

With Railroad Tycoon, Sid Meier inspired the creation of many other business simulation games (often with the name "Tycoon" in them), but besides a single sequel many years later (Sid Meier's Railroads), he only did the one. I think Notch is a game designer in the mold of Sid Meier, the pioneering trailblazer who never stays too long in any one place. You can kind of see this from his recent blog Inspiration, motivation, stress, and abandonment.

So on the way to completing his RPG, Notch invented a new category of game that he doesn't intend to pursue. Survival builder set in a procedurally-generated fully editable voxel-based world is a mouthful, so maybe the category will become known as voxel-based survival builders. In the same way that Railroad Tycoon is seen as the original Tycoon game with the railroad theme being incidental, years from now Minecraft may be known as the first survival builder, with oh yeah, some RPG elements.

Since gross revenues from Mindcraft are approaching 100 million dollars, Mojang will have competition, even if it's not from the big companies (see The game’s industry’s massive fail: where are all the Minecraft clones?). It's a perfect opportunity for other independent developers.

While it stinks that we can't have them now, in a year or two I think that several voxel-based survival builders will be available.

[Most of the text of this article originally appeared in a comment on the Minecraft Forums.]

Tuesday, November 8, 2011

Minecraft has grossed $77 million to date

Minecraft's numbers:

VersionUnits soldPriceTotal
Alpha800,0009.95 €$11,014,252
Beta3,200,00014.95 €$66,196,208
Total4,000,000$77,210,460

Sources: Minecraft Draws Over $33 Million In Revenue From 1.8M Paying Customers and Minecraft Reaches 4M Sales.

Will the Minecraft Forge API help resolve the current modding mess?

I thought of a small useful mod I want to implement, so I've been investigating current best practices when modding Minecraft.

Boy, what a mess.

The modding situation in Minecraft is quite chaotic at the moment.

In a January, 2011 interview with Gamasutra, Notch said:
High up on priority is a proper modding API that lets people who make mods plug into the game in a way that doesn't break when we update the game.
That never happened. Instead, in a series of three blog posts (post 1, post 2, post3) in April, Notch renounced the idea of an API, instead opting to someday require people to pay to become licensed Minecraft mod developers and download the full source code. In the meantime, Mojang would do nothing.

Due to a storm of protests, Notch quickly backed down on charging fees for mod development. But as promised, Mojang has announced nothing since then about modding. Thus the chaos.

The Wiki page on data values shows just one of the problems: block IDs are restricted to being 255 or below. That's right, it's 2011, RAM hasn't been an issue for years and yet something as important as the Block ID is restricted to a single byte!

Mods that implement new block types have to find an unused ID in this tiny space and hope that another mod or the next update of Minecraft doesn't claim it too. Indeed, the wiki's own pages provide an example of the problem; Minecraft block IDs end at 121 (End Stone), but IDs used by mods start at 98, probably because the wiki page is out of date and doesn't reflect the changed mod block IDs.

There are other IDs for items and sprites that can clash as well. But IDs are just the tip of the iceberg: in order to function, mods need to modify Minecraft's code, and these changes to the java classes can clash with other mods or Minecraft itself due to an update.

Providing an API to allow mods to hook into Minecraft game functions to prevent these clashes is the task that Notch and Mojang walked away from, and the proposed solution of allowing full source access to developers doesn't resolve it. Even with full source access it will still be possible for mods to step on each other's changes.

Full source access may even make the problem worse!

Currently, modders must process Minecraft's .jar file using something called Minecraft Coder Pack. MCP decompiles the java and replaces obfuscated class and variable names with sensible ones chosen by MCP staff members who reverse engineered the meaning of the code. But despite the heroic efforts of the MCP crew, source code that's been reconstituted through decompilation and deobfuscation is never as clear as the original.

Once Mojang allows access to the full source code, mod development will become easier since the actual source code is clearer and easier to work with, plus the tricky steps to invoke MCP's wizardry won't be needed. With this barrier to entry removed, the number of Minecraft mod developers should increase, and as it does the issue of them stepping on each other's toes will get worse.

Members of the Minecraft mod community have attempted to solve this problem themselves by writing their own APIs, but the efforts have been uncoordinated and several competing APIs exist.

In the midst of trying to figure out which community-sourced API had the most support and complete implementation, I came across an audio interview with FlowerChild of the impressive Better Than Wolves mod. I don't usually go for audio presentations such as lectures or podcasts due to the low rate of information transfer, but FlowerChild is a compelling speaker.

The interview is available both as a single long audio file and split up into several YouTube videos. While they all should be listened to by anyone interested in Minecraft modding, his explanation of the need for and merits of the open source Minecraft Forge API project directly answered my questions about the community-based APIs:

I must say that this is the best minecraft related interview I've seen for a long time. As a person who tracks minecraft moding community for a while, that was damn interesting. -miki537, commenting on the YouTube video.

I'm extremely grateful to FlowerChild for taking the time away from other things to be interviewed. He provides valuable insight into Minecraft modding—not just how to do it, but why things work that way. The metadata, as it were.

I had a chuckle when just after listening to FlowerChild's explanation of the monetary motives of some of the competing API developers to profit from downloads or donation buttons, I came across an API whose developer explained its existence by saying that it provided hooks unavailable when using Minecraft Forge. Rather than contribute to the Minecraft Forge project, this developer chose to remain solo. Sure enough, a donation button appears prominently on his download page, and he invokes his API in his plea for monetary support.

As FlowerChild said during the interview, each additional API to download increases the burden on users of Minecraft mods, as well as complicating the support issues for mod developers. Since naive users of mods have trouble installing mod files, the less they need to do it the better. By keeping his functionality out of Minecraft Forge, this API developer seeks to profit by increasing the burden on everyone else.

Back to the main topic: anyone modding Minecraft should use and contribute to Minecraft Forge. It represents the way forward to a future of Minecraft modding that best serves both users and mod developers. Nondevelopers can help too—mod users can preferentially choose mods that use Minecraft Forge, and request Forge support by mods that don't.

My hope is that Minecraft Forge can achieve the same level of success that the developer community for the WowAce library has done with addons for WoW.

Wednesday, October 26, 2011

Minecraft: Did Mojang Unethically Starve its Cash Cow?

Hehe no I don't think so... We're still only two developers on the PC version of Minecraft [link]
Notch recently blogged that "we’re 12 people in the office", so the two people working on the PC version of Minecraft represent just 16 percent of Mojang's staff that is advancing Minecraft.

As I wrote in Minecraft: Is Notch crazy? Mojang should hire more developers for Minecraft, and particularly, QA staff.

At what point does the lack of resources that Mojang has devoted to Minecraft become an indication of mismanagement? If purchasers of alpha and beta versions were willing to help fund the development of Minecraft, how much cash must roll in before it becomes unethical and immoral to have hired only a single addition developer to work on the game?

Monday, October 24, 2011

Minecraft: Is Notch crazy?

Obviously he's not completely crazy, but lately Notch has made a number of strategic decisions that call his judgment into question.

1. Lawyers. Really?

In his blog Update on the “Scrolls” lawsuit, Notch says that:
Lawyers have been sending papers back and forth, threatening each other with deadlines and court dates.
WTF?

He's pissing money away and wasting his time fighting with Bethesda over the name of a game that's a long way from release? Spending money on this is a horrendous waste, just change the name of the game and be done with it.

Below I'll argue that Mojang shouldn't even be making the game, never mind getting embroiled in a legal dispute over its name.

2. Selling out with an Xbox 360 exclusive.

As I said in Mojang is no longer an indie developer, in selling out by entering into an agreement with Microsoft for Minecraft to appear exclusively on Xbox 360, Notch gave up his freedom and accepted PR guidelines that control what he is "allowed to say."

What I didn't discuss is the effect of Notch's decision on gamers. Microsoft paid a lot of money to Mojang so that PS3 and Wii owners won't be able to play Minecraft on their consoles.

Prior to this deal, Mojang had been very responsive to gamers. But when faced with choosing between Microsoft's money and gamers owning PS3s or Wiis, Notch chose to take the money and thus disempower owners of the other consoles.

(I play Minecraft on PC under Linux. I'm not a console owner and don't care for them, but I don't like exclusive deals since they enrich the partners by disempowering certain groups of potential customers.)

3. MineCon: The Stake in the ground.

MineCon was set up to celebrate the official release of Minecraft on November 18, 2011. The date of release was a completely arbitrary choice on Notch's part. Given that Mojang already has great cash flow without having "officially" released the game, I don't see the advantage to declaring an official release date and putting artificially created deadline pressure on Minecraft's development.

4. Dance with the one that brung you.

Why do another game (Scrolls) at all when Minecraft still isn't finished, and is a now infamous cash cow? Scrolls dilutes Mojang's resources and takes attention away from Minecraft, which could use developer resources beyond what Mojang has assigned.

The Minecraft project would benefit from a few more developers, and particularly, dedicated QA staff.

Minecraft got Notch and Mojang to this point, and it's not yet in the kind of shape that it's appropriate to shift focus away to another project.

Sunday, July 24, 2011

Dwarf Fortress in the NY Times

There's an interesting profile of the creators of Dwarf Fortress in the NY Times magazine. It's a long piece but well worth reading. In it there are a few particularly interesting bits. First this:
“The processing power that Dwarf Fortress uses is on the same scale as modern engineering software for designing aerospace hardware,” says Ames, the engineer. “You have more complicated simulations in Dwarf Fortress than when you model the aerodynamics of a wing.”
Towards the end is an interesting statement echoing my earlier post about games on rails:
At bottom, Dwarf Fortress mounts an argument about play. Many video games mimic the look and structure of films: there’s a story line, more or less fixed, that progresses­ only when you complete required tasks. This can make for gripping fun, but also the constrictive sense that you are a mouse in a tricked-out maze, chasing chunks of cheese. Tarn envisions Dwarf Fortress, by contrast, as an open-ended “story generator.” He and Zach grew up playing computer games with notebooks in hand, drawing their own renditions of the randomly generated creatures they encountered and logging their journeys in detail. Dwarf Fortress, which never unfolds the same way twice, takes that spirit of supple, fully engaged play to the extreme.
 As I said, it's long but highly recommended.

Branching storylines: Still on rails, but with switches in the track

Some people love the Bioware games, but I find it hard to be immersed in a branching storyline.

That's because I know that under the hood the game is still on rails. The difference is that every now and then there will be a switch in the track where one must choose, and the choice is irreversible. I'll be travelling along nicely towards Chicago, and then a switch comes along where if I make the wrong choice I'll end up in Cleveland—or even worse, Akron. Then I'll have to restore from an old save point, because once you've chosen the wrong branch (as they say in Maine), "You can't get there from here."

Then there's the issue of replay value—games that are on rails have limited replay value. Branching simply hides that a bit, but it doesn't fundamentally increase the replay value.

There's also a cost issue which effects the amount of content in the game: each branch adds to the cost to produce the game, so naturally companies seek to minimize the amount of branching in the plot.

Branching storylines are familiar to the Hollywood types who have infiltrated game companies, and many of these people think of games as movies that you can play, with all the inflexibility that's implied.

As an alternative, I'd like to see more effort spent on dynamic, mutable storylines that change in response to the player. To fully realize this vision would require an AI breakthrough that's a long way off, but I think a lot could be done with today's technology. A move towards algorithmically-controlled plots would buck the trend of static stories that's preoccupied the industry for many years now.

In some ways Bioware's upcoming MMO, Star Wars: The Old Republic, represents the culmination of the on-rails branching storyline genre because every NPC is fully voiced. Not only will it be on rails, but the track will be cast in concrete since changing any dialog will require a return to the recording studio instead of just a text edit. This portends the most rigid and unchanging theme park MMO to date.

This is a big reason why I have no interest in Star Wars: The Old Republic—it's just another theme park.