Echoic Banner Image

Inspiration

I wanted to add a twist to puzzle games. I love daily puzzles, I love roguelikes, and I love games that mess with you a little, and I kept wondering what would happen if all three lived in the same place. So Echoic became my attempt at combining genres into something I don't think has ever been done before: a puzzle ragebait roguelike, hiding inside an innocent daily puzzle.

On the surface, Echoic is a minimalist resonance puzzle: a quiet Prussian-blue grid, one shared board per subreddit per day, fewest taps wins. But behind a tiny pixel skull in the UI, there's a portal to an alternate dimension: a crimson pixel-art underworld where the same game exists with its rules quietly broken, a talking pixelated character named Bob, a roguelike story mode, and a leaderboard of its own.

                                                   Both dimensions GIF

The alternate dimension loves to troll you, like that one friend who changes the rules of Uno mid-game. But it's never unfair: every single board, including the glitched ones, is mathematically solvable before you ever see it. And underneath the jokes, I feel the game also carries an important message: When you face a new problem or get overwhelmed, look at different angles to solve it and never give up.

What it does

Hook: tap a tile, ripple a wave, match the goal

Tap a tile and a wave changes its colour and also its neighbours. Match the goal pattern in as few taps as possible. One mechanic, readable in five seconds, but with real depth in both normal and roguelike mode: Different tiles, waves, patterns, and rules.

                                                   Core Gameplay GIF

Retention Mechanic #1: one grid a day, everybody solves the same one

Every day at 8 AM ET, a fresh level drops as its own Reddit post. Everyone gets the same one. The leaderboard ranks by fewest taps, and the archive in the menu lets you play any day you missed. There are also streaks and sharing features to compete with your friends.

                                                   Daily Levels GIF

The twist: every daily is secretly TWO levels

Tap the pixelated red skull in the UI and the whole interface wipes diagonally into the alternate dimension. The daily level you were playing is swapped for its evil version: same day, matched difficulty tier, but with one rule broken, which makes it more challenging. Casual players never need to know it exists. The ones who find it get a second level, every day.

                                                   Double Daily Levels GIF

Ragebait, the fair kind: the rules change, and the game tells you THAT, not HOW

On the other side, everything you learned in the casual mode could be different. A small UI container next to the grid mentions each broken rule. Players have to unravel what they mean and how they work.

Examples of broken rules: X-WAVE: taps ripple diagonally, not in a cross NO EDGES: the tile wave wraps around the board like a torus ROW-LOCKED / COL-LOCKED: one whole axis blocked REVERSED: taps shift colours backwards MIRRORED: your tap lands on the reflected column LIAR COUNTER: the move counter simply lies to you

Tap the broken rule UI container, and Bob explains it. Eventually. In his own way.

                                                   Glitch Chip GIF

Story mode: a ragebait roguelike run

The heart of the alternate dimension is the roguelike story mode, and it's a mystery as much as a challenge. Bob lives here, but even he doesn't know how this dimension works or why it exists, and he can't investigate while everything is broken. So you repair the grid sector by sector, and every sector you fix hands him one more clue.

The roguelike run depends on one resource: grid power, a battery bar in the bottom left edge of the screen. Every tap drains one segment. Finish a sector, and the power comes back. If you run out of grid power, it is GAME OVER, and you go back to Sector 1. The sectors re-scramble into brand-new boards every run; same hand-tuned difficulty curve, so a run never replays itself.

Each sector/level introduces one new weird rule (mirrored rooms, diagonal waves, backwards colours) and the final sectors stack them together. Charged tiles (gold, with a pixel bolt) feed power BACK into the bar on their first tap. Players have to strategize since managing them could save their run. Undo reverts the last move like in normal mode, but the power bar doesn't regenerate.

                                                   Power bar GIF

Every level is mathematically solvable

Ragebait only stays funny while it's fair, so fairness in Echoic is enforced with math. Every glitched wave shape is still a linear operator, which means the same solver that certifies the casual mode also certifies every alternate dimension level: solvable, with a known true par. An offline audit replays the solver's own solution through the real game physics on thousands of generated boards. The rules may seem broken, but the puzzles never are.

Bob

A quirky pixelated character who peeks over the grid, encourages you, and maybe confuses you along the way. He gives you the tutorial and narrates every level in story mode. Bob is drawn entirely in code; we designed a palette matrix composited per-frame so he can blink and talk.

                                                   Bob speaking GIF

User Contribution: build a level, post a level

The Level Builder lets anyone draw a goal pattern, pick a size, colour count, and difficulty, and publish it as a playable Reddit post. The server re-solves every submitted board and rejects anything unsolvable before it ever goes live.

                                                   Level Builder GIF

Play anywhere

Full mobile and desktop support! Everything from the daily levels to the story mode works on any device. The UI is fully responsive for the game to look its best while you solve puzzles.

How we built it

Reddit Devvit Web, vanilla TypeScript, Hono, Redis, Tailwind, and the Web Audio API for a fully synthesized soundscape.

The key architectural decision: one level engine, shared by everything. The server builds the daily levels; the player's device builds the campaign levels, alternate dimension versions, and story sectors from the same seeded engine, so every player sees the exact same boards and the server never has to store them. The alternate dimension even gets its own leaderboards by reusing the normal ones: two parallel score universes.

Both dimensions are one game wearing two skins. Flipping the portal wipes the screen diagonally like a light passing over it, and swaps the colours and the music: the two looping tracks are the same song at different pitches, and the new one picks up exactly where the old one left off, so crossing over morphs the world instead of reloading it.

Challenges we ran into

Making broken rules stay fair. The ragebait only works if it's never actually unfair, so every glitch rule that stayed was something the solver verified that worked. For instance: diagonal, wrapping and one-axis waves are just different shapes of the same wave, backwards colours are the same wave in reverse, and mirrored taps only swap your input, never the puzzle.

Two universes, one game state. Flipping the portal swaps the board you're solving for its alternate dimension version, mid-solve. Each side remembers your unfinished taps and gives them back when you return, each side keeps its own leaderboard, and the little boot-up peek at the other side had to be stopped from triggering a real swap.

Tuning rage against fairness. Every sector's battery is its board's minimum solution plus a small safety margin that shrinks as you go deeper, so Sector 1 is more forgiving and Sector 10 is not. Getting those margins right took a lot of testing.

Accomplishments that we're proud of

A daily puzzle where every post is secretly two levels. A full roguelike hiding inside a zen puzzle game. Ten story sectors whose boards re-roll every run but never miss their difficulty window. A solver that mathematically guarantees fairness across five different broken rules. And Bob.

What we learned

Trolling only works on a foundation of trust. Players forgive mirrored taps and backwards colours because the game names its glitches and every level is mathematically solvable. Ragebait without fairness is not a good user experience.

We also learned to design for different audiences. Not everyone wants the same game: casual players just want a clean daily puzzle, nothing extra, so I kept the surface exactly that, a normal puzzle game with no strings attached. And for the players who seek more of a challenge, the roguelike ragebait mode is waiting on the other side. One game, two audiences, and neither ever gets in the other's way.

What's next for Echoic

More sectors in story mode, more mechanics, and more dialogue for Bob! I'd also love to add a leaderboard flair for players who clear both sides of a daily, game rules suggested by the community, and features that could make this puzzle game even more interesting.

What I'm most excited for now is the moment the first players spot the skull, tap it, and realise the calm daily puzzle game they've been solving all week has had a whole other life underneath. Really excited about this game, and I'd love to have the chance to develop it further.

                                                   Another Bob GIF

Built With

Share this project:

Updates