Hacker News new | past | comments | ask | show | jobs | submit login
Mc.js: A Minecraft clone built entirely with JavaScript (github.com)
109 points by feross 67 days ago | hide | past | web | favorite | 28 comments

I suppose this is good, but Javascript can pretty much do anything these days, as I assume most people know. In fact, a guick Google reveals quite a few Javascript' Minecrafts. Not sure why this is special.

I think projects like this show a lot of brainpower and determination the developer has. In case someone wants to prove his knowledge and connect different kind of technologies, a project like this is a wonderful way to do so.

Heads up to anyone doing such projects. It's amazing.

I second your comment. I'm sure the developer learned so much from building this and skills learned can definitely be applied to other aspects of their career.


I for one find this project very worthwhile, there are/were plenty of web-based clones of Minecraft but many abandoned or haven't caught on. ian13456's mc.js, which I just learned about from this post, has 1717 stars on GitHub, quite impressive.

I'm aware of a couple other attempts. voxel.js (the furthest along fork seems to be http://voxelmetaverse.com - code https://github.com/deathcap/voxelmetaverse hasn't changed since 2016, and the domain expires 2020), originally named minecraft.js, written in pure Javascript originally with three.js, then stackgl using npm and browserify.

My attempt is https://satoshinm.github.io/NetCraft/ (source code: https://github.com/satoshinm/NetCraft), but it is implemented slightly differently, in that it is actually written in C (based on fogleman's "Craft") and compiled to WebAssembly to run on the web. This avoids some of the performance pitfalls with Javascript and garbage collection. It even lets you play on a Bukkit-compatible server using a plugin.

Unfortunately I have abandoned my project as well, but C/C++/Rust compiled to WASM may be the future, although it will be interesting to see how far this pure Javascript-based client can go. I wish mc.js developers the best of luck, we had similar goals of wanting to play Minecraft on the web.

As someone who has tried to do make a Minecraft clone in JavaScript perhaps I can shine a light on why I tried it. I guess first and foremost I'm fond of Minecraft and I'm primarily a JS developer. So when I wanted to improve my game development and webGL/openGL capabilities it was quite a natural choice. Jumping into the actual project there's a few attempts around on the web, probably by people with similar mindsets. This means there some references on roughly how the game works. There's some quite interesting little things I learnt from it: implementing perlin noise, procedural generation techniques, triangulation of voxels, various boilerplate stuff for webGL and webGL 2, voxel optimised ray casting, deferred rendering, shadow mapping and world chunking.

All in all it was quite profitable; several of those things have come in useful for my day job since then. Of course it didn't much improve your game design skills, as I was just copying another game.

I never finished it, and looking around most of these copies are in a similar state. I'm proud of what I achieved and each problem I overcame but I can't even claim mine competes with the original or even the best clones out there. It's fairly easy to reason why most of these clones were never finished. It's a huge amount of work and the goal has already been reached by someone else. So motivation after the initial "oh hey I built something a little like Minecraft" is hard to find.

These sorts of project serve 3 purposes: - inspire others to try something similar ( hopefully for the same reasons ) - improve your own abilities - show appreciation to the developers of Minecraft

As for why this project is "hacker news worthy" I expect it's just because it looks more polished than most. But as I said above, most of the value of the project is to the developer, not anyone else.

Starting something to copy something else is totes how I got started with serious programming. By forcing myself to understand how something works without having much of an ability to read someone else's code, I learned so much. My GitHub is littered with these unfinished clone of projects, and I apologize for none of them :)

This is Hacker News, that's why this is special.

It's just fun and interesting, not revolutionary, and that's okay

The value isn’t just with the dev themselves but to those who they shared it with. I benefit from inspiration, motivation and of course the code / discussion.

Has anyone noticed this has been taken down due to DCMA... ️

Sadly yes.

Cool. Where is the code handling the world map/blocks? I want to see how the data structure looks.

There are projects that load Minecraft data such as the one I made in 2012 under my GitHub runvnc mcchunkloader or the classic.minecraft or maybe the other Minecraft modules out there. But this isn't one of them as far as I know.

Hi! just found this randomly, didn't know someone posted my repo. I did state that the game is currently a work in progress, and the goal is to have all the features in minecraft.

He can't load a real Minecraft world map, or modify the terrain, or fight monsters, or craft anything, or generate biomes. In fact, it's not a Minecraft clone at all. It just has some of the core rendering etc. but missing more than half of the features.

I guess it's a bit like the official browser based Minecraft


Doesn't seem massively newsworthy to me.

Dunno, the engine in the article looks pretty impressive to me. And I say that as the author of a fair chunk of the "official" version (I'm not affiliated with Mojang, but they built minecraft classic on my JS voxel engine).

I'm a big fan of yours! I love the noa engine

Ah cool, thanks, I'll definitely watch your engine as well!

Did you gain anything from them using your work?

Lots of HN upvotes ;)

But no, they didn't contact me or anything. There was a thread on it, let me dig it up...

Edit: https://news.ycombinator.com/item?id=19940349

The official Classic version actually uses an open-source library like this one for the rendering and most of the legwork.

If you support stereoscopic VR view with for example A-Frame it can run in Firefox Reality everywhere. Oh wait, someone did something like it https://drawvr.com/minecraft/

> Motivation

> Having to open an additional app to play a game is sometimes too tiring

Really? This is the motivation?

I can understand just the will to reimplement minecraft for the sake of it, as a challenge, to learn something, etc. but to not double click "another" application sounds really naive.

I think that's one of those "joke" things you read about.

Sorry I'm planning on revamping the entire README once the project gets to a good level of completion (still missing a lot of features). The motivation part was just a joke, didn't think people would pay much attention to it :/

Hey man, don't take the criticism here too hard. You did an amazing job, and it's one the better WIPs I've seen yet. Have some fun!

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