Skip to content

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:

  1. Intro, player onboarding and meditation
  2. Setup with the system
  3. Matching with a human
  4. Practice with the system
  5. 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.

  • LevelState contains summary + eval for a level
  • LevelEvaluation from the messages
  • LevelSummary from the messages
  • LevelTypes TBD

For the actual types go to ./web/src/lib/scenarios.js