Built with AI · Part 1

Cash Grab NG: Building a Game I Couldn't Have Built Alone

March 14, 20255 min read
Built with AIAI-assisted deviOSSwiftCursorGame dev
Cash Grab NG: Building a Game I Couldn't Have Built Alone

The backstory

Cash Grab isn't a new idea. The original concept goes back years. Craig Salter and I spent months building the first version using Cocos2d and C#, targeting the original iPhone. We had the gameplay nailed down: break into a vault, grab cash, dodge the cops. Simple, fast, addictive.

But that version never shipped properly. The graphics were all built for those early iPhone resolutions and looked terrible on anything modern. Worse, Cocos2d is largely a dead platform now. The game worked, but it was stuck in a codebase that had no future.

I always wanted to bring it back. When I started using Cursor for AI-assisted development, I realized I finally could. Not a port. A full rebuild in Swift with SpriteKit, keeping everything that made the original fun and adding the things we could never pull off the first time around.

What I built

Cash Grab NG is a fast-paced iOS arcade game. You sprint through a high-security vault, snatching bills and dodging laser grids and automated guards. There are global leaderboards through Game Center, power-ups, and the difficulty ramps as you progress. It's live on the App Store right now.

The whole thing was built in Swift with SpriteKit, and I leaned on Cursor for almost all of the game-specific code. Collision detection, particle effects, score multipliers, the guard AI pathfinding. Things I could reason about at a high level but couldn't have implemented from scratch.

Salvaging the old, building the new

One of the most satisfying parts of this project was bringing the original assets forward. The old graphics were all too low-res to use directly, but I didn't want to lose them. I used AI to either upscale the low-resolution images or get them redrawn in a similar style. The result looks modern but still feels like the same game Craig and I designed.

The sound effects all carried over too. The original audio was solid, it just needed small adjustments to work with the modern development environment. Having those familiar sounds in the new build made it feel like a real continuation, not a different game wearing the same name.

Where AI accelerated things

The biggest win was in the game loop and physics. I described the behavior I wanted ("the guards should patrol set routes but break off to chase the player when they get within a certain radius, then return to patrol if they lose line of sight") and Cursor generated working pathfinding code that I could test and iterate on. Would have taken me weeks to learn SpriteKit's contact detection system from scratch. Instead, I had a working prototype in a weekend.

Game Center support was entirely new. The original version had no online features at all. Cursor helped me wire up leaderboards and social components that I never could have included before. Being able to compete against other players and see global rankings added a whole layer to the game that the Cocos2d version simply couldn't support.

Power-ups were another area where AI shone. I'd describe what I wanted ("a shockwave that pushes all guards back with a radial explosion effect") and Cursor would generate the animations and particle systems using Swift's native capabilities. Several of the power-ups in the final game exist purely because I could describe them and get a working implementation back in minutes instead of days.

Where AI hit walls

Cursor was great at generating code that compiled and ran. It was less great at knowing whether the game was fun.

I'd get back a technically correct implementation of enemy movement, and the enemies would feel robotic and predictable. Or the collision detection would work perfectly but the hitboxes would feel unfair to the player. These are the kinds of things you only catch by playing the game over and over, watching someone else play it, noticing the moments where fun dies.

AI doesn't playtest. It doesn't feel the difference between a satisfying near-miss and a frustrating cheap death. That layer, the "is this actually fun?" layer, was entirely on me. And honestly, that's the part that mattered most.

The experience gap

I've been building products for 25 years. Not games, but digital products where you're always balancing what's technically possible against what actually works for real people. That judgment doesn't come from documentation or tutorials. It comes from shipping things and watching them succeed or fail.

With Cash Grab, my product instincts transferred directly. I knew when a feature was overengineered. I knew when the onboarding was too slow. I knew when a visual effect was cool but actually distracted from the core loop. AI gave me the implementation power. The editorial judgment was mine.

What's next

I'd like to try building another variant of the game, possibly a version with different levels and environments beyond the vault. The core mechanic is strong enough to support it, and now that the Swift codebase is solid, adding new content is much more realistic than it ever was with the old Cocos2d setup.

The mental model I landed on is this: AI is an incredible implementation partner for domains you understand conceptually but haven't built in before. You still need to know what good looks like, even if you can't write the code yourself. AI-assisted development doesn't replace your taste. It removes the bottleneck between your taste and the finished product.

That's the real unlock.

Colin Smillie

Colin Smillie

Most recently VP Technology at YMCA Canada. Building and shipping real products with AI-assisted development. More about Colin's advisory and executive work at colinsmillie.com.