We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

Update (September 26)

CHESS/RUPT was featured by Apple's App Store Editors as a "New Game We Love for iPhone" and crossed 2,000 installs. Given the app's early acclaim, we are doubling down and building version 2.0 of the app, which will expand the puzzle mechanics even further with a handcrafted campaign ("gravity chess").

Inspiration

Chess creates depth from a small rule set, but traditional matches can demand memorized openings and long sessions. CHESS/RUPT asks a different question: what if familiar chess movement powered a fast arcade survival game where the board itself fights back?

What it does

CHESS/RUPT is a native iPhone and iPad game built around short, replayable tactical runs. It was released on August 20, 2026

  • Daily Challenge gives every player the same deterministic scenario each day.
  • Crown Trials chains varied, escalating challenges into a survival streak.
  • Puzzle Mode offers a 999-level puzzle campaign plus a daily puzzle.
  • Free Play lets players combine modes, board layouts, timing rules, portals, power-ups, and piece effects.

The rules stay readable through chess movement, but each run can add collapsing floors, shrinking boards, portals, chain reactions, morphing pieces, rival territory, or survival goals.

How we built it

CHESS/RUPT is built natively with Swift, SwiftUI, SpriteKit, and GameKit. Deterministic seeds make daily challenges consistent across devices. A lightweight simulation harness evaluates generated challenges before release so difficulty can be tuned without requiring a server.

The interface uses a high-contrast pixel-art system: sharp edges, off-white and yellow UI panels, a black board, and motion cues that make hazards and enemy control legible on both iPhone and iPad.

Monetization

The game is free to play and updates daily with a new "daily challenge" and "daily puzzle" every 24 hours. The daily challenge combines a game type (e.g., snake, territories/land-grab, CTF) with board modifiers (power-ups, falling tiles) to create a scenario with a <20% completion rate in our simulations. The daily puzzle is a procedurally generated "morph" puzzle, which asks the player to capture all the pieces on the board while accounting for constant piece transformation.

A single non-consumable Unlimited Plays purchase, fulfilled through RevenueCat. This allows players to play endless challenges (via our "Crown Trials" mode, which has the player completing increasingly difficult challenges), puzzles (999 in total), and arcade modes without the constraints of the prescribed daily challenge and puzzle.

Challenges we ran into

The hardest problem was keeping dozens of interacting rules fair. A challenge that looks reasonable on a full board can become impossible on a smaller layout. Portals can create loops. A valid goal can still allow only one rigid solution. We addressed that by centralizing mode rules, validating spawns and portal paths, and using deterministic simulations to reject impossible or overly narrow challenge combinations.

What we learned

Our biggest lesson was that shipping required subtraction, not just more code. The prototype included online multiplayer, shareable replays, advertising, themed chess pieces, and several additional modes. One turned chess pieces into a soccer team. Another played like miniature golf, with a ball ricocheting off walls and traveling through portals. We also built modes about growing a zombie chess-horde ("Infection") and added golf-puzzles.

Every new feature had to behave correctly with every board shape, computer opponent, visual effect, tutorial, and special rule. The soccer mode alone needed sensible goal placement, ball collisions, bounces, team behavior, and fair starting positions on every possible board.

However, several of these modes simply were not fun enough. Soccer was too unpredictable (where does a ball go if one chess piece collides with it and it bounces into a wall?), golf is too simple as a turned base game (you lose the highs of a hole in one), and infection just made the core gameplay loop easier (instead of 1 player vs. the board, it was 1+infected pieces vs. the board).

We learned the same lesson from cosmetic pieces. Adding one art set sounded simple, but it had to look consistent during gameplay, on menus, in tutorials, and on scoreboards. Maintaining several separate presentations caused visual bugs to return after they had already been fixed. Removing the extra sets let us build one dependable presentation for the pieces that remained.

The second major lesson came from the Daily Challenge. Every player receives the same newly generated game each day, so the game has to create something that is possible, challenging, and fair without a designer checking it first.

Small combinations produced surprisingly large balance problems. One challenge gave the player a powerful rook against much slower kings and was almost effortless. Another combined a smaller board, disappearing tiles, and several opponents; it was technically possible, but almost no reasonable move survived the opening. Some challenges could be beaten only by finding one exact first move, which made them feel more like guessing than strategy.

To catch those problems, we built lightweight automated players that try each generated challenge in several different ways. Before a challenge is accepted, the system checks that the player can move safely, that at least one solution is found, that the goal is neither trivial nor nearly impossible, and that success does not depend on one rigid sequence.

During a final 90-day test, the generator replaced 78 challenges after finding a better board or starting arrangement. The accepted set landed within our target of roughly 10–20% successful runs.

What's next

Given the high month one install base, we are investing in a new game mode that will combine classic platforming mechanics with Chess. This new mode will feature hand crafted levels. Since launch, we have updated our onboarding flows, added googley eyes (the most important feature), and continued to address player feedback.

Built With

Share this project:

Updates

posted an update —

CHESS/RUPT crossed 1,000 installs this week!!!

This is my first app on the iOS App Store, and the response so far has been incredibly encouraging. More importantly, it feels like we’ve validated that there’s something here worth continuing to build.

So we're investing in version 2.0, which I hope to release by the end of the month. As part of that push, we will:

  1. Investing more in distribution. Until now, marketing has mostly been organic social and gameplay clips—the classic indie-dev approach. Starting next week, we’re spinning up a dedicated TikTok channel and testing a much wider range of creative, including experimental slideshows, to learn which hooks and audiences resonate most.

  2. Expanding the core game. We’re adding a new puzzle type and a new arcade mode to give players more ways to play and add more value to the overall package.

  3. Introducing custom piece sets. Our first custom set is coming to the game, with more opportunities for visual customization after that.

  4. Adding googly eyes to every chess piece. Nuff said.

  5. Building an in-app announcement system. Today, most of CHESS/RUPT is entirely local. We’re adding a lightweight feed so we can tell players about new modes, content, events, and updates directly inside the game.

  6. Improving free-to-paid conversion. We’ll be running a series of experiments around the upgrade experience, including more personalized paywalls and better ways to communicate the value of the full game.

  7. Expanding the brand. More to come here :)

Log in or sign up for Devpost to join the conversation.

Submission history