Open Northland is an independent, cross-platform engine for Cultures - 8th Wonder of the World, a Viking-era strategy game. It combines a deterministic TypeScript simulation, a PixiJS renderer, and an offline asset pipeline.
The repository does not include game files or decoded assets. To play with the original maps,
graphics, and audio, provide your own copy of Cultures - 8th Wonder of the World (available on
Steam and
GOG) and generate a local content/ directory.
To test it out, try:
- Browser-based build (as a quick-access demo)
- Desktop application builds (preferred distribution)
Open Northland is pre-alpha. The current build has a playable settlement economy, building, gathering, production, progression, combat, fog, population systems, and a basic computer player. It can load decoded maps and render terrain, buildings, settlers, effects, and the HUD.
Campaign scripting, save games, and multiplayer are not complete. Desktop development builds exist,
but stable signed releases do not. Current actionable work lives in docs/tickets/.
- Node.js
^20.19.0or>=22.12.0 - A legally obtained copy of Cultures - 8th Wonder of the World for playable content. It is sold on Steam and GOG.
- The free CulturesNation mod; CnMod 1.3.1 is the current verified input
npm ci
npm run build
npm test
npm run checkThe source, tests, and headless scene checks work without the original game. npm run build
typechecks the workspaces and creates the browser bundle in packages/app/dist/. The playable
browser entries need generated content (next section); without it they show a notice explaining how
to generate it.
npm run pipeline -- --game "../Cultures 8th Wonder" --out content
npm run devThe pipeline detects the CulturesNation DataCnmd/ folder inside the game directory. If the mod is
elsewhere, add --mod-root <dir>. A newer mod release must be verified before replacing the 1.3.1
baseline.
Generated content is ignored by Git. Do not commit or redistribute it.
The development server opens on the main menu. Useful direct entries are:
?scene=sandboxfor the main acceptance scene?map=<id>for a decoded map?animfor character animations?iconsfor decoded sprite frames?soundsfor the sound gallery
See docs/DEVELOPMENT.md for commands, diagnostics, and local content tests.
packages/
app/ Browser shell, input, menus, HUD, and scenes
audio/ Sound selection and Web Audio playback
content-resolver/ Shared routing for generated content
data/ Validated schemas and content loaders
desktop/ Electron shell and first-run content setup
render/ PixiJS isometric renderer
sim/ Deterministic simulation
tools/
asset-pipeline/ Converts an owned game installation into local content
content/ Generated locally and ignored by Git
docs/ Design notes, format research, and open tickets
Start with the documentation index for the design and data flow.
Contributions are welcome. Read CONTRIBUTING.md before opening a pull request.
Coding agents must also read AGENTS.md.
Open Northland is licensed under GPL-3.0-or-later. See LICENSE.
This is an independent community project. It is not affiliated with or endorsed by Funatics
Software, Daedalic Entertainment, or another rights holder of the Cultures series. Game names are
used only to describe compatibility. The full notice is in docs/LEGAL.md.