Voxelvoid – A retro arcade shooter
voxelvoid.com
voxelvoid.com
For the sake of a non-gamer, what is a voxel/are voxels? And, respectfully, what's so interesting about all these voxel games/engines?
Also, is Minecraft a "voxel" game? These type of games/engines remind me a lot of Minecraft.
[1] - https://www.kickstarter.com/projects/gavan/voxel-quest
Minecraft is such a game to a certain extent - you can build structures from blocks that will then obey minecraft-block physics - although that physics is rather simple (e.g. gravity works... interestingly on minecraft blocks) and there are a lot of objects that have special-case support (e.g. tables, furnaces are "primitives" in the minecraft world, whereas in a more seriously voxely game you might be able to e.g. smelt anywhere that the physics decided was hot enough to melt certain materials).
Voxel = Volume Element (3D)
2D : pixels :: 3D : voxels
but you might find this more intuitive:
typical 3D : vector graphics :: voxels : bitmaps
In other words, typical 3D is made of polygons whose vertices are specified to arbitrary precision, whereas voxel-based 3D content is a big three-dimensional array of discrete values. The voxel data can be coarse (like Minecraft) or quite smooth (like an MRI scan), but the distinguishing feature is that the data is discrete.
Minecraft is a voxel game, although there is much (heated) debate over what constitutes a voxel. The main contention with Minecraft is that, while the data is voxel-based at a macroscopic level, each cube contains texture maps (texture-mapped polygons, to be precise), which "violates" the idea of a "pure" voxel (personally I could care less, I'm only specifying what people are debating about). A "pure" voxel being the smallest element of data for visual representation, usually with only one color associated with it (as with a pixel). Some people call Minecraft-style voxels "boxels" - although I once did this and suffered the wrath of the internet.
In my opinion, there is nothing inherently interesting about voxels. There are a few things that they are well suited for which makes them interesting though:
1) Simplest way to build 3D objects, akin to working with Legos. Even four year olds play Minecraft. At a higher voxel resolution, it is like working with clay. Voxels don't suffer from many issues polygons do: overlapping polygons, wrong directional vector or point winding, gaps in the mesh, a corrupted mesh (i.e. twisting a limb too much and making the polygons overlap), and more.
2) Closely associated with pixel art, which has a unique aesthetic appeal. In many cases, voxel art is designed to be low res / chunk, such that it is "timeless" - just like pixel art. Polygons are usually not regarded as this, but there is a new movement with low-poly art that I think could be considered equally "timeless"
3) In my case, why I chose to work with them: they are a godsend when it comes to procedural generation (algorithmically generating assets). This is because it is much easier to describe an object point by point, volumetrically, as opposed to describing just the surface of the object (anyone who does not believe me, write a 3D Voronoi generator with polygons, then with voxels :) ). It is not necessarily more computationally efficient, but it is definitely easier to program. Working with voxels is almost like working with a 3D graphing calculator - you feed in a world position at a given point, it spits out the results of whatever equations you want to run at that point. The difference being with polygons is that you must carefully choose a set of points in the world that fall on the surface of the mesh, and then correctly generate triangles to cover that mesh, normals to describe the faces, and texture coordinates to describe how textures should be applied to the polygons.
Anyhow, this looks like a cool little project. Looks like maybe it is doing volume rendering similar to Voxatron?
The thing I love about this engine is the ability to program the environment. Whereas most game engines restrict the developer to program each entity, this game engine enables the developer to program the environment based on the grid topology.
Also, within Voxelvoid, the entities are re-sampled in each frame. This works just like resampling a 2D image.
In my opinion Minecraft is not a pure voxel engine. While it does use a grid of voxels to represent the world, things like textures and entity models are not strictly aligned with the voxel grid.
Still, I don't believe it crashing had anything to do with the CPU but the way my phone handles memory. It ran on my Android tablet which has a similar processor.
A suggestion: I actually had to re-watch the video to see how the player was losing life. A reduced collision area so the enemies actually have to appear to touch you, and some more visual / audio feedback of a collision with the player would be really helpful.
Voxelvoid is a block/cube-based - just like Minecraft.
Now, this is an example of an actual real voxel engine: http://www.atomontage.com
I think this one counts - look at the aliasing on the player's avatar's turret, and the rotating coins.