← Selected work
02Game restorationPreview

Miner 2149 JS

A personal browser reimplementation of Michael Baker’s Palm OS mining-colony simulation, rebuilt by tracing the original behavior and designing a new home around its 160 × 160 world.

Miner 2149 shown inside an original science-fiction handheld frame
Development artwork from the current preview branch; not all pictured work is deployed.
Role
Browser reimplementation, product design, testing, original device artwork
Foundation
Plain JavaScript modules and PixiJS 6
Current status
Public demo; expanded branch in development
Terms
Personal, noncommercial, project-specific permission

The motivation

Preserve a small game by understanding how it behaves.

Miner 2149 is a compact strategy simulation made for Palm OS: launch probes, choose an asteroid, build a three-level colony, and keep its economy and people alive through a two-year term. Its original 160 × 160 interface is inseparable from its character, but the platform it was built for has largely disappeared from everyday use.

The project is not a visual imitation with new rules underneath. The aim is to make the game playable in a modern browser while retaining the calculations, event order, quirks, and decision pressure that define the original.

My role

Reimplementation as engineering, research, and interface design.

I am rebuilding the game in JavaScript, mapping legacy behavior into testable modules, maintaining the browser renderer and save system, and designing the responsive site that presents the game. For the current development branch I also created a collection of fictional science-fiction handheld frames and the catalogue and unlock system around them.

That work includes documenting where the browser version intentionally follows the source, where it corrects an ambiguous or unsafe result, and where it makes a deliberate modern adaptation.

Product and technical decisions

Compatibility at the center, adaptation at the edges.

01

Source archaeology

Legacy Pocket C behavior is reconstructed from source, documentation, and observable play, then recorded as explicit compatibility notes instead of disappearing into ported code.

02

Pure simulation seams

Reports, random events, disasters, turn order, meteor behavior, and endings are separated from PixiJS so deterministic Node tests can verify the rules.

03

Local-first saves

The public demo keeps save slots in the browser. Account and cloud-save controls remain disabled until their production security boundary can be independently verified.

04

A responsive frame for fixed pixels

The Palm-scale game stays intentionally low resolution while the surrounding page provides sizing, tone, and device-frame controls suited to modern screens.

Selected implementation details

Test the rules without flattening the original.

  • Behavioral specifications. Tests pin down random-number ranges, event timing, disaster probability, calculation order, terminal-state precedence, and intentional compatibility fixes.
  • Thin rendering adapter. PixiJS handles the pixel interface and pointer input; game rules increasingly live in DOM-free modules that are cheap to exercise.
  • Save migration. Validation and normalization keep older local saves usable when numeric fields or internal representation change.
  • Deterministic deployment. The rendering dependency is pinned and vendored, and the static build checks an allowlist of runtime files rather than publishing the entire working tree.
  • Measured original artwork. Each fictional device frame’s screen opening is measured from its alpha channel and described through one catalogue, avoiding hand-tuned CSS for every image.

Design considerations

Let the 160 × 160 game remain itself.

The game canvas is scaled rather than redrawn into a conventional responsive interface. The surrounding site carries the adaptation: display controls, touch-friendly presentation, context and instructions, and optional device frames that make the tiny screen feel intentional on a large display.

The new frames are original artwork rather than replicas of commercial Palm hardware. They extend the game’s fiction, avoid an unresolved third-party artwork problem, and form the basis of a cosmetic reward system that does not alter simulation results.

Current status

A public demo and a larger preview still in development.

The deployed demo is an in-progress, local-save browser build. The preview/v32-skins-unlocks branch contains substantial newer work—including the responsive site, behavioral test coverage, disasters and mission scoring, original device frames, display controls, and unlocks—but that branch and its working-tree additions are not represented here as launched.

Accessibility, mobile polish, remaining source-parity work, and any future online leaderboard remain unfinished.