Cubes: MP451/CS459 project description

Kevin Reid
October 2011

“Cubes” is a working title.

Concept

As you may know, in the game Minecraft, the individual cubical blocks are textured with unsmoothed 16×16 pixel textures. All blocks’ shapes (that aren't just cubes) have lengths in multiples of 1⁄16 block, so that the objects have (to some degree) the appearance of being made out of voxels, or smaller cubes. And, people have built giant versions of specific blocks out of colored blocks.

So, what if building blocks out of blocks was actually how the block types were defined? That is the core idea of my project. Ideally, the player can define an entire new block-based game entirely by designing the set of blocks which make it up. Each block in the main world is defined in terms of a 16×16×16 world where the player places blocks to define the shape and color of the “outer” block.

In order to make an interesting game, the blocks must have characteristic behaviors. To accomplish this, there will be blocks which operate as elements of logic circuits, or graphical programs, when placed adjacent to each other. These circuits will have inputs and outputs which affect the outer block the circuits are embedded in, allowing for the definition of behaviors such as growth, decay, reactions to events, physics, and placement constraints.

Student project info

I intend to use Cubes as my project for the Fall 2011 courses MP451 Open Source Software and CS459 Human-Computer Interaction at Clarkson University.

As this is an open-source project, all materials will be made public; where applicable, they will be reusable under the MIT license.

Current status

The basic game engine has already been written. It supports finite-size worlds whose blocks are defined by sub-worlds (bottoming out in solid-color blocks), and a single player able to move about the world (with basic collision detection and dynamics) and place/remove blocks.

It is written in JavaScript using the WebGL API; it will run in any web browser supporting WebGL and ECMAScript 5, including current versions of Chrome and Firefox.

Source code; play game.

Significant missing functionality:

HCI content of the project

These are some user-interface elements of the project which are in need of design, or potentially revisitable, and therefore potentially material for MP451: