Romjakten — a 1999 game, ported to Godot
wipPorting my childhood favorite — a 1999 Norwegian educational space-strategy game — from Macromedia Director 6 to Godot, so it runs in any modern browser without a Windows 98 VM.
Play in browser
Web build runs entirely client-side via Godot's HTML5 export — no server-side processing.
Why
Being one of my favorite games growing up, Romjakten was a fun way of learning about space travel, physics and astronomy. This learning experience is something I would like to share with my own kids. But playing on a Windows 98 virtual machine is a drag.
About the original
Romjakten is the Norwegian localization of the Swedish Rymdjakten (“The Space Hunt”), released in 1999 by Monsterland Produktion AB and published in Norway by Levende Bøker / Kunnskapsforlaget. You play a national space program manager — building rockets, training astronauts, sending probes across the solar system to piece together a crashed alien craft. Originally built in Macromedia Director 6.
Additions
A handful of things modern players will expect that the 1999 version didn’t have:
- Autosave — progress is written automatically, so you can close a browser tab mid-game and pick it up later.
- Touch controls — the puzzle minigames get touch overlays on phones and tablets; the original was strictly mouse-driven.
- Plays in any modern browser — no install, no VM. The whole reason for the port.
- Fullscreen — toggleable at any time. The original was locked to an 800×600 window.
- A few original bugs fixed — the Norwegian release had data quirks (the Uranus newspaper actually said “Saturn”, a research action had the wrong unlock requirement, and you could build the big rocket capsule before launching the small one and skip a milestone). Those are quietly patched.
What’s in the port
- 7 autoloads (Lingo compatibility, game data, sound, sprites, interface)
- Building system — 7 building subclasses (rocket, vehicle, astronaut, space station, ship, probe, research)
- 6 puzzle minigames — moon lander, satellite communication, asteroid steering, orbits, aerobraking, alien decoder
- Full launch system — per-rocket animations, flight simulation, crew workflow
- Observatory — project overview, narrator, easter eggs, milestone flow
- Space map — three zoom levels, planet interactions, orbital buildings, in-flight probes
- Win/lose conditions — interstellar ship launch (win), alien power depletion (lose)
- 24 automated tests with Python snapshots and Godot headless mode

The reverse engineering side
Most of the work isn’t in the engine port — it’s in pulling assets out of Director 6’s binary formats. The repo includes custom Python tooling for:
- Bitmap extraction — 3,716 PNGs, recovered with the right palette and per-sprite transparency. Director uses a custom 256-color palette embedded in CLUT chunks, which I extract separately.
- STXT text parsing — 103 JSON files containing all in-game strings and game data, parsed from Director’s text member format.
- Audio extraction — 1,984 WAV files indexed by their original member name.
- Smacker video conversion — 5 cutscenes converted from
.smkto.ogv.
Along the way I found a handful of Director 6 format quirks that aren’t
documented in ScummVM’s Director engine —
notably the D5+ CASt field order (castType + castInfoSize + castDataSize,
INFO first, DATA second), opposite of D4. These findings are preserved in the
project’s scummvm-patches.diff for a potential upstream contribution.
Status
Nearly complete — the game is fully playable end-to-end. Remaining work is polish: a few edge-case animations, audio cue timing, and platform-specific input handling on Android (the original was a strict mouse-driven UI).