BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
Remake of the C64 classic Heart of Africa (follow-up to Seven Cities of Gold), browser game, with real ~1890 geography, wildlife simulation, deductive communitaction with peoples, etc.
GamesJavaScript · TypeScriptGitHub @PatrickVonMassowOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
The Heart of Africa — Modern Remake
A single-player 3D remake of the 1985 exploration classic *The Heart of
Africa* — Ozark Softscape's follow-up to The Seven Cities of Gold (1984) —
built as a web application. You start in Cairo in 1890 with $250 and a journal,
and travel across a geographically authentic Africa in search of a lost tomb:
trading in port cities and decoding direction hints given in the regions' own language system.Read the full README ↗A single-player 3D remake of the 1985 exploration classic The Heart of Africa — Ozark Softscape's follow-up to The Seven Cities of Gold (1984) — built as a web application. You start in Cairo in 1890 with $250 and a journal, and travel across a geographically authentic Africa in search of a lost tomb: trading in port cities and decoding direction hints given in the regions' own language system.
If you remember The Seven Cities of Gold, you know the DNA: the same design team, and the same loop of walking into an unmapped continent, watching the map fill itself in behind you, and getting along — or not — with the peoples who already live there. Where that game had the Americas, this one has Africa.
PoC playable directly in the browser at:
https://patrickvonmassow.github.io/Heart-of-Africa-Remake/poc/
Deliberately still open. The 1985 original's score is not used here in any form, and no placeholder music has been dropped in either — the sound design deserves to be decided rather than defaulted into. Ideas and collaborators welcome; see Contact.
Rendering features include real-DEM terrain with biome-based PBR texture splatting, hand-authored ~1890 hydrology vectors, a physically grounded scattering sky with IBL, cascaded shadows, SSAO, TRAA, bloom, filmic tone mapping, and water with a wave field, depth-dependent absorption and shore foam.
Requires Node.js ≥ 20.
npm install
npm run dev # dev server at http://localhost:5173
Other scripts:
npm run build # type-check + production build (must pass clean)
npm run preview # serve the production build locally
npm run lint # oxlint (zero errors/warnings required)
npm audit # zero known vulnerabilities required
npm run test:unit # fast Vitest layer (jsdom): logic, store, HUD components
npm run test:small # everyday gate: Vitest + the core browser suites (no preview)
npm test # full (LARGE) headless regression: every suite + preview
The game starts in English by default; German can be selected at runtime via
the debug menu (F1). All player-facing text lives in src/i18n/ — adding a
language means adding one file.
Changes to guards, gates and other load-bearing mechanisms get a second pair of
eyes from a model of a different vendor — different training, less correlated
blind spots. The main lane reviews cross-lane work; the cross lane reviews
main-lane work through one command (lane models: scripts/model-lanes.mjs):
node scripts/cross-review.mjs --sha <sha> --brief "<what to judge>"
It uses the Codex CLI with a ChatGPT login
and prints the result in the shape scripts/mechanism-review.mjs --record
expects; if the model cannot be reached, it says so and hands the review back to
the fallback model instead of inventing a verdict. The login lives in
~/.codex/auth.json inside the dev container and is therefore lost on a
container rebuild — so save it once and restore it in one command afterwards:
node scripts/cross-review.mjs --save-login # → local/ of the main checkout (git-ignored, 0600)
node scripts/cross-review.mjs --restore-login # after a container rebuild
node scripts/cross-review.mjs --probe # is the model id really honoured?
The terrain uses real elevation data. The runtime assets in public/geodata/
are generated reproducibly (no npm dependencies) by the scripts in
scripts/:
node scripts/build-geodata.mjs # DEM from public Terrarium tiles
node scripts/generate-terrain-textures.mjs # tileable terrain textures (bird's-eye)
node scripts/generate-surface-textures.mjs # tileable settlement surfaces (first-person)
At load time the DEM is trimmed to the game world: only land connected to the
game's own land masses is kept, so Sinai, Arabia, southern Europe, foreign
islands and the unreachable Madagascar render as open sea
(src/world/redSea.ts); dem.png itself stays untouched.
design.md authoritative design document (changes land with the code)
CLAUDE.md POC scope, acceptance criteria, build rules
scripts/ geodata preprocessing + headless verification (scripts/verify/)
public/geodata/ generated DEM + terrain textures
verification/ acceptance-criteria screenshot evidence
src/
├── config/ central balance values (runtime-tunable via debug menu)
├── i18n/ language files (de, en) and localization runtime
├── journal/ journal sketches, voice markup, in-browser TTS read-aloud
├── render/ sky, water, materials, flora/fauna, post effects
├── scenes/travel/ bird's-eye view: terrain, climate, wildlife
├── scenes/place/ first-person view: settlements, inhabitants, collision
├── state/ game and UI state (zustand)
├── systems/ input, movement, events, economy, ambience
├── ui/ HUD, status bar, journal panel, map, dialogs, debug menu
└── world/ geography, geodata sampling, hydrology, terrain model
design.md is the authoritative design document; CLAUDE.md defines the POC
scope, acceptance criteria and build rules.
This repository contains the proof of concept: the core gameplay loop is not fully developed.
All 32 acceptance criteria of CLAUDE.md §7.1 are implemented, with the
screenshot evidence in verification/; the simplifications and open items that
remain are recorded in the code (// OPEN:), in TASKS.md and in
docs/backlog.md.
The full headless regression runs with npm test — a fast Vitest (jsdom) layer
plus 15 Playwright browser suites; the test strategy and coverage map live in
scripts/verify/README.md.
The Heart of Africa (1985) was created by Ozark Softscape and published by Electronic Arts. It was the follow-up to The Seven Cities of Gold (1984).
This remake exists because that game was worth remembering. All credit for the concept, the design and the original score belongs to the people above.
Developed by Patrick von Massow. Source code, assets and text in this repository are original work unless noted otherwise.
This is a non-commercial fan project, made as a tribute. It is not affiliated with, endorsed by, or connected to Electronic Arts Inc., Ozark Softscape, or any rights holder of the original game.
If you hold rights to the original work and object to anything in this repository, open an issue or contact me and it will be addressed promptly.
Own code released under the MIT License. Note that this covers only the original work in this repository — it conveys no rights to the 1985 game. Anyone looking to commercialise a derivative would need to clear that with the rights holders of the original.
Questions, corrections, period sources, or an interest in the audio side: open an issue or write to [email protected].