Commit Graph

3 Commits

Author SHA1 Message Date
Steve Biedermann bc58855ff5 feat: shard-aware world with transparent actor transfers
Add a router that delivers actor messages locally or to the shard that
currently hosts the entity. People and animals that leave their shard's
columns depart with their full state, forward messages while in flight
and are re-admitted on the destination shard. Enlarge the default world.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-12 19:20:30 +02:00
Steve Biedermann 028d5219c5 update defaults 2026-10-11 21:37:12 +02:00
Steve Biedermann 9285df4d7b feat(sim)!: move simulation settings and behaviours into config.rn
Starting values and tuning constants are now `pub const` items in a
single Rune file, config.rn, alongside the `person`, `rabbit` and `wolf`
behaviour functions. The behaviours read the constants directly. At
startup the server loads the file from SIM_CONFIG (default: config.rn),
reads and checks every constant, and test-runs each behaviour, so a bad
or missing value stops startup with an error that names it.

- Map width and height can now be configured and are stored in
  snapshots.
- The UI's edit limits (max speed, stock, inventory, hunger, energy,
  resource amounts) come from the config.
- The in-browser script editor now edits config.rn. Applied edits update
  behaviours and tuning values immediately; map size, initial population
  and calendar defaults apply on reset.
- The Docker image includes config.rn, and Compose mounts the
  repository's copy read-only.
- Documents the config file and how it works in the README.

BREAKING CHANGE: src/behavior.rn has been removed; behaviours now live
in config.rn. The server will not start without a valid config file.
Snapshots no longer store the behaviour script: on restart, config.rn
from disk replaces any edits made in the browser editor.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-11 20:42:29 +02:00