Lantern

Lantern is a small self-hosted interactive-fiction server built around Frotz and Z-machine game files, with experiments in portable saves, cryptographic signatures, and cryptocurrency-enabled services.

Where it came from

The project began as Zarkmid, a play on the fictional currency used in Infocom's Zork universe. The original experiment connected interactive-fiction state to Dogecoin transactions. The current name, Lantern, keeps the adventure-game lineage while widening the project beyond any one game or chain.

Lantern does not bundle commercial game data as part of its core architecture. You provide your own compatible Z-machine story files. Zork is the obvious historical demonstration because Frotz was built to run Infocom-style games, but the server model is not limited to Zork.

The server model

Lantern is intentionally small enough to run yourself. A Python process launches and controls dfrotz, while the browser provides a lightweight interface for commands, transcript, save/load, and related controls.

your browser
    ↓
Lantern HTML client
    ↓
Python Lantern server
    ↓
dfrotz
    ↓
your Z-machine story file

You can run the server on a laptop, home machine, small Linux box, VPS, or another host that can run Python and Frotz. On a local network, the model is closer to the way people used to run their own Minecraft servers than to a conventional SaaS product: one person can host an instance and other people can connect to that instance.

rigler.org is only one deployment/resource endpoint. It is not required infrastructure. A fork can change the endpoint, run entirely on a LAN, or use another host.

Bring your own game files

Install Frotz, obtain a compatible story file that you are entitled to use, place it in the server's game directory, and point Lantern at it. Historically, Infocom games such as Zork I, II, and III have been widely available through preservation-oriented sources, but users should obtain game files from sources appropriate to their own legal situation.

sudo apt install frotz
python3 lantern.py

The exact game directory and port are configuration details, not protocol requirements. The important idea is that the interpreter and story file remain replaceable resources.

Why signatures and cryptocurrency are interesting here

A self-hosted game server can do more than serve game text. It can also become a small economic and identity node.

Lantern is exploring two additional layers:

This leads to a different multiplayer/service model:

self-hosted server
    +
player-held signing identity
    +
optional crypto payments
    +
portable game state
    =
replaceable community service

A server operator can charge for real work while players retain cryptographic continuity that can outlive that particular server. Another operator can run a compatible service. The endpoint is replaceable; the user's identity and signed artifacts need not be.

Relationship to Chisel and Mogwai

Lantern is one concrete example of the broader architecture explored in Chisel and Mogwai: keep the primitives small, make services replaceable, and avoid making one hosted application the permanent owner of identity or state.

Zorkmid white paper · Repository README · Lantern notes · Attestation proposal