Files
horizon-airdef/docs
Ludovic Marie 60ddf3daf8 Play with friends: invite codes, the relay and the encrypted tunnel
horizon-friends: codes (Crockford base32, nameplate + secret), the relay's
JSON-line protocol, SPAKE2 then ChaCha20-Poly1305 frames keyed off the
code's secret, direct connections (candidates, TCP simultaneous open from
a reuse-port socket) with the relay as fallback, and the host and guest
ends that carry the game's TCP stream between loopback ports.

horizon-relay: the service (codes, rendezvous, byte relay, rate limits,
bandwidth caps, idle timeouts, counts only), its Dockerfile and Railway
config. Nothing is deployed and nothing in the game uses it yet.

Design: docs/play-with-friends.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 03:05:54 +02:00
..

Horizon documentation

To play, use the launcher; the project site is playhorizon.dev. These pages are for developers.

Build and run

  • Build from source: your own copy of the game, resource preparation, cargo run.
  • Native client: options, controls, the dedicated server, horizon-ctl scripting, packaging, architecture.
  • Graphics: the Simple and Advanced graphics settings, the graphics benchmark and what it measured.
  • Extras: optional zoom, minimap, FPS and keystroke overlays and auto-reconnect, all off by default.
  • Launcher: installs, updates and starts builds; its CLI and MCP server; releasing it.
  • Opt-in data collection: the consent, exactly what is sent, how it is stored and sent.
  • Menus: the title, world list, create world, multiplayer, options and pause screens share the launcher's design tokens and fonts (crates/horizon-theme), drawn by ui_theme over a live frozen backdrop (game/backdrop.rs, blurred and graded by post.rs). Options → Interface → Menu style switches to vanilla's screens (Classic, kept in horizon.txt; HORIZON_MENU_STYLE=horizon|classic overrides it, and scripted runs default to Classic). Title (webm), worlds, options, pause.

Parity

Architecture: world generation

Architecture: world data and simulation

The earlier Java track (no longer developed)