All the code for this can be found on GitHub.
You will notice that all the 3d rendering is done through a 3d library
called zengine.js
which you can find here on my GitHub.
This is my most ambitious use of that library which was written from complete scratch, bar
the built-in trig functions and the ability to draw shapes to a 2d Canvas.
In addition the code uses an adapted version of my perlin.js
library.
Which I modified so that each chunk is seeded based off a deterministic function of the base world seed - so the world is infinitely large,
but only requires a couple of bytes to store (the seed integer).
In terms of the multiplayer aspect, I have a Google VM Instance which, among other things, hosts a websocket server that you are (hopefully) currently connected to. I say hopefully since it is most likely not running right now (sorry), but to pre-empt the game breaking, I have encorporated error detection and if there is a server error, a red message should flash up and you can enter offline mode.
Finally, bare in mind that this is currently a work in progress, so:
Enjoy! (and if you do, please star me on GitHub)