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:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user