Very nice! The texturing and lighting are what really makes this demo. Unfortunately, it only displays correctly for me in Firefox Developer Edition, not FF 33.0, in which the picture is skewed: http://i.imgur.com/7i74m36.jpg.
I'd say it depends on context. Historically, voxels have been analogous to pixels. This has been somewhat blurred by Minecraft, and the widespread reporting on and discussion of it.
At first, the cubes in Minecraft are analogous to tiles (as in the tiled backgrounds or maps of 2D games), but when you use them to build models and things, then they become like large voxels.
Formally speaking, both Descent and Minecraft (inspirations for each respective intro) are based on cubes, but I don't think there are many more similarities. In any case, thanks for that blast from the past!
I can't help but love things like this, if for no reason other than that it makes programmers look like bona fide magicians (and thus justifies exorbitant day-rates).
I don't think 7-bit ASCII behaves the way you think. It's typically the same 8-bit bytes but with the most significant bit clear. So, there's no saving to be had, it doesn't "contract" the bits across neighboring bytes.
Yes but that's exactly what I meant. ASCII wastes 1 bit by character (the 8th bit isn't used). What if the source was encoded in such a way that it is "contracted" (the unused bit of the first character is the first bit of the second character, etc). Sorry for the 3 days late reply. The decoding function would have to be very small to make it worth it though.
Light comes off of it. So it moves, flows and such like the water but it also has to render the lighting effects relative to all that. I could be wrong though, I know the water is difficult to render as well.
I haven't looked at the code of this demo but it seems there's no dynamic lighting at all, the "lighting" of the face of each cube depends only on which side it's facing as far as I can tell.
You can see that the underside of trees is pretty luminous for instance.
http://birdgames.nl/2014/04/js1k-post-mortem-minecraft/
Lots of very interesting details, but surprised to see setInterval instead of requestAnimationFrame