Skip to content

[FEATURE] Checkpoint Boss Battles — Every 10 Rooms, a Puzzle Showdown #45

Description

@johnny603

Problem Statement

As players progress through the escape rooms, the difficulty increases gradually, but there's no climactic milestone to celebrate their achievements. After every 10 rooms, players need a significant challenge that tests everything they've learned — a "boss battle" room that feels like a culmination.
Similar to Kirby's Avalanche or Puyo Puyo but with many branching paths

Feature our beloved Mascot, Lux (Inspired by Pingu and Tux)

Proposed Solution

Implement a checkpoint system that triggers a special "Boss Room" every 10 completed rooms:

  • Boss Room Logic:

  • After a player escapes room roadmap(cli): add CLI progress persistence, sorting, and tests #10, Document the versioned API #20, feat(sandbox): add privacy-conscious execution audit records and distinct failure states (closes #21) #30, etc., the next room is automatically a Boss Room (e.g., "The Guardian's Trial", "The Architect's Revenge").

  • The Boss Room is not listed in the main catalog — it appears as a special event.

  • The boss puzzle is a multi-stage showdown combining mechanics from previous rooms:

  • Stage 1: Solve a knowledge-based riddle (text/code).

  • Stage 2: Use an item from your inventory correctly.

  • Stage 3: Beat a timed sequence (e.g., input a code under 10 seconds).

  • Stage 4: Answer a cumulative trivia question about the lore/story of the previous 9 rooms.

  • Game Design:

  • Boss Rooms have a unique theme (e.g., "The Clockwork Sentinel", "The Shadow Labyrinth") and a dramatic UI with a progress bar showing the player's stages.

  • If the player fails any stage, they restart the boss room (not the entire 10-room set).\n - Escaping a Boss Room rewards the player with a Boss Token (collectible) and unlocks a special achievement.

  • Technical Implementation:

  • Add a is_boss_room boolean and stages array to the Room model.

  • Create a POST /api/v1/rooms/{id}/boss/submit-stage endpoint that accepts the stage index and the player's answer, returning stage_passed and next_stage or failed.

  • In the web UI, render a dedicated boss room view with stage indicators, a timer, and visual feedback (e.g., flash effects on success/failure).

  • In the CLI, add a boss command that shows current stage and accepts stage-specific input.

  • Progression Guard: Players must complete the Boss Room to access the next set of 10 rooms. This creates a natural pacing and sense of accomplishment.

Alternatives Considered

  • Skipping bosses and keeping difficulty purely linear — rejected because it removes the emotional highs and story beats.
  • Random boss rooms with no fixed interval — rejected because predictability helps players prepare and set goals.

Additional Context

  • The first Boss Room (after room 10) should be relatively easy — a "tutorial boss" that introduces the mechanics.\n- Later Boss Rooms (after room 50+) can be extremely complex, potentially requiring AI-driven generation (Ollama) to create unique riddles per player.\n- This feature directly supports the "platformer" metaphor — bosses are the level caps that reward mastery.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions