One early summer morning, Carl was on vacation and I was checking my email. Lydia, who was
organizing the flights to PAX and such, had emailed all of us, asking what kind of food we
wanted on the flight. She listed all the options, and one of them was “Bland”.
That amused me immensely. It’s like having an option that says “over cooked” or “a bit on the salty side, isn’t it?”. So naturally, after saying what me and Elin would prefer to eat, I added that Carl wants bland food. He’s a bland food type of guy after all.
Lydia, who didn’t pick up on the humor, went ahead and ordered that, and everybody forgot about it.
Lunch time on the flight to Seattle. It’s about an 11 hour flight or so. The stewardess told Carl he was getting his “special” food, then got served a tiny portion of celery and some salad.
Thing is, Carl doesn’t like bland food at all! Quite the contrary, he likes food with flavor, and decent portions of it to boot.
We all had a big laugh about it. So much fun. Then he forgot to change his order back to regular food in time for the flight back. ;D
So.. if you ever have dinner with Carl, remember that he likes BLAND food.
At PAX, I got asked why we’re not on Steam with Minecraft, and I had to answer the question straight out for the first time. So I’ll repeat what I said on here, because openess is awesome.
Steam is the best digital distribution platform I’ve ever seen. I’ve spent incredible amounts of money on it, and I own a crazy amount of games on it. It runs great, offers great services like that shift+tab stuff, and it remembers my credit card details so there’s no barrier for me when I want to buy a game. The only downside I can think of is that offline mode is a bit flimsy, and that the game list is sometimes full off DLC releases for stuff I don’t even own, and those are some tiny complaints!
Being on Steam limits a lot of what we’re allowed to do with the game, and how we’re allowed to talk to our users. We (probably?) wouldn’t be able to, say, sell capes or have a map market place on minecraft.net that works with steam customers in a way that keeps Valve happy. It would effectively split the Minecraft community into two parts, where only some of the players can access all of the weird content we want to add to the game.
We are talking to Valve about this, but I definitely understand their reasons for wanting to control their platform. There’s a certain inherent incompatibility between what we want to do and what they want to do.
So there’s no big argument, we just don’t want to limit what we can do with Minecraft. Also, Steam is awesome. Much more awesome than certain other digital distribution platforms that we would NOT want to release Minecraft on.
After a looong day at the booth, we had a dinner with Jinx. I had a huge steak and something called a “knockout”, and now we’re putting together an awesome party tonight.
The only problem is that we haven’t invited anyone outside the company yet, and I don’t know how many people the venue will hold. ;-D
I will be tweeting about it during the day, but if you’re an indie dev at pax who wants to go to a 100% free party tonight, I’d say the odds are very good that you will be able to.
We’ve been in Seattle for three days now. The first day was just arriving and eating lunch before crashing in bed. The next two days were meetings and planning with Microsoft, working out some details for the XBox version of Minecraft and getting to know their team a bit better. Today, we did a brief drop-by at Bungie to say hi (but not to Valve! Why not? I miss those guys), then went to the PAX floor to help Elin, Lydia, Vu and a couple of volunteers to help finish up the last details. While doing so, we found a couple of bugs in the 1.8 demo and I had to do some live bug fixing right there.
PAX starts tomorrow, and it’s going to be awesome. If you’re there, please come check out our booth at the sixth floor, we’re very proud of it.
What with all these fancy new web services like imgur and twitter and tumblr and all that, I should start my own, called notchr, for people who are not quite convinced yet.
I made a game in 48 hours this weekend, for the Ludum Dare competition.
It’s an action based dungeon crawler with six levels, four boss fights, and plenty of secrets and loot. It takes about 20-30 minutes to beat the game, and if you die, you need to start over from the beginning.
I am back, and I am excited.
Marriage has been wonderful so far, and nobody sabotaged my computer while I was gone.
The only negative thing going on at this moment is the Scrolls trademark lawsuit nonsense, and I think I came up with the perfect solution:
Remember that scene in Game of Thrones where Tyrion chose a trial by battle in the Eyrie?
Well, let’s do that instead!
I challenge Bethesda to a game of Quake 3. Three of our best warriors against three of your best warriors. We select one level, you select the other, we randomize the order. 20 minute matches, highest total frag count per team across both levels wins.
If we win, you drop the lawsuit.
If you win, we will change the name of Scrolls to something you’re fine with.
Regardless of the outcome, we could still have a small text somewhere saying our game is not related to your game series in any way, if you wish.
I am serious, by the way.
Hi everyone! I’m getting married to ez tomorrow, and I thought we’d celebrate by giving one free copy of Minecraft to everyone who buys the game!
How does it work, you ask?
Well, if you buy a copy
of the game (not a gift code), you get a free gift code added to your account. You
can see the gift codes you have by going to http://www.minecraft.net/profile/
Tell your spouse/lover/friend/acquaintance/stranger go to http://www.minecraft.net/redeem.jsp and enter the code, and within minutes you’ll both be punching trees and installing texture packs together.
Have a great weekend, everybody!
(ps, we are aware of the typo in the graphics, but it’s too expensive to fix now)
We’ll be celebrating the community, celebrating the release of the full version of Minecraft, doing competitions, listening to interesting people talk, and just generally having a great time. Tickets are 99 dollars if you buy them before October.
In other marketing news, we finally got Steve Heads for sale! http://mojang.com/2011/08/12/new-merch/
A lot of people want more details about what is going on, so here is everything I know:
First of all, I love Bethesda. I assume this nonsense is partly just their lawyers being lawyers, and a result of trademark law being the way it is.
About half a year ago, our lawyers recommended us to register “Minecraft” as a trademark, so we did. I had voted against it initially, but we did it anyway. Better safe than sorry, and all that. At the same time, we also applied for “Scrolls”, the new game we’re working on. We knew of no similarly named games, and we had even googled it to make sure. I’m not even sure if you CAN trademark individual words, like “Scrolls”, but we sent in the application anyway.
(Disclosure: We’ve enforced the trademark for Minecraft once, when there was a minecraft clone on iOS, using our name. People were emailing me saying our iOS version was buggy and bad, so we asked them to change the name of their game, and they did.)
A while later, out of the blue, we got contacted by Bethesda’s lawyers. They wanted to know
more about the “Scrolls” trademark we were applying for, and claimed it conflicted with
their existing trademark “The Elder Scrolls”. I agree that the word “Scrolls” is part of
that trademark, but as a gamer, I have never ever considered that series of (very good) role
playing games to be about scrolls in any way, nor was that ever the focal point of neither
their marketing nor the public image.
The implication that you could own the right to all individual words within a trademark is also a bit scary. We looked things up and realized they didn’t have much of a case, but we still took it seriously. Nothing about Scrolls is meant to in any way derive from or allude to their games. We suggested a compromise where we’d agree to never put any words in front of “Scrolls”, and instead call sequels and other things something along the lines of “Scrolls - The Banana Expansion”. I’m not sure if they ever got back to us with a reply to this.
Today, I got a 15 page letter from some Swedish lawyer firm, saying they demand us to stop using the name Scrolls, that they will sue us (and have already paid the fee to the Swedish court), and that they demand a pile of money up front before the legal process has even started.
I assume this is all some more or less automated response to us applying for the trademark. I sincerely hope Bethesda isn’t pulling a Tim Langdell.
I’ve been getting a bunch of feedback that my last blog post is wrong for various reasons, and I’d just like to say that I would absolutely LOVE to be proven wrong. Being wrong is awesome, that’s how you learn.
If you want to read my reasoning behind various assumptions, click “read more”.
Perhaps you’ve seen the videos about some groundbreaking “unlimited detail” rendering technology? If not, check it out here, then get back to this post: http://www.youtube.com/watch?v=00gAbgBu8R4
Well, it is a scam.
They made a voxel renderer, probably based on sparse voxel octrees. That’s cool and all, but.. To quote the video, the island in the video is one km^2. Let’s assume a modest island height of just eight meters, and we end up with 0.008 km^3. At 64 atoms per cubic millimeter (four per millimeter), that is a total of 512 000 000 000 000 000 atoms. If each voxel is made up of one byte of data, that is a total of 512 petabytes of information, or about 170 000 three-terrabyte harddrives full of information. In reality, you will need way more than just one byte of data per voxel to do colors and lighting, and the island is probably way taller than just eight meters, so that estimate is very optimistic.
So obviously, it’s not made up of that many unique voxels.
In the video, you can make up loads of repeated structured, all roughly the same size. Sparse voxel octrees work great for this, as you don’t need to have unique data in each leaf node, but can reference the same data repeatedly (at fixed intervals) with great speed and memory efficiency. This explains how they can have that much data, but it also shows one of the biggest weaknesses of their engine.
Another weakness is that voxels are horrible for doing animation, because there is no current fast algorithms for deforming a voxel cloud based on a skeletal mesh, and if you do keyframe animation, you end up with a LOT of data. It’s possible to rotate, scale and translate individual chunks of voxel data to do simple animation (imagine one chunk for the upper arm, one for the lower, one for the torso, and so on), but it’s not going to look as nice as polygon based animated characters do.
It’s a very pretty and very impressive piece of technology, but they’re carefully avoiding to mention any of the drawbacks, and they’re pretending like what they’re doing is something new and impressive. In reality, it’s been done several times before.
There’s the very impressive looking Atomontage Engine: http://www.youtube.com/watch?v=Gshc8GMTa1Y
Ken Silverman (the guy who wrote the Build engine, used in Duke Nukem 3D) has been working on a voxel engine called Voxlap, which is the basis for Voxelstein 3d: http://www.youtube.com/watch?v=oB1eMC9Jdsw
And there’s more: http://www.youtube.com/watch?v=xUe4ofdz5oI http://www.youtube.com/watch?v=lEHIUC4LNFE http://www.youtube.com/watch?v=Zl9CiGJiZuc
They’re hyping this as something new and revolutionary because they want funding. It’s a scam. Don’t get excited.
Or, more correctly, get excited about voxels, but not about the snake oil salesmen.
What do Stockholm based game developers do when they’re bored? Neighborly friendly cross-promotion, that’s what! Check it out:
To claim the t-shirts, go here: http://www.battlefieldheroes.com/en/minecraft
And if you want to buy them in real life, we sell them on mojang.com!
I briefly talked to the crazy engineers over at Bat Country Entertainment about mods that alter the height limit in Minecraft. Ryan send me this interesting email about what different tradeoffs there are, and his experiences working with it:
Very cool! Off the top of my head, here’s a list of the main points:
Implications behind changing height:
- Memory Implications: Due to the way chunks are architected internally, the only relatively-easy way of increasing level height is to double it. As a result, memory usage can spiral out of control very quickly when increasing the number of bits available to the Y axis. A somewhat short-sighted view would be to point out that this is wholly manageable in SSP, but pragmatically, SMP is already a hornet’s nest when it comes to RAM usage, and the only way to increase the level height would be to neatly double the memory footprint. Ouch!
- CPU Implications: Chunk terrain generation occurs in pieces on the X/Z plane, but expects the chunk to be fully populated along the Y axis, from bedrock to sky. To be fair, much of this can be mitigated by the fact that any terrain above a certain cutoff can be assumed to be completely air, and any terrain below a certain cutoff can be assumed to be completely stone, thus eliminating the need for temperature / humidity / biome calculations far down in the level or high up in the level. Nonetheless, it’s still a cache-thrashing memory-fill operation. Worse still, due to the fact that subterranean features are populated per-chunk, to maintain a consistent distribution of ore you would need to double the number of calls made to any given feature generator as well for each doubling of the Y axis. While this is relatively cheap for things like ore, it’s eclipsed by the idea that cave generation would need to occur along the entire Y axis, and being a recursive function, this has the potential to get very costly very quickly.
- Storage Implications: Anything stored in memory needs to be serialized to disk and read back from disk. Given the fact that in SSP, the number-one performance killer - even on my beastly computer - is disk I/O, it would be a highly questionable idea to double the amount of data that needs to be written out to disk. I’m not completely sure if chunks are gzipped before being written to disk, or if that only occurs to chunks when transmitted over the network, but if they are, this simply robs from Peter to pay Paul - it mitigates the disk I/O issue while increasing the enormity of the CPU issue.
- Network Implications: On SMP, Chunks need to be sent to many more people many times more often than in SSP. It can be taken for granted, from a client’s perspective, just how much data needs to be shoved around by the server, and although network packets are gzipped, it’s still an additional networking load, and still an additional CPU load as well.
Regarding changing the level height, it was “easy” to the extent that it took me around 4 hours yesterday morning to do it, but only because I’ve been poking around the engine internals since January and have been mentally keeping track of all of the assumptions in the code on exactly that topic. From top to bottom:
- Search through the codebase for << 11 and << 7, replace with << 12 and << 8 as necessary.
- Search through the codebase for 128, this will hit the majority of places that assume the map height as being 128, such as tile height checks.
- When changing the above locations, save yourself a recompile and make sure to change any variables from bytes to shorts or ints if you’re increasing them past 128. Being a C++ engineer, I keep forgetting that everything is implied as signed in Java.
- Search through the codebase for 127, this will hit the remainder of places that assume the map height as being 128.
- Search through the codebase for 64 and 63, this will hit the places that assume sea level is at 64, as well as Iron’s ore generator height cutoff. Personally, I dialed sea level up to 96 from 64, rather than fully double it up to 128, in order to have 32 additional tiles’ worth of water height, but have an entire 96 additional tiles’ worth of land height.
- Fix up the level feature generators for Redstone, diamond, gold et al.
- Visually grep through all of the level feature generator classes, doubling the RNG baseline and spread for each one.
- Change a few instances of 32768 to 65536 to accommodate 16*256*16 rather than 16*128*16.
- I’m not sure how much of this is a result of JAD and how much of it is actual code, but there are a few instances of “char whatever = ’\200’;” in the MCP codebase, change it to a short or int containing 256 instead of 128.
I have to say that the game was *remarkably* performant with the Y height pushed up to 256. I imagine 512 might not be too bad on my beast of a machine, either, though 1024 would be pushing it. That said, one of my short-term “just for fun” goals is to see if I can’t get the Nether to populate from 0-127, the main world from 128-255, your Sky dimension from 256-383, and then that one group of modders’ new dimension, the Aether, from 384-511. That would be epic.
Additionally, there’s a mod that some guy made that re-works chunks to be 16x16x16 (it appears), but I’m rather nonplused by it. The bug list is as long as my arm, and it doesn’t actually rescale any of the terrain-generation features, so you don’t get neat things like this: http://moogle-tech.com/bce/gorge.png
As a result, I’m in the process of just trying to re-do what he did on my own. I’m filling all chunks above Y=256 entirely with air, filling all chunks below 0 with stone, manually invoking the cave generator, and theoretically things should just work. In principle, theory is a flimsy thing to go on, and to that end I’ve been chasing down bugs for the past 4-5 hours. At present I’m able to get in-game, but the chunks are horribly mis-arranged, so I suspect I’ve missed an important hashing function somewhere, since that would also explain why it’s spitting out reams of “Wrong location!” exceptions that it’s spitting out whenever it tries to spawn animals - the level provider is providing the wrong chunk.
Bug fixes, bug fixes and bug fixes.
- Corrected a block duplication bug when using pistons
- Corrected a redstone torch duplication bug when using pistons
- Corrected a client crash when placing a sign in front of the piston, powering the piston and then removing the block beneath the sign
- Ice blocks are now pushed without causing water streams breaking everything
- Booster rails are no longer being powered magically without a power source
- Pistons connected to the end of a piston-transistor via redstone are now properly closed when the power goes out
- Doors no longer create purple particles
- Hacking clients can no longer edit texts of placed signs in multiplayer
- Changed so that paintings pushed by pistons will pop off
Most of the basics of the game engine is in place, so it’s time to flesh this game out into something more gamey. More content, more exploration, more things to do, and interesting combat! Once this update is out, there will only some tweaks, optimizations and code cleanups left to the core game before we can call it a full release.
We’ve got a list of some 40+ things we want to add to the game, some small, some big. Some huge. We’ve finished a fair number of the items, but there’s still a significant amount of work left. While I can’t reveal the date yet for various reasons, we do have a release date for the Adventure Update in mind, and we’re hoping we’ll be able to hit it.
Jens and I are keeping the exact contents of the update secret, but we do leak some information every now and then to keep people interested and to stop us from going insane. For the most immediate spoilers, you can follow us on Twitter (@notch and @jeb_), or on Google+ (+Markus Persson and +Jens Bergensten).
Here are a few of the things we’ve revealed so far:
As soon as I can reveal the release date we’re aiming for, I will!
Oh, and the modding support is happening, honest.
I’ve received a few emails about Bill S.978, a new bill proposed in the USA, which would make it illegal under certain circumstances to share videos of copyrighted materials over the internet. The problem is that it appears to also make it illegal to upload videos of games, such as let’s plays and speed runs. And I love watching let’s plays and speed runs.
Here’s a great video on the subject I found via Reddit: http://www.youtube.com/watch?v=ib7-vSrp6y8
If the bill passes, I suspect many game companies (including us) will add a special clause to the TOS specifically to allow posting videos of their games. A huge part of why Minecraft has grown so fast is the YouTube community.
Minecraft just passed 10 million registered users.
+ Added pistons
+ Fire or redstone is now required to trigger TNT
+ Fences can be stacked
+ Added shears
+ Shears can be used to pick up leaf blocks
+ Shears can be used to shear sheep without hurting them
* Sheep no longer drop wool from being punched
- Removed Herobrine
Since 1.8 is still a significant time away, we’re going to have to stop being as secretive about it as we have. We’ll provide information about it as we go, but we’ll keep actual details secret. So, for example, we could say “added two new colors” without saying which ones, or “testing experience and leveling to see if it’s fun” without giving details on exactly how it works.
The update is pretty big, and will change a lot of how Minecraft is played, focusing on making exploration and combat much more rewarding, and bringing in a bigger sense of adventure to the game.
Already implemented are new complex terrain features, at least one new mob, some interesting new combat mechanics, a new lighting engine, and some experimental new gameplay ideas. To come is more interesting farming, bigger incentives to explore, and npc villages.
After a few weeks out of the office (E3, then Italy, then F.3.A.R this weekend (great game!)), I’m finally back in the office. The chair is a lot more comfortable than I remember, and the office is overflowing with irony. While I was gone, we’ve hired another graphics artist to help out with Scrolls, Mattis (@bomuboi on twitter), and two more potential employees are being talked to. More news on that when we’ve signed them.
Me and Jens have been independently working on stuff for the adventure update, and it’s been growing in scope as we’ve been working on it. That means it will take quite some time to finish, but that it will hopefully change the game a lot to the better. To prevent going too far between updates, we’ve decided to release Pistons early.
That means 1.7 will be released soon, containing only pistons and probably a couple of bug fixes. The adventure update will take however long it takes, and will be released as 1.8. It might be a long wait, but it will be worth it!
After 1.8, we’ll have to start crunching for the full release in November. That includes finishing up the mod api, improving stability and performance, adding supporting features like friends lists and a proper server browser, integrating singleplayer and multiplayer, and most importantly fleshing out the gameplay.
The release date is almost certainly changed to sometime the week after 11/11/11, and we’re working hard on setting that up. We want to make a big spectacle out of the release where we involve fans and celebrate it properly.
Then we’ll rest for a few weeks. Then I’ll start working on the first post-release update. :D
Hi! E3 is over, and we’re flying back to Sweden in a few hours. I have loads of information and news to share, so here’s a rambling information dump:
* Minecraft fans are amazing. I spent a fair bit of time at E3 signing t-shirts and cardboard heads, trying to speak with as many fans as possible, and every single person was super friendly and nice.
* It looks like we need to change the release date for Minecraft to be able to get a good venue for MinecraftCon. 11/11/11 is fully booked. One week later, perhaps? I’ll post more details as soon as we’ve decided and booked a venue.
* Minecraft is coming to XBox 360. It will be a new version of the game, designed specifically for console play. We haven’t decided on a name yet. It will feature (but not require) Kinect support, and is being released “this winter”. It will be a 360 exclusive title.
* Minecraft is coming to Xperia PLAY. It will be a new version of the game, designed specifically for mobile play. This version is called “Minecraft - Pocket Edition”. It’s built as a native Android game, and will take full use of the Xperia PLAY controls. After some period of exclusivity, we will release it for all modern Android phones.
* On both these platforms, I’m going to be more secretive about giving out details. This is because there are actual PR budgets on them, and I don’t want to mess up any big plans.
* I will be the game designer on both new Minecraft titles, but I won’t be involved in the programming as I’m focused on the PC version of Minecraft.
* We are working on Minecraft Beta 1.7, which I’m referring to as the “adventure update”. We’re keeping the details secret so people can get surprises. The idea with this update is to flesh out the game a bit, making it reward exploration and combat more. Assuming we like them in play testing, pistons are coming in 1.7.
* I’ve now been to the Playboy Mansion! Woo! Not related to Minecraft at all, but I just wanted to share that. :D
* Speaking of not Minecraft related, I got to see the Skyrim demo (thanks, Tim), and it’s freaking amazing. While the dragons in the demo were obviously scripted (he knew exactly where they would land and such), they claim they’re fully dynamic and unscripted in the full game.
* We’re starting the modding support on a small scale with 1.7. We’ll be giving the source code out to a very VERY small group of people before the release of 1.7. We’ll use those experiences to work out the final details, then we’ll get the modding api out as soon as possible after 1.7 has been released.
* Again, if you weren’t ware, the “modding api” is the entire source code for Minecraft, uncensored and unobfuscated. You need to agree to certain terms to get access, though, but anyone can apply.