Creating a Minecraft clone in under a day
Last week I watched Hoe moeilijk kan het zijn? (How hard can it be) with the kids. In the episode we watched, the host Thomas tried to create a full game in under a day, with the help of AI.
My eldest daughter Janne (almost 9) has been learning Scratch for a while now, and has taken Microbit classes. So when I asked her if she wanted to try this as well, she immediately agreed.
So we sat down with a laptop in the kitchen, I typed the magic word claude and we started creating.
Our first attempt: Veterinary Tycoon
The very first game we created was "Dierenkliniek Tycoon". She was very keen on creating a game where you needed to take care of little animals. One of my favorite skills to use with Claude Code is obra/superpowers. Instead of jumping straight into coding it asks you questions about what you're building, and it challenges your ideas. So when I asked Claude to "create a game where you need to take care of animals", it fired back a lot of questions:
- What genre do you want this is?
- What style do you envision?
- How does difficulty ramp up?
- ...
After all these questions it comes up with a detailed plan, and most of the time it will be able to zero shot a solution without needing human intervention. After it had finished writing all its code, reviewing it on its own, and testing it, we started the game and were greeted with this:
We went on and tweaked it, but I could see that Janne wasn't too thrilled with the whole game. And even though it functioned, it would take a very long time to get the mechanics to feel right. Because even though it's amazing that an AI created this without human intervention, it didn't feel fun.
But see for yourself, you can play it here.
Our second attempt: JanneCraft
The Tycoon game didn't really feel like a failure, but I felt we could do better. So I asked Janne if she wanted to try again, and maybe make a building game, like Minecraft.
She agreed again, we followed the same approach, the AI asked way fewer questions because it already kinda understands what you want to build with this prompt:
Make a 3d voxel game called JanneCraft. Like Minecraft,
but everyone is named Janne and there are also a couple
of others: <list of friends>
Use three.js
Claude zero shotted this once again.
We then asked for some additional things:
- NPCs like a red panda (her favorite animal) and cute little bunnies.
- A basic crafting system.
- Sound.
- Random things her friends would say.
- A day and night cycle.
It took us almost no time. I think we had the basic version of JanneCraft running in under an hour.
You can play that basic version here. But hang on, it gets better.
Opus 4.6 enters the chat
Last week we didn't get one, but two frontier models released: Anthropic released Opus 4.6 and the folks at OpenAI said "hold my beer" and dropped Codex 5.3 ten minutes later.
I've been playing around with both of those since they dropped, but on Saturday I gave Claude a very simple prompt in the Minecraft project:
In a preparation to make this multiplayer (and to make the game load faster).
Can we stream a world via websockets?
Use beads (br --help) to make tickets
It kicked off superpowers once again, and came up with a super nice plan. It put all of its todos in Beads, which is an issue tracker for agents, that allows them to track dependencies between todo items, and (together with the plan) to work much more efficient with context limitations.
It didn't take Claude long to implement, and (it's getting boring) it all worked on the first try.
I've had many epiphany moments with agents so far, but most of them were "this would've taken me so much longer to write myself". The blogging software this blog runs on? It would take me months to write it, but the result would be about the same.
But this? A multiplayer game server?
This was the very first moment I felt surpassed by AI. There's no way I would have ever written a multiplayer websocket protocol using binary messaging by myself. And for sure not in ten minutes. What a time to be alive.
I kept refining JanneCraft over the weekend:
- Added costumes
- Chat
- Working torches
- Multiple worlds with optional password protection.
- A stats page
After that I put it in a Docker container and threw it on a cheap VPS, and now anyone can play JanneCraft: https://jannecraft.broddin.be/ . But, please keep it clean - there could be kids around.
Technical details
I mostly stayed in the role of reviewer, nudging architecture and constraints. I didn't write one line of code.
There are some areas I could steer the AI, and I influenced some of the technical choices it made.
- Bun: the most awesome JavaScript runtime. Built-in support for both SQLite and WebSockets makes it awesome. And it's soooo fast.
- Three.js: the defacto 3D renderer for web.
- SQLite: each world gets its own database file. Chunk data is stored as binary blobs, and player modifications (placed/broken blocks) are stored separately as a diff on top of the generated terrain.
- Binary WebSocket protocol: every multiplayer message is a tightly packed binary buffer with a one-byte opcode. A position update is just 21 bytes. Chunk data gets compressed before sending. Since voxel worlds are mostly air, this compresses really well.
How hard can it be?
Turns out not hard at all. It's beyond crazy that you can now build a full Minecraft clone in under a day. It's not finished, and it has bugs, but the agents we have at our disposal now are so powerful that the amount of time and money it requires to build something are trending toward zero.
Once in a while I read a comment by a programmer stating "I'm just waiting for the moment they need someone to clean up all the AI generated mess". I think they're wrong, AI generated mess will be cleaned by better AI, and humans will need to embrace that we'll no longer be the programmers but mostly the architects and product managers.
We're living in the future.
0 comments
No comments yet.