Hacker News new | past | comments | ask | show | jobs | submit login
1k minecraft (js1k.com)
198 points by hyp0 on Nov 25, 2014 | hide | past | web | favorite | 32 comments

The creator wrote up a blog post on his entry:


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

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

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.

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://i.imgur.com/ZZWFkXn.jpg. Its entire source code fits in the screenshot.

"tiny cube-based" -- is that the same as "voxel based"?

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.


Firefox 33.1 (Mac) seems to work fine....

Dagnabbit. 33.1.1 not working for me. Chrome works. (OSX 10.9.5)

FF 33.1.1 on OSX 10.10.1 works fine for me.

Both 33.1 and 33.1.1 (noticed updated when I went to about) on OSX 10.10.1 were skewed for me

FF 33.1 on Windows 8.1 isn't working for me either.

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

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

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

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.

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.

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

same on FF34 / win 7.

added image : http://imgur.com/9xK3JoK

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

it also works for in in FF 3.1.1 in Arch Linux

Same for me on Iceweasel 31.2.0 on Debian

Working for me on FF 33.1 win 8

EDIT: and FF 33.1.1

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

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

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

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

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

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.

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


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