Commit Graph

3 Commits

Author SHA1 Message Date
Steve Biedermann afd3d3a537 feat(server): store worlds in sqlite or postgres with sqlx
Worlds are identified by a UUID and every table is keyed by it, so many
worlds can share one database. The schema is created and migrated
automatically. Autosaves are written on a background tokio runtime; exit
saves block until done.

Singleplayer saves are one SQLite file per save game in the platform data
directory. The dedicated server takes --database URL (default
sqlite://saves/server.sqlite) and --world NAME|UUID.

BREAKING CHANGE: the rsn save format and the server's --save FILE option
are removed; existing saves are not migrated.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-18 20:47:43 +02:00
Steve Biedermann 0b258a9361 build: add cargo xtask pack for distributable archives
`cargo xtask pack [--target T] [--format zip|tar.gz] [--out-dir DIR] [--debug]`
builds the client and dedicated server and packs them with assets,
README and changelog into dist/station-<version>-<target>.(zip|tar.gz).
Windows targets default to zip, others to tar.gz.

Packaging uses a new `dist` profile (release + strip), which shrinks the
binaries considerably without changing regular release builds.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-18 20:08:45 +02:00
Steve Biedermann a43949be14 feat: add persistent-world station game
Bevy ECS workspace with three crates:
- game_core: rsn data definitions, components, Tiled map loader, protocol
- game_server: authoritative simulation, Rune scripting, persistence,
  dedicated server binary
- game_client: rendering, UI and input; embeds the server for
  singleplayer and hosting

Items, recipes, buildings and skills are defined in assets/data, behavior
in Rune scripts under assets/scripts, and maps are made in Tiled.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-18 19:44:13 +02:00