How it's made

Crystal Dream starts from ideas: the story, the worlds, the style. Nearly all the code is written by an AI agent, Claude Code. Here are the tools and the method.

  • 700+commits
  • 266pull requests
  • 27versions
  • 26,000lines of JavaScript

As of 24 October 2026, eleven weeks after the first commit.

Ideas first

The idea behind Crystal Dream is simple: make a video game starting from ideas, and focus on them. We decide what to build and how it should be: the story, the realms, the characters, how Ash moves, what a menu looks like. We lend a hand with the art and with many style and implementation choices.

The code, on the other hand, is by choice almost entirely written by Claude Code, an AI agent. With a family’s little free time, it’s the only way to see a project this big through, and it leaves us time for the most fun part: inventing the game.

How it works in practice

  • Every change starts as a request in plain Italian, the way you’d ask a programmer on the team: “leaves should fall from the trees, and Ash should kick them up when he runs over them”.
  • Claude works in a separate session and opens a pull request. We play the game, ask for fixes and, once we like it, merge it.
  • The project has a written memory. An instructions file with the project’s rules, the game design document, a map of the code, an asset inventory, the to-do list and the changelog. Every session starts out knowing what’s already there and why.
  • Claude tests what it writes. It launches the game in a browser, drives it with simulated key presses and looks at the screenshots. Automated tests check that the Tiled maps stay consistent with each other.
  • Skills are reusable instructions for recurring jobs: how to test the game in the browser, how to decide on a mechanic while staying true to the spirit of Wonder Boy.

Even the screenshots in this devlog are taken by Claude Code: it rebuilds the game as it was at the end of each week, launches it and walks Ash to the right spots.

Art and sound

The art comes from several places. Many assets, such as Ash, the NPCs, the houses, the item icons and the logo, are made with PixelLab and finished by hand in Aseprite. Others, such as particles, raindrops, embers and some sound effects, are generated by small scripts written by Claude, which can be run again to get the same result.

Maps are drawn in Tiled, by hand or with the help of scripts that scatter grass, bushes, stones and birds across the meadows. PiXy takes care of music and sound with Audacity.

Who does what

  • VoidX writes the story and, with Ballie, brings most of the ideas and steers the choices.
  • Ballie plays every version and finds what’s wrong (and what would be fun to add).
  • BugMaN backs the project and brings ideas.
  • PiXy handles art and music, turns ideas into requests for Claude Code and decides what goes into the game.
  • Claude Code writes the code, the tests and the documentation, and keeps them tidy.

The toolbox

  • Code

    Claude Code

    Anthropic's coding agent. It writes most of the game's code, the tests and the scripts that generate some of the assets. We have used it with different models: Sonnet 5 and Opus 5 in the first weeks, Opus 5.5 since late September.

  • Code

    Phaser 4

    The JavaScript 2D engine the game runs on: scenes, physics, animation, lighting and keyboard, gamepad and touch controls.

  • Code

    Vite

    The dev server and build tool: the game reloads by itself on every change.

  • Art

    Aseprite

    The pixel art editor: sprites, animations and hand touch-ups, pixel by pixel.

  • Art

    PixelLab

    Generates pixel art with AI: characters, items, tilesets, frames. PiXy uses it by hand, and Claude Code calls it directly for some assets, like the gold menu frames.

  • Worlds and levels

    Tiled

    The map editor. Every area of the game is a Tiled map, linked to the others in a world file: 26 maps in two worlds so far.

  • Sound

    Audacity

    For recording, cutting and polishing music and sound effects.

  • This website

    Astro

    This website was written by Claude Code too: static pages in two languages, published on Cloudflare Pages.

Deep dives

Every now and then a devlog post will take a closer look at one piece of the work: how Ash was born in PixelLab, how an NPC goes from idea to game, how a level is drawn in Tiled. You will find them in the devlog.

Go to the devlogHow the idea was born