0x10c: the new way to assemble hype

Often when a new game is announced, the reader will make a mental note to check back at a later date. Rarely does that reader head off and start building usable components before a single game build has seen the light of day.

Earlier in the week, this look at the hype surrounding 0x10c was posted over at GameSpot. Rather than jump in and out of the article with updates, I'll save that for the end. Enjoy.

It's only been a month since Minecraft creator Markus "Notch" Persson made the announcement of his next game 0x10c, yet already developers have latched onto the games hook, a programmable 16-bit computer, and recreated an ecosystem of programs for it.

Entire operating systems, games, and other applications have been created without the release of a single bit of game code; the motivating spark was simply the specification for the DCPU-16 chip to be used in the in-game computer.

A working minesweeper application written entirely in assembly.

0x10c is a space-simulation game built on the premise that the space race never stopped, such that by the 1980s, space travel was increasingly among the rich and powerful of society. As often happens in sci-fi, cryogenics started to be developed, and it was compatible with the 16-bit computers of the era. But thanks to an encoding error in the drivers between the computers and the cryogenic cells, people have started waking up in the distant future on a spaceship packed with 1980s technology, at a time called the Degenerate Era, when the stars have stopped forming, the universe is decaying, and black holes are starting to dominate.

What really separates this game is that the player will have three of the DCPU-16 computers on their ship, and they are completely player-programmable. Notch will not be supplying an operating system or any applications for the DCPU-16; it will all need to come from the player community.

While it may sound a bit much to expect people to get their heads around, people have already developed applications like this minesweeper game, development kit, and even entire operating systems. One group has even declared itself an unofficial standards committee to provide guidelines to programmers, and the popular code-hosting site GitHub has added support for DCPU-16 files.

That this has appeared in less than four weeks, based on nothing more than this single page, is staggering.

What makes it even more surprising is that so far, almost all programming has had to happen using assembly language — the lowest programming that a person can do without manipulating individual 1s and 0s. Assembly used to be the best way to program for games; it provides the most control and efficiency to the programmer, but it can be laborious and difficult to work with. An example of a game written in assembly is Prince of Persia for the Apple II. Take a look at this file to see why programmers moved on to other languages, such as C.

It's a common occurrence nowadays for games to drip-feed potential gamers a series of teaser trailers to tide them over and keep the heat in a game's hype bubble via social networks and press. Crytek showed how this is done this week with its latest trailer for an upcoming CryEngine release. Make no mistake; the CryEngine will be great (and probably need a supercomputer to run), but gamers cannot create anything substantial for it today. They must wait patiently until Crytek deems that the technology is fit to ship.

By comparison, a 0x10c user could start with a DCPU-16 assembly tutorial, and start making programs to take into the game with them when 0x10c is released.

If Notch decided to end his work on 0x10c, it's likely that niche websites dedicated to making programs for the DCPU-16 would continue. If Crytek ended work on CryEngine, not much would be left for users, other than a handful of YouTube videos and inflated expectations.

Before an alpha or beta build has been released, Notch has managed to spawn a vibrant community that are creating better tools each day for the archaic 16-bit processor. When a playable version of 0x10c is finally released, the cornucopia of programs immediately available will provide an extra layer of richness that few games that have user-generated content can offer.

The future of boot graphics is here.

The bar for creating hype and anticipation for a game has been raised — passive engagement with videos and previews has worked in the past, but 0x10c shows that providing a mechanism for gamers to construct an entire environment while the game is in development is the new gold standard of engagement.

In the future, allowing users to contribute to the game ecosystem will not be restricted to programming; it may be images, video, or text. It just happens, as with many inventions and ideas, that the future had to arrive via the nerdy vein of science-fiction before becoming mainstream science-fact.

Since this article was written for GameSpot, I tried not to get too technical with the subject matter. We can remedy that now.

First up, I'm still flabbergasted by how much assembly has been produced for a virtual and mutable processor. And even though Notch said that the DCPU-16 is close to being finished — indeed, a release candidate for the chip was launched — he still managed to show how mutable it was this week: -- 

To annoy everyone, I'm switching the names of a and b values in the dcpu-16 specification. The new emu runs my test program again! Markus Persson (@notch), April 24, 2012

For those of us who aren't as hardcore as to want to delve into assembly-land, the prospect of a working LLVM project on the chip is good news. It'll be interesting to see just how high up the language stack people will be able to take this.

Being able to observe the way in which the community develops will be interesting. Will a de facto operating system standard emerge? How will malware be dealt with? When will the first 0x10c botnet develop? Will the in-game press be going as crazy for DCPU-16 Michaelangelo virus as they did back in the day?

It's all going to be very exciting. It will be a chance to see a micro-version of the early computing days return. This time, will we learn from history? I'm looking forward to humorously seeing how we don't.