Inspiration

Worm Hole began with a board game I used to play with my dad when I was young. I remember studying each move together, debating what the clues meant, and the excitement when the answer finally clicked. I wanted to bring that feeling into a game I could play anywhere—and share with friends.

What it does

Worm Hole is a cosmic deduction game. Players launch probes into a hidden field, read what happens to them, and use those clues to find the wormholes. They can challenge Orbit, the computer opponent, or play a duel with a friend through the Worm Hole Messages extension.

A Messages duel starts right in a one-to-one conversation. You hide four wormholes and send an invitation. Your friend searches your field, then hides a field for you to solve. The duel unfolds at each player’s pace, and once both turns are complete, you can compare scores, reveal the fields, and start a rematch.

How I built it

I built Worm Hole as a native iOS app using Swift. A separate core handles the rules and probe simulation, SwiftUI handles the screens and controls, and Metal draws the board and its effects. I added seeded puzzles, onboarding, and Flight School missions to help players learn through play.

For friend duels, I built an iMessage app extension that brings the board into Messages. A match service keeps track of each turn and protects the hidden fields until both players finish.

Challenges

The biggest gameplay challenge was making every probe result consistent while leaving room for satisfying deductions. Building duels added another layer: two people might play hours apart, reopen an old message, or lose their connection midway through a move. The match still has to resume correctly and keep each player’s wormholes secret.

What I learned

Worm Hole taught me that players need to trust both the clues and the game’s handling of their turns. It also brought me back to what I loved about playing with my dad: solving the puzzle was fun, but sharing the moment of discovery made it memorable. The Messages extension lets me pass that experience on to friends.

Built With

Share this project:

Updates

Submission history