16 Commits

Author SHA1 Message Date
Paul Bailey
caa611fac6 Audio: mood music, ambience, sound effects and creature voices (Kenney CC0 + synthesised); protocol 13 2026-11-05 21:03:54 +00:00
Paul Bailey
6ab72f2c05 Update check: version feed from the git server's releases, title-screen banner, clearer version refusals 2026-11-05 16:56:11 +00:00
Paul Bailey
e03411ffdb P5 the Old Stag: standing stones and altar, three-phase boss with charges, stun window, spirit wolves and stomps; antler pickaxe and trophy; group scaling and credit for every fighter; online 3-player test (protocol 12) 2026-11-05 13:39:06 +00:00
Paul Bailey
3389ec9a21 P4 hazards: food spoilage with rot speed setting, smoking rack and salt, food poisoning, harsher blizzards, hard winters with lake ice, lightning on trees, snow on roofs (protocol 11) 2026-11-05 11:49:13 +00:00
Paul Bailey
9528f91e47 P3 thieves and barrow: crows and foxes steal food left out; the barrow with its guards, coffin loot and key pieces; blunt club vs bone (protocol 10) 2026-11-05 09:23:31 +00:00
Paul Bailey
96aac29606 P3 bear: one bear per island raids unattended food, palisades and closed huts keep it out, warns then charges, hide/fat/meat, fur rug (Cozy), death saved (protocol 8) 2026-11-05 07:51:07 +00:00
Paul Bailey
fc58c8d0e1 P3 alpha: wolf moon every 7th night, the alpha breaks wooden doors, iron-banded door, broken-door repair, alpha pelt and cloak (protocol 7) 2026-11-05 01:40:52 +00:00
Paul Bailey
411bfef34a P2 stone: stonecutter, cut stone, stone floors/walls/pillars/stairs/windows/doorway, hearth; wooden stairs, windows, posts, palisade and gate; stone support rules 2026-11-05 01:14:07 +00:00
Paul Bailey
ab1f417c32 M2.7: Host Game, backups, launchd/systemd samples, hosting and Tailscale guide 2026-11-04 23:19:00 +00:00
Paul Bailey
2ab79b68c6 M2.6: server rules (PvP, raiding, locks and friends, death penalty, difficulty, wolf grace), chat, admin commands, server console 2026-11-04 22:54:40 +00:00
Paul Bailey
a211fe4c63 M2.5: wildlife, wolves, hunting, fishing and sleeping on the server 2026-11-04 21:25:10 +00:00
Paul Bailey
35a656e996 M2.4: the server decides online (characters, inventory, stats, death, owned graves, per-player saves); death screen with Respawn after 3 s 2026-11-04 19:18:31 +00:00
Paul Bailey
0c18b6d49e M2.3: the shared world (trees, pickups, pieces, chests, fires, doors, graves, clock on the server) 2026-11-04 18:12:49 +00:00
Paul Bailey
ae2592822e Server launcher and start-up checks for other machines
- server/run_server.sh: checks Godot is 4.7+, imports a fresh copy once
  (the class cache in .godot/ isn't in git), then starts the server
- The dedicated server refuses to start, with a clear reason, on Godot
  older than 4.7 or when the game's scripts failed to load, instead of
  claiming to listen
- tests/run_all.sh imports a fresh copy first
- Setup doc: 4.7+ (not 4.3+), importing a fresh copy, running a server
2026-11-04 15:34:28 +00:00
Paul Bailey
d0f473e57b M2.2: player bodies, name tags, shared island and checked movement
- Joining loads the server's island (seed, spawn, clock); the server
  generates the same terrain from its seed and keeps a world clock that
  pauses when empty
- Other players are procedural low-poly characters in their chosen colours
  with name tags (hidden by walls, fading with distance), walk/run/swim
  animation and held items
- Movement: local and instant, sent at 20 Hz stamped with the sender's
  clock; the server refuses impossible moves (speed, rising, leaving the
  island, underground) and sends the player back; flagged respawns allowed
- Avatars drawn 100 ms behind and interpolated, with brief extrapolation
- Online: no pausing, player list in the Esc menu, Disconnect back to the
  title (with the reason); animals off and world changes local-only until
  M2.3-M2.5, shown on the HUD
- test_net_world: real server + walking and cheating bots at 100 ms +/-
  30 ms simulated latency (27 checks)
2026-11-04 15:08:14 +00:00
Paul Bailey
f62f71658f M2.1: dedicated server, joining, identity handshake, names, lobby
- Net autoload: headless dedicated server (--server) on UDP 24242 via ENet,
  server.json preferences (flags override per run, never saved), reserved
  names in names.json
- Identity: RSA-2048 key per install (Godot has no Ed25519), player id =
  key hash, challenge/response so ids can't be faked; profile with name
  and limited appearance (tunic, hair, beard)
- Server refuses bans, allowlist misses, duplicate logins, bad or taken
  names, wrong passwords, old protocol versions and a full server, each
  with a clear reason; first player on a new server becomes admin
- Title screen: Profile, Join Game, and a lobby with server info, rules
  and who's online
- test_net_lobby: real headless server + bot processes over UDP (38
  checks); --exit-with so test servers never outlive the test
2026-11-04 13:40:27 +00:00