River Oath is Copyright (C) 2026 Michael Slater. It is free software under the GNU General Public License, version 2 or (at your option) any later version, and comes with no warranty. The retro screen, font and hex battle come from Sengoku and The Broken Seal.
The source is river-oath-0.1.2-source.tar.gz from https://retro.theiguru.au/riveroath/. It needs Free Pascal 3.2.2 and the Lazarus 4.4 LCL (GTK 2), as Sengoku does.
make # builds ./river_oath ./run.sh # builds if needed, then runs make test # the rules tests and the screen tests make gui-test # the window test, under xvfb
tools/build-win64.sh cross-compiles the Windows exe on Linux (needs the win64 cross compiler), and tools/package.py makes the release files.build-windows.cmd builds with Lazarus's lazbuild.| File | What it is |
|---|---|
src/rogame.pas and ro*.inc | The campaign rules: places, bands, tasks, the month's end, tales, dikes, the Intendancy, the computer bands, saves |
src/robattle.pas | The hex battle |
src/roui.pas and ui*.inc | Every screen (no window code, so the tests can drive it) |
src/rodesk.pas | The window |
assets/data/world.json | Places, links, people, ties, officials and scenarios, made by tools/makeworld.py |
assets/data/rules.json | The numbers of the rules, each checked against a range when the game starts |
SPECIFICATION.md | The full design, with every number |
docs/TESTS.txt | What the tests check |
make test checks routes and seasons, every kind of task, tales spreading and fading, hunger, the dikes and the Great Flood, all three victories and the deadline, battles (and that a battle replayed from its moves ends the same), a battle saved halfway and loaded, offers and prisoners, and damaged saves. It then plays ten computer-only campaigns of each beginning to the end, checking the whole game after every month and saving and loading on the way. build/tests/rotests assets/data –full plays a hundred of each.
The browser edition is a separate project in TypeScript, with its source linked from the bar at the top of the game page (riveroath-web-0.1.2-source.tar.gz). npm run build builds the page, npm test runs its self-test (the rules, the desktop's recorded games and battles played again to the same saves, and an online game over HTTP), and npm run deploy builds, tests and puts it on the website. ONLINE.md describes the online server and its API.