Skip to content

Activity Selection Rules

Part of NPCs World Verbs Rewards and Living World

The learning/session engine selects the activity. The child experiences a story problem; the system decides the educational form.


Decision inputs

Child learning state

  • mastered / struggling / recently seen words
  • reading level · confidence level · activity history

Session context

  • current destination · NPC · story stage
  • available world objects · required progression
  • required activity type (if any)

Product rules

  • avoid repeating same activity too often
  • mix confidence and challenge
  • do not block story on voice if mic unavailable
  • prefer shorter activity for first session
  • avoid too many new mechanics at once

Selection flow

Player interacts with NPC
  ↓
Check NPC relationship stage + story chapter
  ↓
Select eligible NPC jobs
  ↓
Learning engine selects activity type + words
  ↓
Story wrapper applied → activity served
  ↓
Attempts saved → world updates → relationship updates → reward/drop check

Rules

Rule 1 — Story can require a specific job

Example: first merchant job required for boat.

required_story_job:
  npc: merchant
  job: repair_box_labels
  unlocks: boat_access

Exact words still chosen by learning engine.

Rule 2 — Activity type usually flexible

Same job may support several types:

job:
  id: wet_crate_labels
  supported_activity_types:
    - missing_letter
    - spelling
    - single_word

Rule 3 — Voice activities need fallback

If speech unavailable: reading without speech, tap-to-confirm, spelling alternative, adult-assisted mode (later).

No child blocked from story progress because microphone fails.

Rule 4 — Control first-time mechanics

  • First island: Missing Letter (+ maybe simple Spelling)
  • Lighthouse: Reading or Read Aloud
  • Whale Bay: Reading Boss / sentence reading
  • Later: multi-word challenges

Rule 5 — Cooldowns on repeated jobs

job_cooldown:
  repair_box_labels: 5 sessions
  wet_price_tags: 3 sessions

Job selection priority

  1. Required main story job
  2. Unseen first-time NPC introduction
  3. Relationship progression job
  4. Learning need job
  5. Living world repeat job
  6. Optional collectible-eligible job

Main story always wins over random living world jobs.


Anti-repetition tracking

Track recent: npc_id, job_id, activity_type, world_verb, target_object, served_at.

Avoid:

  • same NPC too many times in a row
  • same verb / opening line / object every session
  • same activity type 3× in a row (unless learning requires it)