Inspiration

Blackout Cascade was inspired by a graph constraint satisfaction problem I studied during my Data Structures and Algorithms course in college. I was fascinated by how simple local constraints on graph nodes could create surprisingly complex global behavior.

That idea evolved into a puzzle where every house has activation requirements and limited power capacity, forcing players to reason about resource allocation, dependency graphs, and cascading effects. I wanted to transform an academic concept into a game that feels intuitive, rewarding, and enjoyable to solve.


What it does

Blackout Cascade is a daily strategy puzzle game built on Reddit's Devvit platform where players restore power to an entire city by carefully routing electricity through a network of interconnected houses.

Each puzzle consists of a graph where every house has two attributes:

  • Requirement – the number of powered neighboring houses required before it can activate.
  • Capacity – the maximum number of neighboring houses it can supply with electricity once activated.

Players begin by activating one of the available generators, which have no activation requirement. Activated houses become power sources, and players must strategically choose which neighboring houses to power using their limited capacity. Every power connection is permanent, and each decision directly affects the rest of the network.

As more houses satisfy their activation requirements, they automatically turn on and become new power sources, creating satisfying chain reactions across the city. The objective is to restore power to every house while making efficient routing decisions before running out of useful capacity.

A new procedurally generated puzzle is published every day. Players compete by maintaining solve streaks, climbing a global leaderboard, earning faster completion times, and sharing their results directly on Reddit.


How I built it

I modeled the city as an undirected graph where houses are represented as nodes and power lines as edges. Every house stores two constraints: the number of neighboring powered houses required before activation and the number of neighboring houses it can power after activation.

To create engaging daily puzzles, I built a procedural generation pipeline that assembles graphs from reusable structural motifs instead of relying on random graph generation. Every generated puzzle is then verified by a custom backtracking solver that explores every possible sequence of valid moves before deciding whether the puzzle is worth publishing.

The puzzle generator was designed around several principles:

  • Scarce Capacity — Every house is given only the capacity needed to support the intended solution, with very limited room for alternate routes. Since capacity is permanently consumed, every power connection becomes a meaningful strategic commitment.
  • Meaningful Decoy Connections — Decoy connections are fully usable but consume the same limited capacity as essential routes. Choosing one may appear beneficial initially but can prevent the optimal cascade from ever occurring.
  • High-Value Hubs — The most influential houses require multiple incoming connections before they activate, forcing players to coordinate several branches of the graph before unlocking powerful chain reactions.
  • Motif-Based Puzzle Generation — Every puzzle is assembled from reusable graph motifs including chains, forks, merges, hubs, and bridges. This guarantees meaningful coordination problems, difficult trade-offs, and satisfying "unlock" moments in every puzzle.
  • Solver-Validated Difficulty — Every generated puzzle is validated by a custom solver. Only puzzles that are solvable, contain limited valid solutions, meaningful branching decisions, and recoverable dead ends are accepted.

The frontend was built with React, TypeScript, and Tailwind CSS, while Devvit, Hono, and Redis power the backend, daily scheduling, persistent leaderboards, and Reddit integration.


Challenges I ran into

The biggest challenge was generating puzzles that were not only solvable but also strategically interesting.

Random graph generation frequently produced puzzles that were either trivial, impossible, or lacked meaningful decisions. I had to design a procedural generation system that first creates a desired solution structure, then introduces constrained capacities, meaningful decoy connections, and high-value hubs before validating every puzzle with a solver.

Another challenge was balancing puzzle difficulty while keeping each daily challenge solvable within a couple of minutes. Finding that balance required several iterations on both the generation algorithm and the solver.


Accomplishments that I'm proud of

  • Created a puzzle generation system that consistently produces meaningful choices through capacity constraints, decoy connections, and coordinated activations.
  • Designed a custom graph solver that validates puzzle quality instead of simply checking solvability.
  • Successfully transformed a graph theory concept from an algorithms course into an intuitive strategy game.
  • Designed multiple player retention systems including daily puzzles, streak-based progression, cumulative scoring, global leaderboards, Reddit score sharing, and fuse rewards that encourage players to return every day.

What I learned

Building Blackout Cascade taught me that generating good puzzles is often harder than solving them.

I gained practical experience with graph algorithms, backtracking search, procedural content generation, constraint satisfaction, and state-space exploration. I also learned how solver-driven generation can be used to automatically measure puzzle quality and difficulty.

On the engineering side, I learned how to build a complete Reddit-native game using Devvit, combining frontend development, backend APIs, scheduling, persistence, and community-driven features into a single application.


What's next for Blackout Cascade

My next goal is to make Blackout Cascade feel like a complete daily puzzle platform.

Some features I'd like to add include:

  • Difficulty tiers (Easy, Medium, Hard, Expert).
  • Weekly challenge events with larger handcrafted puzzles.
  • Player-created puzzles that can be shared and voted on by the community.
  • Seasonal leaderboards and achievements.
  • Smarter procedural generation using optimization techniques to create even more diverse puzzle structures.
  • Additional mechanics such as substations, transformers, overloaded circuits, one-way power lines to further deepen the strategic gameplay.

Built With

Share this project:

Updates

Submission history