The group for gamers dedicated to Linux. No matter if game developers or game players all are welcome interested in Linux as a gaming platform.
Dirkson explores some similarities and differences in related genres.
Posted by dirkson on Dec 1st, 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.
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.
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.
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.