Inspiration

I've been building for iOS since 2008. Most of that work has been B2B apps: software with practical problems to solve, workflows to improve, and clear requirements to meet. But I have always wanted to make a game.

Over the years, I started plenty of prototypes. I would find a mechanic I liked, get something moving on screen, and then leave it unfinished. Shipaton gave me a reason to stop doing that. I decided to make the final push and turn one of those ideas into a complete game that other people could actually download and play.

Nova Swing began with a small question: how much fun could I get out of a single tap? A ship circles a planet. You choose the moment to let go. For a second, everything depends on whether you judged that angle correctly. Then you catch the next orbit, and immediately want to do it again.

That tiny moment became the game.

What it does

Nova Swing is a one-tap space arcade game for iPhone and iPad. Tap to launch tangentially from an orbit, catch the next planet, and keep the run alive. Perfect captures build Flow bonuses. Charge the Warp Drive, then hold to surge across multiple planets.

As you travel farther, the same simple input meets new situations: slingshot planets that fling you forward, wormholes that preserve your momentum, moving binary systems, and fragile crystalline worlds with a rotating safe arc. Safer and riskier routes make each run a series of small decisions.

There is also something to come back for: saved ghost runs to race, objectives, milestones, ship mastery, four ships, and four visual themes. The goal is always understandable: make the next jump, improve your timing, and see how far you can go.

How we built it

I built Nova Swing natively in Swift. SpriteKit handles the game world, particles, and animation; SwiftUI handles the surrounding interface, including the Hangar, Supply Depot, settings, and soundtrack player. Custom trajectory and capture logic gives the flight its particular feel. AVAudioEngine supports the sound design, while haptics make launches, catches, and collisions feel distinct on supported devices.

I created the songs myself, including “Far-Side Signal,” the track used in the demo. Music was part of building the game's identity, alongside the luminous planets, trails, and sense of travelling through space.

RevenueCat powers optional consumable credit packs. Credits earned in play and credits bought in the store have the same purchasing power. Players can permanently unlock ships and themes with either; mastery itself is earned through playing. Game Center provides scores and achievements, and private CloudKit saves support progression syncing.

Challenges we ran into

The hardest part was making a simple mechanic stay satisfying. A tiny adjustment to launch timing, capture tolerance, camera movement, or feedback could change whether a jump felt fair, exciting, or frustrating.

I spent a lot of time fine-tuning the gameplay and giving builds to friends to test. Watching someone else play was far more useful than assuming I knew how a first-time player would react. Those sessions kept pulling me back to the details: readable targets, clear feedback, the pace of difficulty, and how quickly someone could try again.

I also had to balance visual variety with clarity. A wormhole, a fragile planet, and a slingshot should each feel special, but the player still needs to understand what matters in the next split second. Swift Testing helped me check the underlying flight, progression, and economy rules while I kept iterating on the experience.

Accomplishments that we're proud of

I'm proud that Nova Swing made it beyond my folder of unfinished prototypes. It brings together a mechanic I kept refining, music I made myself, and the feedback of people who helped me make it better.

What we learned

After years of building apps, making a game taught me to treat feel as a requirement. The mechanic working correctly was only the beginning; it had to make someone want another run.

What's next for Nova Swing

The first public version launched on September 9, 2026. My next step is to learn from a wider audience: where new players struggle, which moments make them restart, and what earns a second session. I want to keep making the next orbit feel worth chasing.

Built With

  • avaudioengine
  • cloudkit
  • gamekit-/-game-center
  • revenuecat
  • sprite-kit
  • storekit
  • swift
  • swift-testing
  • swiftui
Share this project:

Updates

Submission history