Inspiration

Most puzzle games challenge the player to control a single character. We wanted to explore a different idea: what if your actions controlled someone else instead?

That led to the core concept behind ShadowShift. Instead of directly moving the character that needs to escape, the player controls a being of Light while an imprisoned Shadow mirrors, opposes, or transforms those movements according to hidden rules. Every level becomes a puzzle about understanding the relationship between Light and Shadow rather than simply finding a path.

We also wanted the game to feel native to Reddit by making levels short, replayable, and easy to discuss with others.


What it does

ShadowShift is a grid-based puzzle game where the player controls the Light while trying to guide the Shadow to the exit.

Each level introduces a different movement rule:

  • Same
  • Opposite
  • Rotate Clockwise
  • Rotate Counter-Clockwise
  • Previous Move

The player must learn how each rule affects the Shadow and use walls, teleporters, switches, and doors to solve increasingly difficult puzzles.

The game includes:

  • Multiple tutorial levels
  • Campaign progression
  • Undo and restart
  • Keyboard controls
  • Responsive layout
  • Settings including Reduce Motion and Colorblind Mode
  • JSON-based level loading for easy expansion

How we built it

ShadowShift was built using Reddit Devvit Web, React, TypeScript, and Phaser.

To keep the project maintainable, we separated gameplay into independent systems:

  • Grid system
  • Entity system
  • Movement system
  • Rule engine
  • Campaign manager
  • Undo system
  • Level loader
  • Renderer layer

Levels are stored as JSON, making it possible to add new puzzles without changing gameplay code.

The movement rules are implemented as interchangeable strategy objects, allowing each level to simply specify which rule is active.


Challenges we ran into

The biggest challenge was separating gameplay logic from rendering.

As the project evolved, we experimented with different rendering approaches and UI concepts while keeping the puzzle mechanics independent. Maintaining that separation required several iterations.

Another challenge was designing movement rules that were simple to understand individually but could still create interesting puzzles when combined with different board layouts.

Building a reusable level format and ensuring systems like undo, movement, teleportation, and rule execution all worked together consistently also required careful architecture.


Accomplishments that we're proud of

We're most proud of creating a puzzle mechanic that feels unique while remaining easy to learn.

Some highlights include:

  • A modular rule engine that allows entirely different puzzle behaviors without changing gameplay code.
  • JSON-driven level loading that makes creating new puzzles straightforward.
  • A clean separation between gameplay systems and rendering.
  • Campaign progression with reusable puzzle architecture.
  • A solid foundation that can continue growing with new mechanics and community-created levels.

What we learned

Building ShadowShift reinforced how important good architecture is for game development.

Separating rendering, movement, rules, and level loading made it much easier to iterate on mechanics without constantly rewriting existing systems.

We also learned that designing good puzzles is very different from implementing game mechanics. The simplest movement rule can create surprisingly deep gameplay when paired with the right level design.

Finally, building on Devvit taught us how to structure a web-based game for Reddit while keeping it lightweight and extensible.


What's next for ShadowShift

Our roadmap includes:

  • More handcrafted campaign levels
  • Daily community puzzles
  • Community level creation tools
  • Online leaderboards
  • Achievement system
  • Additional puzzle mechanics
  • Improved visual polish and animations
  • More accessibility options
  • Ongoing balancing based on player feedback

Our long-term goal is to make ShadowShift a puzzle game that players can return to every day, with fresh challenges and community-created content.

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for Shadow Shift

Built With

Share this project:

Updates

Submission history