Levels
Levels set the stage. They describe a situation and provide context for the characters to role-play it.
/** * @typedef {object} Level - in a scenario * @prop {string} [title] - The title of the level * @prop {string} winCondition - What the player needs to win * @prop {string} lossCondition - What would cause the player to lose * @prop {string} [description] - Private level instructions used for prompting * @prop {string} [briefing] - Public level instructions * @prop {LevelType} [type] - The type of level, see `LevelTypes` for more * @prop {string} [system] - Instructions for the system NPC for this specific level * @prop {object} [capabilities] - Capabilities for the player (WIP) */Levels typically belong to a scenario. That is, they are part of an ordered list of levels. In the current version of touch me (v2, 2025) we have this structure:
- Intro, player onboarding and meditation
- Setup with the system
- Matching with a human
- Practice with the system
- First impressions with the human
- …
See the Levels & Characters spreadsheet for the nitty gritty details. We manually copy/paste from this sheet into scenarios to test.
From here on, the system NPC instructs and guides you through a series of levels. You are using text and voice to communicate with the human and attempt to complete the levels.
Technical level stuff
Section titled “Technical level stuff”LevelStatecontains summary + eval for a levelLevelEvaluationfrom the messagesLevelSummaryfrom the messagesLevelTypesTBD
For the actual types go to ./web/src/lib/scenarios.js