Minecraft is an interesting case when it comes to indie games. Based on the ideas of another indie game, Infiminer, Minecraft is the product of Swedish developer, Markus "Notch” Persson. His game is currently available to play for free at www.minecraft.net and players have congregated to the multiplayer side of the game, where users can build and destroy cubes of varying colors.
But the core of Minecraft is its /indev/ version: the alpha form of the game that is currently only playable by those who pay the $13 early-bird fee. Notch’s plan is to introduce new ideas and features in /indev/ to those who have paid, then roll out previous versions for free.
Currently, /indev/ consists solely of a survival mode which requires players to mine ore, coal and stone, farm trees and food, and generally prepare their starting hovel for the dangerous zombies and skeletons that arrive at night. It’s a surprisingly deep experience that the folks at 4Chan have taken a liking to.
Today, Notch has over 6000 paying players and many more who play for free online. We caught up with him and administered a lengthy interview.
When did you learn to program?
Notch: My father bought a Commodore 128 when I was seven years old, and we started subscribing to a computer magazine. It was a huge one, newspaper format, and it had program listings in it that you could enter into your computer to get a silly little game or fun effect and things like that.
I started entering them, and noticed that they broke or did different things if you changed what you entered. I don't remember exactly how fast this process was, but I know I made my first own program when I was eight years old. It was an extremely basic text adventure game where you had to enter the correct sentences to move on to the next room ("open the door", "kill the ninja", that stuff).
Minecraft seems to have more in common, code wise, with an enterprise Java application than with a regular game. Maybe that's just because you're running an application server... But am I right here? It seems like this is quite differently designed than most games.
I don't know if it does! Well, the distribution of the game is currently very web based, with links being passed around to join servers or load maps, but other than that it's written pretty much the same way I write all my games. And it's quite a few of them by now since I worked for king.com for over four years.
But I do like to make my games less static than most regular games. I'm much more interesting in making working interactive worlds than just pretty sets you walk around in. And since my hobby games and Minecraft are designed on-the-fly rather than having a single fixed up front plan, I try to keep things as open as possible so I can easily add features that pop up.
How did you come across Infiminer?
There was a thread on it on the TIGSource forums about the same time as I was playing around with 3d tile based builder game from an isometric perspective. It was supposed to be a lightweight Dwarf Fortress. Kinda like if DF and Rollercoaster Tycoon had a baby. I made a blog post on the origins of Minecraft here.
The visual style of Infiniminer is a really interesting one, since it both leaves a lot up to the imagination, and is highly representative (if a bit iconic in style), and suits tiny development teams very well. Not to mention it makes it possible to display millions of blocks at high framerates!
I hear you're planning on sticking with Minecraft for a while. Are you really hitting your stride with the game, or are you simply responding to the overwhelming interest?
I'm really comfortable with the game code by now (although there are some ugly hacks in there, as usual), and there's a million things that can be added. My original plan to have this be a shorter project are mainly driven by my desire to make more games and not just get "stuck" creatively. But since Minecraft seems to be getting quite popular and people seem to encourage all the things I add (even things not part of the original plan, such as nighttime, seasons and infinite maps), I decided to stick with this for as long as it's popular.
I will work on other games on the side, to preserve my creative sanity, but it will be my primary focus for probably quite some time to come. Hopefully.
How many people have paid for the game? Is this a viable model for professional development?
I've sold 6400 copies so far. Some statistics can be seen here. I try to keep everything open so people can see how the game is doing and so, even though I'm not entirely sure if that's a good idea or not.
During the nine months I've been selling the game, that averages out to about 24 copies sold per day. For the last two days, it's sold 200 copies per day, though, which is just crazy.
The sales curve has always been extremely tightly connected to the development speed. The more I work on the game and talk about new features, the more it sells.
I also have a "day job" which I spend two days per week on, both for security, and for preventing me from becoming a total shut-in.
As for being a viable model, I don't know. What is? I definitely think you can get a long way by being fair to your customers and having a close relationship with them, and selling "pre-releases" while developing the game is a great way to both fund development and to gauge how well the things you've added so far works (both technically and commercially).
Do you read 4Chan?
Yes, I sometimes do. I've even posted! It's a fascinating and scary place. Is that really what we're like, us humans? Or is it just layers of irony upon layers of irony? Perhaps it's just trolls? It might be one of the closest things we've got to a self-conscious virtual entity on the internet.
Anonymous seemed to decide that Minecraft was a good game, and I love them for it. That's basically the most honest praise I've ever gotten.
What do you think of Dwarf Fortress?
Dwarf Fortress is one of the best games out there. For me, it's the similarity to Dungeon Keeper that's the biggest draw, closely followed by how much it draws from roguelikes. I used to play Ancient Domains of Mystery a lot a few years back, and it always had a certain mystical magical feeling to it. Dwarf Fortress has this too, and it's not just the lack of "real" graphics that does it, it's more the way you can suddenly fail totally and know it's your own fault. But you don't mind. You just start over, and start killing all cats on sight.
Dwarf Fortress and roguelikes in general are some of the biggest inspirations for the gameplay of Minecraft, and Toady One is a true hero.
Is this the first time you have worked with procedurally generated content?
I've been interested in procedurally generated content for a long time. Games like Daggerfall, Frontier (Elite 2), and roguelikes are very fascinating to me, they seem to hint at something bigger than just what the developer thought up. There's a certain elegance in telling the computer how to make a world to show to the player rather than to tell the computer what world to show.
When I was working on Wurm Online, I was in charge of making the maps, and intentionally used a very pseudo-random method for making them where not even I knew exactly what the maps looked like in detail.
With the Java4k competitions, I found it easier to do procedural graphics and content rather than to try to squeeze a lot of graphics into the file, and I practiced it a lot there. Ironically, my "big" games are mostly procedurally generated these days, while my two latest Java4k games both have pre-designed graphics and levels.
There are already custom clients for your game, written by the community. How do you feel about them?
I find them demotivating. I'm a strong believer in the user's right to play around with and modify games they've bought, so I'm not going to do anything about them. But a lot of them have the potential of encouraging or enabling piracy, or making griefing easier in multiplayer.
What's the strangest thing you've seen built in a Minecraft server?
I don't know if I've really seen anything that strikes me as strange. I've seen a lot of impressive stuff, both creatively and technically, and there's a lot of weird abstract stuff, but nothing that really feels strange to me. I like it when people replicate things in the game, like the Riksdagshuset replica ecrider made for me this Christmas.
The most impressive thing I've seen technically was when people figured out how to make single use logic gates out of sand and water in Minecraft. People made real working (single use) computers that could add two numbers. Very impressive!
What is your coding routine like? Late nights? Coffee addict?
I don't think I have a routine yet! Many months into the project, and I'll still changing my schedule a lot. It mostly depends on how interesting the problem I'm working on is. If I run into something tricky and interesting, I can stay up very late and try to get it working, but other than that I think my hours are mostly sane.
I don't drink a lot of coffee at home, mostly out of an inability of making decent tasting coffee, but I am a sucker for espresso, which I drink as often as I can when I'm outside.
Oh, and I drink a bit too much Red Bull..
What is your favorite game?
There are a lot of games I love, and picking just one as my favorite one is really difficult as they are so different. Doom, Half-Life, Dungeon Master 2, and Monkey Island are probably my top four games. In recent times, I really liked Oblivion, Dragon Age: Origins, CoD4: Modern Warfare, and Dwarf Fortress.
What is the first game you ever played?
I don't remember! It probably was something on the Commodore 128 my father bought. The first game I ever bought was Bard's Tale for C64. I didn't understand anything of it, but I remember it feeling very magical and wonderful.
One my earliest gaming memories is playing Raid on Bungling Bay on a black and white TV in our living room. I'd mostly fly around for a bit then try to land on the carrier again before the scary jet fighters started appearing.
You seem to have a lot of contact with your players. Does this shape your development process at all?
Oh yes, a lot. It mostly helps me decide which of the infinite list of potential features to add first, but every now and then there's a really great suggestion that I just have to add, and even more often, they help point out mistakes I've either made or am about do make. I try to spend a lot of time on the official IRC channel for instant contact with the most hard core of the players. It eats up a lot of time, but I think it's worth it!
Tell me about some of the games you built for your day job?
I quit King.com almost a year ago to be able to focus more on the games I wanted to make. During my time there, I programmed quite a lot of games. The ones I'm the most proud of are probably the Zuma and Luxor ports, the pinball game (Pinball King), and a simple little game called Duck Pond Dash.
There are a few I'm less proud of, but I won't say which.
Know any other programming languages?
Yes, I do. I've made finished games in Basic, Pascal, C, C++, Java and Actionscript. I'm interested in learning new languages, especially ones that compile for the java virtual machine, such as Clojure and JRuby.
My ideal programming language would be a mix between Java and C++, where you can have const parameters and functions, function literals and closures and operator overloading.
Some recent wisdom of the "internetz" states that communities in the thousands are functional, but when it becomes hundreds of thousands, sometimes just tens of thousands, the conversation breaks down. Do you find it hard to keep up as the community grows?
I replied to every email I got up until just a few weeks ago. Replying to emails was taking up an hour and half per day. I've also noticed that the forums and the IRC channel seem to be getting more and more chaotic the community grows, or perhaps it's just me having a harder time keeping up.
One good thing about the blog I've got is that it scales very well with community size, but it's unfortunately just one way communication. Bringing in stuff like polls into that makes it slightly more two way, but not enough. I will to try to maintain direct communication for as long as I can.