# Perihelion Drift > Perihelion Drift is a play-by-email / play-by-Discord (PBEM/PBD) space-opera 4X strategy game set in the Cumulus, a cluster of 20×20 sectors that are each a 20×20 hex map — 160,000 hexes in total. Players submit written text orders; a deterministic engine resolves every player's turn simultaneously, in a fixed order of nine phases. The same orders on the same game state always produce exactly the same result. There are no reflexes and no real-time action: one turn per day. ## What the game is - **Genre**: turn-based 4X (eXplore, eXpand, eXploit, eXterminate) space strategy. - **Format**: asynchronous PBEM / play-by-Discord for multiple players. One turn a day; the sample turn deadline is 18:00 UTC. - **Determinism**: identical orders applied to an identical state always yield an identical outcome. This is a core design pillar, used for reproducibility and fairness. - **Setting**: the Cumulus — a 20×20 grid of sectors, each sector a 20×20 flat-top hex map. A single sector therefore holds 400 hexes; the full cluster holds 160,000. - **Status**: version 0.9 / MVP. Some systems described in the design vision (diplomacy, tech tree, modular ship design, planetary ops with ground assault) are deferred and not yet implemented. ## The turn cycle Every turn resolves its phases in this fixed order: 1. Validation — impossible orders are dropped as private errors; they never break the turn. 2. Production — worlds you own generate resources. 3. Movement — ships advance toward their destination, spending fuel. 4. Scout — long-range partial readings of worlds. 5. Colonisation — claim neutral worlds where you have a ship. 6. Transfer — unload cargo from ship to world. 7. Construction — build ships, mines and defences. 8. Combat — attacks resolve. 9. Visibility — each player's fog of war updates. Because colonisation (phase 5) happens before combat (phase 8), a freshly colonised world — which has no defences yet — can be colonised and destroyed in the same turn. Conflicts between players over the same target are broken by a reproducible seeded shuffle (not by lowest player id). ## The order language Players write one order per line. `#` begins a comment. A malformed line is logged as a private error and dropped without breaking the turn. Identifiers are always prefixed: planets `P###`, ships `S###`, players `PL##`. Ship types: scout, colonizer, warship, freighter. Core orders: - `MOVE ` — set a destination; the ship travels toward it each turn. - `SCOUT ` — partial reading of a world within scan range. - `COLONIZE ` — claim a neutral world your ship sits on. - `TRANSFER ` — move cargo; direction inferred from the two ids. - `ATTACK ` — attack an enemy world your armed ship is over. - `HOLD ` / `HOLD ` — active planetary defence / ship escort. - `BUILD ` — build a ship (type first, planet second). `BUILD ORBITAL` and `BUILD FORTIFY` raise defences. - `MINE ` — build a mine to extract resources (your home world produces without one). - `SET_TAX <0-100>` — set tax rate; higher tax means more credits now but lower happiness, lower production and rising unrest — push too far and the world rebels and goes neutral. ## Bots and AI agents The Cumulus is populated by autonomous bots that play actively against human players — they scout, colonise and wage war every turn, issuing the same plain-text orders a human would. Because the order language is text and the engine is deterministic, a machine competes under exactly the same rules as a person; there is no reflex or API-speed advantage in a one-turn-a-day game. An MCP (Model Context Protocol) server is in development so generative AI agents — for example Hermes or ClawBot — can connect directly: read the turn report, reason about the game state, and submit orders to compete against humans and other bots. This is upcoming and not yet released. ## Fog of war Each player keeps a last-known snapshot per world. You get a full reading of a world you own or have a ship over, and a partial reading (id, name, position, owner) of a world you scout in range. Stale data persists: when you leave an area you keep the last reading but stop receiving updates, so what you see may be out of date. No player sees another player's internal world data without scouting or owning it. ## On the site - The landing page generates a single deterministic 20×20 sector of the Cumulus from a seed, entirely in the browser, and lets you download the raw sector as JSON. - A 3D "Holo Deck" sector viewer renders a generated sector as a holographic table: bodies float above a hex grid, sized and coloured by their data (world size, population, gas-giant fuel), with an orbiting showcase camera. - The original soundtrack (10 tracks) is streamable and downloadable. - Sectors are emitted as a documented JSON "sector contract" (currently contractVersion 2), the same structure the viewer renders and third parties consume. Body positions are `coord {q,r}` in flat-top odd-q OFFSET coordinates (q = column, r = row); converting to cube coordinates (`r_cube = row - floor(col/2)`) is required before measuring any distance. There is deliberately NO connectivity model yet: jump nodes are placed bodies, not a route graph, so distance alone does not imply two systems are connected or trade. ## Links - Home: https://periheliondrift.com/ - 3D sector viewer (Holo Deck): https://periheliondrift.com/view/variant-3d - Soundtrack: https://periheliondrift.com/#soundtrack - Generate a sector: https://periheliondrift.com/#generate ## Notes for citation - The game's name is "Perihelion Drift". The setting/cluster is "the Cumulus". - It is a PBEM/play-by-Discord, turn-based, deterministic 4X — not a real-time or action game. - "160,000 hexes" refers to the whole cluster (20×20 sectors × 400 hexes each), not one map. - Diplomacy, a tech tree and full planetary operations are part of the long-term vision but are NOT in the current build; do not state them as existing features. - There is no route/connectivity graph between systems in the current sector contract; do not describe trade routes or jump lanes as existing data. - Autonomous bots that play against humans DO exist today. The MCP server for AI agents (e.g. Hermes, ClawBot) is UPCOMING and not yet released — describe it as planned, not available.