38 lines
2.2 KiB
Markdown
38 lines
2.2 KiB
Markdown
# Flight Ops — Game Design
|
||
|
||
Browser game, pure economic gameplay: run a small airplane transport company in Europe.
|
||
No manual flying — planes auto-fly assigned routes; you manage the business from an ops dashboard over a 2D map.
|
||
|
||
## Layout (single screen)
|
||
- Left pane — Assets: fleet list (plane type, status, fuel, location), wallet, reputation
|
||
- Right pane — Jobs & Market: contracts between airports (reward, deadline, cargo/passengers) with accept/dispatch actions; market actions (buy/sell planes, refuel, maintenance)
|
||
- Middle — Map: EU airports as markers, animated plane positions along routes, active contract routes highlighted; click airport → info (runways, local time, weather); click plane → status
|
||
|
||
## Core loop
|
||
Accept job → dispatch a plane → watch it fly the route on the map → earn money + reputation → buy better planes / take bigger jobs.
|
||
|
||
## Map & rendering
|
||
- MapLibre GL JS with vector tiles (OpenFreeMap/OSM-based) — crisp detail down to ~10–100 m/px at city zoom, smooth continent overview; no Cesium needed
|
||
- Camera: top-down when zoomed out, tilts to ~45° as you zoom in (zoom-driven pitch transition)
|
||
- View is flat 2D only (zoom-driven tilt and terrain were removed in v0.3.0 as over-engineered)
|
||
- Game-logic data (airports, runways, countries/regions): downloaded CSV dataset cached in `data/`
|
||
|
||
## Simulation engine
|
||
- Server-authoritative state: sim ticks on the server, client polls and renders
|
||
- Time scale 1x–1000x (discrete ladder 1/2/5/10/25/50/100/250/500/1000) + pause; sim clock persisted across sessions
|
||
- SQLite via Drizzle ORM — schema designed to switch to Postgres later
|
||
- Demand/revenue/cost formulas per contract leg; fuel burn by distance/plane type
|
||
|
||
## Weather (display-only for now)
|
||
- Generated per airport (wind, visibility/fog, conditions)
|
||
- Shown on map / airport info; no gameplay effects yet
|
||
|
||
## MVP slice
|
||
Starter plane + EU airports + contracts + buy/sell + map visualization + weather display.
|
||
|
||
## Later
|
||
- Weather effects: delays, fuel burn changes, closed airports
|
||
- More aircraft types, upgrades (fuel efficiency, cargo capacity) — money sinks
|
||
- Multi-region packs (non-EU airports)
|
||
- Multiplayer (shared world, contract races)
|