Flagship — Remote Gaming Server · members only
HEIMDALL
the watchman of the forge — one registry, every game, one wallet protocol
Heimdall is a private, members-only build on this machine. It is not a commercial gaming operation, handles no real money and takes no real wagers: balances are play-money integers held per session. Every number on this page is read from the running service, not from a roadmap.
What it is
Heimdall is the Remote Gaming Server behind dilmun.at — and, underneath, a registry. It watches a shared games directory, reads each build's own manifest, loads the pre-computed books that decide its outcomes, and serves every title through one standardised wallet protocol. Four games are registered and all four are online — Book of Gnomes, Hive of Gold, Kernel Panic and Sun Emperor — carrying between three and eight mathematical modes each. Adding a game is dropping a folder, not writing a server.
The architecture
-
01
Maths, offline
Outcomes are simulated ahead of time into books — compressed round archives with weighted lookup tables. Nothing is rolled at request time.
-
02
The game folder
One directory per title: an
info.jsondeclaring id, name, version, entry point, bet ladder and an online flag — plus its published books. -
03
The registry
Heimdall reads every manifest at start, registers the titles marked online, and exposes them as a list — no per-game server, no manual wiring.
-
04
The wallet protocol
Four verbs per game — authenticate, play, end-round, balance — namespaced under the game's own id, so one contract serves all of them.
-
05
Identity
The member is resolved by the platform’s login (Eanna) in front of the service and handed over as request headers. Heimdall reads them; it never mints a session.
-
06
Delivery
A push to the games repository syncs the build onto this box and restarts the service; the new title appears in the console on its own.
The math layer never touches the serving layer. Simulation produces books offline; the server selects from them; the client animates what comes back. A game's frontend is a renderer for a decision that was already made elsewhere, which is the only arrangement in which the outcome cannot be argued with from the browser.
One line matters more than any other: the split between the financial summary of a round — bet, win, balance, deliberately fixed and boring — and its presentation events — reveals, beams, free-spin triggers, fully game-specific. Holding that line is what lets a game invent new features without Heimdall ever learning what they are, and what would make a move onto a commercial aggregator a re-point rather than a rewrite.
Amounts are integers, never floats. Every value in the protocol carries six implied decimal places — 1,000,000 means 1.00 — so bets, wins and balances are added and compared exactly. A bet ladder is a list of those integers, declared per game in its manifest rather than assumed by the server. Money-shaped arithmetic done in floating point is a bug waiting for a rounding error; this avoids the class entirely.
Feature highlights
-
Drop-in game registry
A folder with a manifest and its books becomes a playable title. Five registered, five online.
-
One wallet contract
Authenticate, play, end-round, balance — the same four verbs for every game, namespaced per title.
-
Pre-computed books
Compressed round archives with weighted lookup tables, three to eight modes per game.
-
Exact money arithmetic
Integer amounts at six implied decimals throughout — no floating-point currency anywhere.
-
Shared session identity
Members are read from the platform’s login in front of the service; an id passed in a URL is never trusted for it.
-
Per-game bet ladders
Minimum, maximum, step and the full level list are declared by the game, not hard-coded in the server.
-
Git-driven deployment
Push to the games repository; the build syncs to this box and the service restarts itself.
-
Closed by default
The registry, the games and this page are all members-only: unauthenticated callers get a 401, not a lobby.
How it was built
Heimdall generalises a single-game predecessor. Eyes of Argus shipped with a mock RGS bound to one game's books; the protocol and the book format it established were kept, and everything around them was widened into a registry that treats a game as data. That title is next in line to join the games repository as one more folder.
It runs as a Python service on this machine, behind the same reverse proxy and the same login as the rest of the platform — deliberately the same shape as its neighbours rather than a special case, because a stack that repeats itself is a stack one person can still hold in their head.
Tech stack
- Python
- FastAPI
- Uvicorn
- PostgreSQL
- JSON game manifests
- Zstandard-compressed books
- CSV lookup tables
- Caddy
- git pull-based deploy
Open the console
Open the Heimdall consoleThe console lists every online game and plays it in place. Members only — it lives on the members’ private network, so the link works only for members who have joined it; it is not reachable from the public internet.
Heimdall — the Remote Gaming Server for dilmun.at. Play money, real architecture.