Yesterday, Mojang announced their next video game project 0x10c, and the response has been tremendous. Discussions have covered everything from the math mystery over the game's name, to creating projects that interpret the assembly instruction code the in-game computers use (more on that later), to the debate over why a monthly fee would be required to play online in the "multiverse". To answer that last one, Mojang wants to run everyone's virtual computers in their cloud, even if the user is not logged in; single-player play would not require the fee.
0x10c has one of the nerdiest backstories I've ever heard of for a video game, spawning from the mostly oblique software engineering mistake of confusing endianness of one's hardware.
Our story starts with the release of new deep sleep cells that were supposed to be compatible with the popular DCPU-16 processor in the computers of 1988. Unfortunately the DCPU-16 called for little endian, while the new deep sleep cell used big endian. The endianness of a 16-bit word tells the hardware whether the most significant byte comes first or the lease significant byte comes first.
This mistake resulted in the deep sleep cell mistaking 1 year (aka: 0x0000 0000 0000 0001) as 281,474,976,710,656 years (aka 0x0001 0000 0000 0000). Incidentally, this is where the game gets its name. You see, 281,474,976,710,656 can also be represented in decimal form as 16 to the power of 12. In hexadecimal, that would be represented as 0x10 to the power of 0x0c. To simplify the notation, it's written as 0x10 to the power of c, or 0x10c.
As a result of this error, everyone who went to sleep in one of these cells in 1988 didn't wake up until the year 281,474,976,712,644, though (unfortunately for them) they're still working with the old 16-bit hardware of 1988.
I have to say, the fact that this game assumes such a high aptitude for its players, giving them the ability to not only create Worlds as in Minecraft, but to write and distribute software for the in-game 16-bit virtual computers (complete with their own bare-bones assembly language instruction set), gives me great hope for our future in the real world.
The more kids we can teach to program early, the more amazing things they'll come up with as they get older (or even while they're still young)! Figuring out how to build apps for 0x10c will help teach kids (and adults) many of the same fundamental skills and concepts required to write apps for phones, tablets, and PCs.
If all this assembly language, 16-bit DCPU, endianness, hexadecimal-named stuff makes your head spin, worry not. The game aims to make running other people's software on your in-game computer as easy as running software on the device you're reading this on right now. You don't have to be a programmer to play, but you can still benefit from all the coders that will doubtlessly pour countless hours into creating the in-game software that will make this game nearly limitless in its potential for customization and expansion.
Over the past 24 hours, several projects have already sprung up to try to understand 0x10c, its possibilities, how to code for it, and who to get involved with. So, we want to build a home for the community to connect and share their know-how with others. The more people we can teach to code on this new in-game platform, the more fun the game will be! Come join us and share what you know. We'll do our best to keep on top of the news and find people to bring you great how-to articles on the subject.
For those of you who've already been involved in our Minecraft World, you know we like to dive into the technical details. We have some of the most in-depth redstone tutorials around. We want to go way past that with 0x10c World. We think that, together with your help, everyone can learn how to make in-game apps if they so desire.
Come introduce yourself in the forum. We want to meet you! Share whatever tips you hear on the Corkboard. Ask whatever questions you have in the 0x10c Forum. Teach us what you know about the DCPU-16. And tell your friends to get involved. Oh... and be sure to follow @0x10cWorld on Twitter for updates.
0x10c World is seeking moderators of all kinds. If you'd like to be a part of building up this community, come get involved and let us know!
We need people who can write tutorials. Especially if you can help people who are new to programming to understand the basics of binary, hexadecimal, assembly instruction sets, and specifically how they relate to the in-game CPU.
With proper hand-holding, anyone can learn to do this, so let's help give newbies a chance to broaden their horizons!