Dirkson explores some similarities and differences in related genres.

Posted by dirkson on Dec 2nd, 2012

Minecraft is a pretty swell game - It's a ton of fun, and it did a lot of things really well. We've used some ideas from it in our game - Intuitive landscape editing with left and right click and an alpha funding model, among a couple others.

But I'm constantly asked whether ScrumbleShip is a Minecraft clone. I mean, we're both voxel games, and Minecraft started that genre, right?

Nope! Minecraft isn't voxel, and ScrumbleShip is. And that makes a HUGE difference.

To understand what's going on, we first need to understand "Voxel". "Voxel" is a combination of the words "VOlumetric" and "piXEL". Just as a pixel is the smallest division of a 2D plane, rendered in a single color, a voxel is the smallest division of a 3D space, rendered in a single color. They can be any size or shape, but so long as they meet the above criteria, they're a voxel.



My hat rendered in orange and black voxels, with lighting effects. My hat rendered in orange and black voxels, with lighting effects.

So let's take a look a Minecraft and see how it fares. We have a grid of blocks, and those blocks don't have any subdivisions, so they're the smallest divisions of their space. So far, so good - Minecraft is definitely volumetric. But each of those blocks is textured with a vibrant 16x16 image - Each block is minecraft is NOT colored the same way a pixel is colored, but is instead divided even smaller. So Minecraft IS volumetric, but uses textures instead of colors, and therefore doesn't use voxels to render.

"But Dirkson", I hear you say, "YOUR game uses 16x16 textures too! You're not voxel either!"

Here's the trick: There isn't a single 3D texture in ScrumbleShip.

Each block in ScrumbleShip is composed of 16x16x16 tiny cubes, each of a specific color. Tiny divisions with an individual color? Why, that sounds like voxels! For every block minecraft deals with, we have to deal with 4096(16*16*16) voxels. An average scene culls from about 4 billion potential voxels to less than 100,000.

But it also means that we can do some amazing things that minecraft can't. Hit a block with a powerful weapon? Only the sections you hit fly off. Blow a hole in a passing clone? You can see white skeleton and red flesh inside. Smash an organic ship? Watch pieces of it heal before your eyes.



Is that... Lung? Is that... Lung?

I think one of the major reasons we ended up looking so similar is that we both chose 16 - Minecraft has 16x16 textures on each block, and we have 16x16x16 voxels per block. For obscure reasons related to binary, 16 is a nice round number for programmers to deal with. We did originally try 12x12x12 voxels, but that turned out a little too ugly, as you can see in the example below. Every time you double the dimensions, you octuple (x8!) the number of voxels needed - A 32x32x32 block, for example, would require 32,768 voxels instead of our 4096! 16x16x16 was simply the smallest round number we could make look good.



A little chunky. Ok, a lot chunky. A little chunky. Ok, a lot chunky.

Of course this isn't the only difference between the two games, just one of the largest and least obvious. The large amount of real-life accurate simulation is a huge difference- I mean, how many game developers stay up past midnight researching the specific heat capacity for various types of Chondrite? (A material many asteroids are made of) ScrumbleShip has a focus on simulation and accuracy shared by few games, but I'll leave a full explanation of that for a future article.

Cheers,

-Dirk