Inspiration
The challenge asked us to explore villainy not as cruelty, but as justified control. We were inspired by the concept of systems that optimize using cold logic—algorithms, ideologies, strategists—and how they reshape the world silently. We wanted players to experience what it feels like when power becomes absolute and empathy becomes an inconvenience.
What it does
THE WEAVER is a narrative strategy game where you are not the hero—you are the hidden system shaping the hero's fate through calculated decisions.
- Each choice increases your Power and decreases world Hope
- As influence grows, NPCs become cautious, then silent
- Colors desaturate, spaces feel emptier, the world responds with quiet unease
- You face limited choices per phase, forcing real trade-offs
- Unchosen paths collapse into silence
- The ending varies based on your final metrics: Efficient Tyranny, Total Erasure, or Fractured Salvation
- The Mirror replays your choices without justification, stripping away the logic that made them feel reasonable
How we built it
Pure web stack: HTML for structure, CSS for atmospheric decay effects, vanilla JavaScript for game logic and state management.
We separated concerns cleanly:
data.jscontains all story content (neutral)state.jsmanages game logic and event flow (no DOM)renderer.jshandles all UI updates (no game logic)audio.jsimplements a Web Audio ambient drone that shifts with power levelparticles.jscreates floating thread-dust that dims as hope fades
No frameworks, no build step, no server—runs directly in any modern browser.
Challenges we ran into
Making quiet ending feel powerful: Silence is harder to depict than chaos. We solved this through gradual color desaturation, NPC opacity fades, and strategic absence (empty throne room).
Justifications that remain memorable: Each decision shows cold logic first, then players see the Mirror version (raw action) at the end. The contrast is psychologically effective.
Trade-off system pressure: Early iterations let players take all actions. We added phase choice limits (3 picks per phase max) so unchosen paths vanish, forcing real sacrifice.
Ending variety without branching hell: We compute the ending dynamically from final metrics (Hope, World Voice, Hero Trust). Three outcomes feel earned, not random.
Accomplishments that we're proud of
- Clean architecture that separates data, logic, and view—makes the game easy to extend
- The Mirror effect captures the core theme perfectly: stripped of justification, actions are undeniable
- Visual decay is cohesive: color, NPC behavior, and UI all respond to power in concert
- No external dependencies, no framework bloat—proves the concept in pure web tech
- Playable in 60 seconds, but philosophically dense
What we learned
Villainy isn't always loud. The most unsettling part of this game isn't the power—it's the moment when the player realizes they didn't feel like the villain at all. That cognitive dissonance is where the real horror lives.
Also: web audio drones are incredibly atmospheric. A simple frequency shift can make a game feel progressively more wrong.
What's next for THE WEAVER
- Add procedural NPC dialogue variations so multiple playthroughs feel fresh
- Implement difficulty modes (Hard: fewer choices; Mercy: more choices)
- Add optional "New Game+" mode where choices are locked and the ending predefined
- Sound design expansion (footsteps that echo less as hope drains)
- Accessibility improvements (high contrast mode, screen reader support)
Log in or sign up for Devpost to join the conversation.