Family Zoo Tutorial
Family Zoo is Sharpee's tutorial game: a small zoo adventure with rooms, objects, NPCs, puzzles, timed events, and scoring.
The Current Tutorial: The Sharpee Book (v2.0.0)
For Sharpee 2.2, the Family Zoo tutorial lives in The Sharpee Author and Developer Manual. Its 31 chapters build the zoo from a single room to a complete, themed, transcript-tested browser game — custom actions, capability dispatch, scenes, daemons, scoring and victory, channels, theming, media, and walkthrough testing. Every listing was verified against the published packages by a literal front-to-back read. Chapter snapshots are on GitHub under tutorials/familyzoo/v2.0.0.
Read online · EPUB · PDF · all code snippets
The Zoo in Chord
The whole zoo also exists in Chord, Sharpee 3.0's story language — rooms, NPCs, timed events, custom actions, and scoring as one declarative zoo.story file. If you know the zoo from the book, reading it in Chord is the fastest way to learn the language.
The Legacy Web Tutorial (Sharpee 1.x)
The original 17-step web tutorial below was written for the 1.x line and is kept for readers on those versions. Each step adds one concept — by the end you'll have a complete game.
The Game
Seven rooms: Zoo Entrance, Main Path, Petting Zoo, Aviary, Gift Shop, Supply Room, Nocturnal Exhibit
Key objects: zoo brochure, zoo map, animal feed, souvenir penny press, flashlight, disposable camera, backpack, lunchbox
NPCs: a patrolling zookeeper ("Sam"), a squawking parrot, pettable goats and rabbits
The goal: Earn 100 points by visiting exhibits, feeding animals, pressing a souvenir penny, taking photos, and staying after hours.
The Steps
| # | Topic | What You'll Learn |
|---|---|---|
| 1 | A Single Room | Story interface, entities, traits, placing things |
| 2 | Multiple Rooms | Room connections, exits, compass directions |
| 3 | Scenery | SceneryTrait, non-portable objects, aliases |
| 4 | Portable Objects | Items, inventory, taking and dropping |
| 5 | Containers | ContainerTrait, SupporterTrait, capacity |
| 6 | Openable | OpenableTrait, closed containers, hidden contents |
| 7 | Locked Doors | LockableTrait, DoorTrait, keys, exit via |
| 8 | Light & Dark | Dark rooms, LightSourceTrait, SwitchableTrait |
| 9 | Readable | ReadableTrait, read vs examine |
| 10 | Switchable | SwitchableTrait standalone, device patterns |
| 11 | NPCs | NpcTrait, behaviors, patrol, custom behaviors |
| 12 | Event Handlers | Reacting to actions, chain events, item transformation |
| 13 | Custom Actions | Four-phase actions, grammar extension, language |
| 14 | Capability Dispatch | Per-entity behaviors, custom traits, dispatch |
| 15 | Timed Events | Daemons, fuses, SchedulerPlugin |
| 16 | Scoring & Endgame | Score ledger, victory conditions, event chains |
| 17 | Putting It All Together | Multi-file organization, entity helpers, language layer |
Prerequisites
- Node.js 18+
- TypeScript knowledge
- Familiarity with Sharpee basics (the Cloak of Darkness tutorial)
Use the numbered tabs on the left to step through the legacy tutorial, or start with Step 1.
Resources
- v2.0.0 chapter snapshots on GitHub — the book's code
- v1.5.0 source on GitHub — the legacy tutorial's code
- zoo.story on GitHub — the complete zoo in Chord
- Cloak of Darkness Tutorial — the beginner tutorial