
1k minecraft - hyp0
http://js1k.com/2014-dragons/demo/1854
======
VieElm
The creator wrote up a blog post on his entry:

[http://birdgames.nl/2014/04/js1k-post-mortem-
minecraft/](http://birdgames.nl/2014/04/js1k-post-mortem-minecraft/)

Lots of very interesting details, but surprised to see setInterval instead of
requestAnimationFrame

~~~
emsy
maybe because it saves a few bytes? I don't think performance advantages were
the reason.

------
networked
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](http://i.imgur.com/7i74m36.jpg).

If you're into tiny cube-based 3D engines also have a look at this demo for
the Lobster programming language
([http://strlen.com/lobster](http://strlen.com/lobster)):
[http://i.imgur.com/ZZWFkXn.jpg](http://i.imgur.com/ZZWFkXn.jpg). Its entire
source code fits in the screenshot.

~~~
kazinator
_" tiny cube-based"_ \-- is that the same as "voxel based"?

~~~
andywood
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.

------
sz4kerto
Nice - though I must say this kind of graphics (with music..) was done in
similarly sized 1k/4k assembly demos --
[https://www.youtube.com/watch?v=G1Q9LtnnE4w](https://www.youtube.com/watch?v=G1Q9LtnnE4w)

~~~
Jare
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!

------
bshimmin
Impressive!

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

~~~
libria
Sort of. Every field has its wizards and it’s usually easy to tell them apart
from the apprentices.

------
sysk
I wonder if a few bytes could be saved by encoding the source in 7bit ascii,
decoding and running through eval. Not sure if that makes sense.

~~~
unwind
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.

~~~
sysk
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.

------
monk_e_boy
Doesn't work in FF 33.1.1 on windows 8 -- each line of the image/video is
shifted so the result looks \\\\\\\\\\\\\

~~~
debacle
It's working for me in FF 33.1.1 on Windows 7.

~~~
simonbh
it also works for in in FF 3.1.1 in Arch Linux

------
Aardappel
This one in Lobster, roughly the same amount of code, no textures, but is
interactive (you can actually mine & build):
[http://i.imgur.com/ZZWFkXn.jpg](http://i.imgur.com/ZZWFkXn.jpg)

~~~
akx
What are the sizes of `vec.lobster` and `3dhelpers.lobster` though...

------
FraKtus
Many other are sweet, this one uses WebGL and is very nice
[http://js1k.com/2014-dragons/demo/1868](http://js1k.com/2014-dragons/demo/1868)
(tested on Chrome)...

------
comrh
If I remember correctly the lava is the hardest thing to efficiently render,
correct? Cool regardless.

~~~
talmand
Why would it be any more difficult than rendering the water?

~~~
comrh
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.

~~~
simias
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.

------
iaw
I don't think I've ever seen this site before. It's fantastic

------
leeluolee
Incredible！！

