T1 tutorial: Actions events, the Guide autoload, chapter 1 with Old Tam the hermit, guide panel and marker, saved progress; roadmap: auto-update plan

This commit is contained in:
Paul Bailey
2026-11-05 14:14:32 +00:00
parent e03411ffdb
commit 5b5dd3d609
11 changed files with 834 additions and 5 deletions

View File

@@ -88,6 +88,36 @@ phases M2.0-M2.7).
- Better UI, settings, controls
- Audio, music, weather
- Packaged builds for Win/Mac/Linux (+ Mac signing/notarisation)
- **Updates**: the game (and a dedicated server) needs to notice when a new
version is out, download what's needed and install it. See below.
### Updates (to design with the packaged builds)
Needed because every network change bumps the protocol (12 as of P5), and
an out-of-date game can't join an up-to-date server: today that means
`git pull` and a restart on every machine.
- **Knowing there's an update:** the game checks a small version file
(version number, protocol, per-platform download URLs and checksums) at
start-up and from the title screen. The server checks too. When joining
a server with a newer protocol, the "different game version" refusal
should offer to update instead of just saying so.
- **Getting it:** download only what changed where possible (the game's
`.pck` data separately from the engine binary, which rarely changes), to
a staging folder, verified by checksum (and signature) before anything
is replaced.
- **Installing it:** swap in the new files on the next start (a tiny
launcher or a restart-and-replace step), keep the previous version to
roll back to if the new one fails to start. Mac: signed and notarised so
Gatekeeper accepts it; Windows: signed. Worlds, profiles and server
config live in user data, so they're never touched; saves stay
readable by newer versions (they already load older saves).
- **Servers:** a headless server can update itself at a quiet moment
(nobody on, or after warning players), or an admin runs an update
command; the launchd/systemd service files restart it.
- **Where updates come from:** GitHub Releases is the simple start (the
version file and builds attached to a release); itch.io's butler or
Steam would handle it for us if the game ships there.
- **Addons (M3)** will want the same: a version per addon and the server
telling players which addons (and versions) it needs.
## Honest overall estimate
A genuinely playable **self-hosted survival game with a working sandboxed addon

View File

@@ -1,6 +1,28 @@
# Tutorial world design
Status: **proposal**. Nothing here is built yet.
Status: **T1 built** (the Guide, Actions' events, chapter 1 in
data/tutorial.json, the guide panel and marker); T2-T4 are proposals.
*As built in T1:*
- Actions has signals for what players do: `crafted`, `harvested` (with
whether it fell), `placed`, `ate`, `killed`, `butchered`, `caught`,
`slept` (plus the old `item_gained`).
- The `Guide` autoload (scripts/core/guide.gd) runs data/tutorial.json:
goals `walk`, `gained`, `crafted`, `felled`, `placed`, `ate`, `killed`,
`butchered`, `caught`, `slept`, `continue`, and `all` of several. It
counts from the tutorial's start, so a step done early ticks the moment
it comes up. Markers: the nearest pickup of a kind, tree or boulder,
hidden once you have what it's for (`unless_have`).
- The guide panel (scripts/ui/guide.gd) under the clock: chapter, step n of
m, title, how, and a count ("Sticks 2/3 · Stone 0/3"); a tick when a
step's done; H hides it. The marker is a pale glowing post and ring, with
an arrow and distance at the screen edge when it's off-screen.
- A world with `"tutorial": true` in its meta.json runs it (the title
screen entry comes in T2); `-- --tutorial` runs it on any world for now.
Progress is saved with the world.
- Chapter 1 (First tools) is in the data; chapters 2-5 come with T2. The
guide is **Old Tam**, the island's hermit (decided): the steps are in his
voice, with his name on the panel.
A short, guided first world that teaches the survival loop by having you
do it: gather, craft, chop, eat, hunt, cook, fish, keep a mixed diet,