Phase 4: quests, and the framework under them #80
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Last phase, and the only one whose first task is engine rather than content.
The framework comes first: a state machine per quest, a manager, the
journal, and the sync that keeps a client's quest list honest across a logout.
Roughly two thousand lines in the sister project. It is the last
engine-shaped thing on the whole roadmap, and it is deliberately last, for a
reason this project has learned twice: a framework with no consumer is exactly
the shape that ships encoded, tested and idle, and whose gaps are only found
when something finally calls it. Build it with the first quest, not before it.
Everything it stands on already exists. Dialogue with its four queue strengths
and the per-kind acceptance rules; items; NPCs that can be talked to and can
die; varbits, which are what quest state is actually stored in and which are
already a window-into-a-varp rather than storage of their own.
There is very little to port. The sister project shipped two quests and a
tutorial. So past the framework this is the phase where the two projects
diverge and "what does the sister project do" stops being the useful question —
the wiki and the cache become the only sources, which is the arrangement the
rest of this repo already runs on.
One era note, since quests are where it bites hardest: the target is
2017-07-13, so the quest list is large, and the temptation is to take a modern
quest guide at face value. Quests are reworked more often than most content
— rewritten dialogue, changed requirements, added skips — so the changes
section applies here exactly as it does to a formula.
Done when a quest can be started, left half-finished across a logout, and
completed.