Wednesday, November 30, 2011

FlowerChild withdraws from Minecraft Forge

Update 11/28/2012: The content and comments formerly on this page have been removed in light of Jeb's recent comment that modders should "be nice to one another" when he addressed copying at this year's Minecon. (I'm not a modder but am a member of the mod-using community.)

Almost a year has passed since I originally wrote this page; Flowerchild's departure is now old news. There is no reason to continue to fan old flames. Mojang is aware of the situation and has addressed it, so de-escalation is the order of the day.

Much has changed in the interim, and to my surprise Forge hasn't wilted in the face of the impending plugin API. The Forge community is now stronger than ever.

See Mojang addresses copying and Minecraft modder conduct and A statement on Minecraft mods copying features from each other.

Tech: Startup script for Minecraft under Linux

I use a heavily modified script to start Minecraft under Linux (Ubuntu 10.04, Lucid).

The script incorporates many of the suggestions from [HOWTO] Optimize Minecraft for Linux thread on the official forums.

It also resizes the Minecraft window on startup to 720p, convenient for recording videos.

You can get it here: minecraft startup script.

Friday, November 18, 2011

Notch exits, hands Minecraft development to Jens Bergensten (@jeb_)

From Minecraft: Beyond "Final Release" by Anthony Gallegos on IGN:
Mojang doesn't have a plan for content after Minecraft's "final release." According to Jens Bergensten, who's leading up Minecraft development post-'launch', he hasn't "planned out anything yet." But many "simple things" are swimming around in his head. Only one "big" feature is in the works right now, but he did let us in on a couple of smaller details he's personally out to change in the coming months.

The big feature Mojang's tackling after the final release is NPC A.I. In the final game NPCs exist, but don't really do much more than meander. With a new A.I. programmer on board in December, Bergensten says the goal is to "give the NPCs in village some kind of purpose" or "predictable behavior that's more interesting than just wandering around."
So Notch has reached the abandonment stage of Minecraft. I'm sure that after two years he'd like to move on to something new. It's not in the nature of highly creative types to add the finishing touches to their game systems, or to do the hard design work required to make a good mod API.

I'm very much in favor of this turn of events. Notch's Minecraft fatigue has become somewhat evident, so it's great he's handing the lead over to Jens, who actually wants to work on it. Jens was originally hired for the Scrolls team, but talked his way onto his preferred project, Minecraft.

No mention of APIs or new mod-enabled launchers in IGN's article, and no mention of Jens' ascension after Notch's abdication during Notch's "keynote"/Minecraft launch session. Perhaps these will get mentioned during the Q&A later today.

Update 11/28: A number of diehard Minecraft fans on the official forums didn't think the articles by IGN and gamespy were credible enough to be believed (yeah, I know). They could only accept the news directly from Notch himself, or from Jens.

That news has finally arrived:

Jens Bergensten tweeted "@MinerFlat64 I will still be fulltime Minecraft, but Notch will be working on new projects"
I find it interesting that Mojang chose to downplay this bit of news until well after Minecon.

Notch's Keynote and Minecraft Launch

Here's a compliation of my tweets during the live stream, which summarize what took place:
  • IGN's livestream covering ONLY the five Mandalay Bay Ballroom events. ALL of the panels will get missed.
  • Livestream up, cheesey opening video ends and @MinecraftChick takes the stage!
  • She introduces CaptainSparklez, who introduces his video "Revenge" - A Minecraft Parody of Usher's DJ Got Us Fallin' in Love - Crafted Using Noteblocks. The video appears to use Minecraft textures in another engine.
  • Now she's talking about the panels, none of which will be livestreamed. Apparently the terse agenda was all anyone got describing the panels.
  • Microsoft Games producer Stuart Platt now onstage. Showing trailer. Minecraft for Xbox 360 demos will be playable in the MS booth.
  • Mojang's Daniel Kaplan introducing Minecraft Pocket Edition on iOS.
  • @MinecraftChick now introduces Mojang staff members who walk across the stage while she pauses her patter to allow for applause.
  • @notch finally takes the stage after @MinecraftChick gets the crowd rhythmically chanting "Notch, notch, notch."
  • Mega64 folks now showing their video about Minecraft, featuring a Notch impersonator.
  • Mojang team gathers on stage while notch throws big mock-up Minecraft lever to release 1.0.
  • After dancing and high-fiving each other while loud music plays, the Mojang team leaves the stage.
  • Session over, live stream returns to still image. On audio we hear someone exhorting people to "please walk" leaving the ballroom.
For another summary of the event, see Danny Sullivan's liveblog, Move Over Angry Birds, It’s The Minecraft Coming Out Party.

It was remarkably content-free. Notch's "keynote?" Blink and you missed it. He spoke for a couple of minutes and said nothing of import. Mostly it was an opportunity for him to bask in the audience's adulation. None of the announcements that Notch alluded to in his blog were made.

Besides the celebration, time was spent marketing two other versions of the game, Minecraft for Xbox 360 and Minecraft Pocket Edition on iOS. Of course it was mentioned that even with a secret advance release, the iOS edition made top grossing app (different from top selling). This was despite lackluster reviews and was mostly due to its inflated price ($6.99) compared to other apps.

Minecon: The event schedule

Minecon is upon us, and for those of us that can't attend, IGN is streaming all a few of the panels live.

The bulk of this post consists of the Minecon event schedule reproduced from Mojang's website, along with my speculation about some of the sessions. I'll be using this as a guide to help decide which stream to view.

One thing I'm particularly interested to see is @jeb_'s (Jens Bergensten's) talk about generating map structures, which I'm guessing will be during the Mojang Developers' Panel on Saturday.

Mojang in October issued an open call for speakers, so its likely that most of the panels will consist of people from the community, as opposed to Mojang employees. Since the schedule (which Mojang called an 'agenda') doesn't list panel members or describe the nature of each session, it's difficult to determine the value of some of the panels. I hope conferees at least get a handout with that information to aid in choosing which panels to attend.

For example, on Friday there's a panel API for Game Developers while Saturday has one called Creating Mods. It would be nice to know more about these panels in advance.

Also missing is any mention of the 'lightning talks' discussed in the open call for speakers.

A distressing number of the panels are about YouTube, either making videos or featuring particular channels. With 1.1 million Minecraft videos, do we really need more?

Friday, November 18th

10 a.m. Game Room and Exhibit Hall Open
1 - 2:30 p.m. Keynote Address and Minecraft Launch with Notch (Mandalay Bay Ballroom A-G) [Notch releases Minecraft! He hinted at surprise announcements—if they happen at Minecon this is the likely venue. Let's hope his fanbois don't overdo it; some of us have weak stomachs.]
2:45 - 3:45 p.m. Panels
  • YouTube 101 (Jasmine ABEF)
  • Composing Game Music (Banyan ABCD)
  • API for Game Developers (Palm A) [Which API? Is this for modding? ]
  • Minecraft as a Tool for Education (Palm B) [Probably presenting material available on The Minecraft Teacher blog.]
  • Creating Custom Maps (Palm C) [Sounds mildly interesting.]
  • Running a Server (Palm D) [Also could be interesting.]
4 - 5 p.m. Mojang Panel with Q&A – Live Demos of Scrolls and Cobalt (Mandalay Bay Ballroom A-G) [Q&A might bring worthwhile questions, but time will be taken up by the off-topic demos. Bah, marketing.]
5:15 - 6:15 p.m. Panels
  • The Art of Games (Jasmine ABEF)
  • Machinima Channel Panel (Banyan ABCD)
  • Bukkit for Multiplayer Servers (Palm A) [The clear choice in this time slot.]
  • Video Editing (Palm B)
  • YouTube 101 (Palm C) [Again? Two presentations of this off-topic panel?]
  • The Family that Plays Together (Palm D)
7 - 10 p.m. Kickoff Party – Open to all Ages (South Seas Ballroom)

Saturday, November 19th

10 a.m. Game Room and Exhibit Hall Open
10:00 - 11:00 p.m. Panels
  • Making a Difference – Minecraft (Jasmine ABEF)
  • YouTube Partners (Banyan ABCD)
  • Amazing Builds (Palm A)
  • Minecraft Community Ideas with Curse (Palm B) [Might yield insight into Curse's intentions regarding Minecraft, or it could turn out to be as lame as it sounds.]
  • Creativity with Redstone (Palm C) [Pointless considering that Eloraam's Redpower 2 mod far surpasses Minecraft's built-in redstone logic.]
  • Modder Concepts & Ideas (Palm D) [Really need to see a description of this. It almost sounds like it's describing the ridiculously ambitious pipe dream mods announced weekly by middle schoolers on the forums.]
11:15 - 12:15 p.m. Mojang Developers' Panel (Mandalay Bay Ballroom A-G) [A must-see. Perhaps the most important event of the conference. Likely venue for @jeb_'s generating map structures presentation.]
1:30 - 2:30 p.m. Yogscast Panel (Mandalay Bay Ballroom A-G)
2:45 - 3:45 p.m. Panels

  • Creating Compelling Videos (Jasmine ABEF)
  • Creating Stories and Comics Using Minecraft (Banyan ABCD)
  • Minecraft Architecture (Palm A) [Is this in-game building architecture? If so, that's nice, but hardly critical.]
  • The Shaft Podcast Live Recording (Palm B)
  • Family Game Night: Bonding through Minecraft (Palm C)
  • Creating Mods (Palm D) [Which mod API will be recommended?]
4:00 - 5:00 p.m. Closing Session (Mandalay Bay Ballroom A-G)
10 p.m. Into the Nether party – 21 and over (XS Nightclub, Wynn Hotel)

Thursday, November 17, 2011

Notch acknowledges Minecraft's modding mess

Last week I wrote about the horrendous situation with Minecraft mods that resulted from Mojang's lack of leadership: Minecraft itself has some inconvenient limitations, incompatibilities between mods are common, there are multiple incompatible and competing mod APIs, and the difficulty involved with creating and installing mods has led to much frustration among mod developers and users.

I've been hoping that Mojang would take the opportunity offered by Minecon to address the mod situation and announce a solution, or at least a roadmap, and apparently that is a possibility. In his blog entry Soon., on Tuesday Notch said:
we have many exciting plans for the next year.. some of these will be announced fairly soon.

One thing that kind of fell between chairs is the mod support.. Sorry about that, I take full responsibility for letting that get forgotten about. But when it comes to the new launcher, it got folded into a new exciting project I won’t talk about yet.
It's unclear if the new exciting project involving the launcher is something we'll learn about at Minecon, or if "yet" is further in the future. Since he discusses them in practically the same breath, apparently the new launcher will include support for installing mods. One can only hope.

Unfortunately for Mojang, this delay by Notch in addressing the mod situation could end up proving to be costly. When you have an energetic user community numbering in the millions, many of whom are technically capable, they don't stand around waiting.

Last spring the Bukkit project was established as an admin and plugin API for Minecraft servers, and its use has become widespread. On its About Us page, Bukkit has made a clear statement of its independence:
...our design choice to keep in the mind the possibility of 3rd party Minecraft servers needing a modding and plugin interface. That being said, when any 3rd party developed Minecraft server becomes stable, Bukkit will be there to allow our collection of plugins to work with them too through a new interface, without any work required for the plugin author to make it compatible. [Emphasis not in original text.]
I've previously linked to Tim Edwards's PC Gamer article The game’s industry’s massive fail: where are all the Minecraft clones?, but one of the points he made bears repeating:
I honestly think the market for games like Minecraft is far, far larger than even Mojang have been able to exploit.
2012 will be the year that Minecraft begins to move beyond Mojang, and a viable third-party server could prove to be a significant factor in Minecraft becoming independent. This week at Minecon we may get an indication from Mojang's announcements regarding mod installation and APIs just how firmly Mojang will remain in the driver's seat.

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

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.