Project Overview

Where Galaxy Eggbert comes from, the rules it is built by, and how it got to where it is.

From Speedy Blupi to Galaxy Eggbert

GameWhat it is
Speedy BlupiA 2D platform game by Daniel Roux and EPSITEC, released for Windows Phone (XNA) in 2013.
Mobile Eggbert (mobile-eggbert)The C++ port of Speedy Blupi. Galaxy Eggbert treats it as the read-only reference. Its source code, mainly Decor.cpp, is the authority for gameplay numbers and timing, and its pictures, sounds and world files are the source of truth for assets.
Galaxy Eggbert (galaxy-eggbert)A faithful 3D remake. The player moves Blupi freely in X and Z with real heights, through worlds designed in 3D, while the rules, timings, sounds and look stay those of the original.

The rules the project is built by

These rules come from the maintainer and are written down in the repository (CLAUDE.md, CURRENT.md, plans/GALAXY_EGGBERT_COMPLETION.md and the handbook in docs/handbook/). Most defects in the project's history came from breaking one of them.

  1. Every gameplay feature traces to confirmed Mobile Eggbert behaviour. No mechanic is invented because it seems plausible. Where a 2D rule has no single 3D reading, one reading is picked, kept small and recorded as an intentional 3D adaptation (plans/audit/mechanics_3d_decisions.md, rows M3D-NNNN).
  2. The reference is never modified. Larger pieces of its code, tables or byte layouts are not copied without approval. A standing approval covers small data tables needed for fidelity (glyph widths, animation and timing tables), with the source cited.
  3. Real numeric IDs are preserved. Def::ObjectType, block (icon) numbers and sound channels are the original's numbers and are stored in world files. They are never renumbered.
  4. Worlds are hand-authored true 3D designs. The original's 2D maps give a world its identity, theme, mechanics, difficulty and progression, and nothing else: no conversion, extrusion, side-view "2.5D" or lane locking. A 2.5D conversion was tried and rejected on 2026-10-25.
  5. Models and animations come from the original Ray Dream scenes wherever they can be recovered, never from a modernised redesign. Effects (explosions, sparks, glows) may stay sprites.
  6. The in-game 3D world editor is the one approved exception. Its user interface may be invented, but it must not add gameplay behaviour.

What the remake contains

Repositories involved

The game is built against its engine as source. These checkouts sit side by side:

RepositoryRole
galaxy-eggbertThe game, its worlds, assets, tools, tests, documentation and this website (web/).
cnaThe engine: the XNA 4.0 API reimplemented in C++ on SDL3. Required.
cna-engineStrict helper modules over CNA (camera, mesh builder, GPU meshes, texture regions). Required.
easy-gl, meta-gl, sharp-runtimeBuild dependencies of CNA, expected next to it.
mobile-eggbertThe reference game. Read-only; a few verification tests and tools read its world files.
speedyblupi-dataThe original Ray Dream scenes. Needed only by the asset converters, not to build or play.

Details: Getting Started and Engine Integration.

How it got here

DateMilestone
2026-05-12The repository starts. Early experiments use other engines (Nova3D, Urho3D/U3D, a Simple3D target).
2026-07-05Direction locked: the game runs directly on CNA, with a small helper library beside it.
2026-07-25The earlier GalaxyEggbertSimple3D target is removed once the CNA target reaches playable parity (recoverable at commit 4afd53e).
2026-10-20cna-engine's strict modules replace the helper library easy-3d. Golden frames and traces stay byte-identical.
2026-10-23The original Ray Dream scenes are converted into Blupi's 3D model; the objects follow.
2026-10-25A side-view 2.5D conversion is rejected. Every world is hand-authored in true 3D.
2026-10-26All twelve theme worlds, their 64 missions and the bonus world are built. Scripted playthroughs finish every mission, every world's chain of hubs, and the whole campaign in one run from a new game.
2026-11-04Terrain tiles can show the relief of their Ray Dream scenes near the camera (the Setup's "3D terrain" option, off by default).
2026-11-08 – 09Main-menu demos and recordings, editing campaign worlds in the game, every player's own galaxy and sharing it, and the 3D effect levels up to Ultra.
2026-11-10The player's files move to the system's user folder, 2x texture sheets arrive, and release candidate 1.0.0-rc1 is built: a Linux archive and an Android APK (Releases).
2026-11-11Speedy Blupi 2's network game for 2 to 4 players joins the game. The first releases, 0.1.0 to 0.1.3, are published on GitHub: Windows, Linux, Android and the web.
2026-11-12Release 0.2.0: the game in French, German and Czech beside English, and a terrain that rebuilds only what a change reaches.
2026-11-12Release 0.3.0: fifteen languages and a panel of flags to choose one, a faster 3D editor.
2026-11-12Release 0.4.0: twenty languages (Finnish, Danish, Norwegian, Turkish, Greek), clean text in full screen.

The project's own documents

The repository carries its documentation next to the code. This website is a guided summary of it.

DocumentUse it for
CURRENT.mdThe verified current state, limitations and open work: the status authority.
docs/handbook/A condensed handbook for developers: overview, architecture, build, testing, worlds, assets, contributing, backlog.
World Format.mdThe .vwr world format. See also The .vwr Format.
plans/The completion plan, the fidelity audit and its ledgers (plans/audit/), one design brief per world (plans/briefs/).
handoff.md, plan.md, NEXT.mdLong working logs and history (NEXT.md is frozen since 2026-10-24).
upstream_bugs.mdDefects found in the sibling repositories (UB-NNN).
docs/provenance/Where every asset comes from and under which licence.