Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Voxelvoid – A retro arcade shooter (voxelvoid.com)
47 points by bottled_poe on Jan 13, 2015 | hide | past | favorite | 26 comments


So just to be clear, this is not related to VoxelQuest[1], right?

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


A pixel is a unit on a 2D grid and a voxel is the counterpart in 3D. What makes voxels interesting is that you can build worlds out of them the palyer can shape, like Minecraft. The smaller your voxels, the better your world might be. The main benefit of voxels over terrain made of textured polygons is that deformation looks better in voxels, because the terrain isn't warping but actually disappearing.


A voxel is a small piece of an object, that's modelled physically. The idea is that we can start having worlds where objects are made of particles, like the real world, and so rather than e.g. a wall being modelled as this rectangle that, at best, can explode in a scripted-set piece into some premodelled pieces, we can have worlds where whole houses are just an arrangement of particles of different substances, and you can interact with them physically in arbitrary ways - maybe you can build your own house by nailing beams together, and then drop a weight on it and see what happens (there have long been dedicated physics simulation games that can do this to some extent, like bridge builder, but the idea of having a physicsy world just as a setting for a normal game is pretty new).

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).


The usual explanation is

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.


James here - This project is unrelated to Voxelquest. I love what Gavan is doing. This voxel engine has different capabilties for a different style of game.

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.


Pixel = Picture Element (2D)

Voxel = Volume Element (3D)


So a voxel game engine would take the 3D scene made of voxels and turn it in to a series of pixel images?


Well, since graphics hardware only understands polygons, voxel engines usually construct a mesh of polygons representing the visible surface of the voxel data, then send that to the GPU to be rendered. Is that what you're asking?


Nope, not related (other than the fact that it uses voxels :) ). As other people mentioned, a voxel is sort of a 3D pixel (VO-lumetric pi-XEL) - it is just a way of representing a particle of data in 3-space (how it is represented and how it is rendered is really up to the programmer).

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?


slightly OT , but for those who like this look, Voxatron (http://www.lexaloffle.com/voxatron.php) is still a thing. It's morphed from a robotron-y sort of thing to a sort of "fantasy console" (that has a robotron game as an example). It's a fascinating experiment, and the development track is all listed out in the site already.


Voxatron is amazing. You can actually play the user mods in the browser now if you want to give it a try: http://www.lexaloffle.com/bbs/?cat=6&sub=2&mode=cposts&order...


I just tested one on my phone in Chrome. It crashed the tab. I figured it just ran out of memory or something so I tried it on my Tablet (which doesn't seem to handle memory the same way because it only has slightly more ram than the phone but doesn't constantly unload apps, which the phone will do) again in Chrome, and it ran but I couldn't do anything since it requires a keyboard.


The browser version is built on EMscripten and is pretty CPU-centric; I'm not at all surprised it wouldn't run on an Android phone.


I didn't have high expectations for it. I think it's worth testing any browser demo or application on a smart devices to see how promising the web as a applications platform is.

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.


Looks awesome! I will definitely look for it when it is available.

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.


Thanks for the suggestion. The collision system is quite crude at this point, I do intend to improve it with a future update.


I have to admit, thats pretty cool.


I don't get why it's cool? What am I missing?


Perhaps it's nostalgia for the C64 generation?


Big money! Big prizes! I love it!


Looks fun. Good work!


I love it!


I wish the industry set the terminology straight:

Voxelvoid is a block/cube-based - just like Minecraft.

Now, this is an example of an actual real voxel engine: http://www.atomontage.com


Voxels are just the 3d analogue of pixels. No textures or high detail required!

I think this one counts - look at the aliasing on the player's avatar's turret, and the rotating coins.


The Amontage Engine would probably qualify as a volume renderer in original terminology.


This is kind of a 'no true scotsman' argument right? In Voxelvoid, I resample the 3D models to a grid in real time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: