Add The Oregon Trail: the 1975 MECC wagon-train classic
#3 in Riparion/riparion-retro — merged 2026-06-08
A faithful, mobile-first WASM Dioxus port of the 1975 MECC Oregon Trail, built from the original CDC Cyber BASIC source (clintmoyer/oregon-trail). Lead a wagon party 2,040 miles from Independence to Oregon City before the winter snows — hunting, fording rivers, trading at forts, and weathering illness, bandits, snakebites, and mountain blizzards.
Fidelity
Mechanics mirror the original BASIC: the mileage/oxen formula, the cumulative random-event probability table, the eating/illness model, river and mountain (South Pass / Blue Mountains) hazards, and the marksmanship timing. The typed-word shooting game becomes a touch reaction game — tap the matching word; reaction time is your aim. The original kept no score, so a synthesized score (surviving supplies + distance + arrival speed) drives a local Trail Hall of Fame.
Architecture
Follows the taipan reference: a pure, host-tested engine (a fortnight turn-flow state machine) under a thin Dioxus renderer over a single Signal<Game>, auto-saving to localStorage. No router; mode dispatch only.
retro-kit additions
Promoted three shared primitives while here (the duplication this game surfaced):
SpendRow— a labeled dollar-allocation row (outfit + fort screens)MenuButton— the two-line title+hint action button (trail / eat / riders)SCREEN/SCREEN_CENTERED/SCREEN_HERO— screen-layout class constants
Verification
- 17 engine tests: spec-anchored numeric checks, a multi-seed full-game smoke test, a good-vs-bad behavioral check, and a re-entrancy regression test.
cargo clippy --all-targetsclean across the workspace; other games unaffected.- Driven end-to-end in a headless browser at 390×844 — full journeys win, zero console errors.
- A code review pass (correctness + cleanup) was run and its findings fixed — notably uniform engine-level guards against touch double-tap re-entrancy.
🤖 Generated with Claude Code
Last updated 2026-06-09
Links to this note
Merged pull requests, newest first.