I Found a Game on GitHub

Day 1 of building an iOS game with Claude Code. A casual car conversation, a C++ project that wouldn't compile, and the moment I realized Claude could actually read this code.

Eyal Harush5 min read

It started in a car.

Not a pitch meeting. Not a design sprint. Not a long-planned side project. Just me and Or, driving somewhere, talking about how there aren't good arcade games on iOS anymore like there used to be. One of us said "platformer." Something clicked.

I'd been wanting to build something for a while. Not a game. Game dev had never even crossed my mind. But the itch was there, and the threshold was low, and "what the hell, let me just try" felt about right. I'm not sure I had a plan beyond "start at zero and see where it goes."

The part I should probably explain

Before I go further: the game I'm building now is called Geo Climber. It's a family-friendly vertical climber where you play a seismologist named Inge climbing from the center of the Earth to the summit of Everest through thirteen real geological layers.

That is not what I was building on day one.

On day one, we were brainstorming viral hooks. What if we capture the worldwide talking point? What if it's a parody of current events? What if the main character is a recognizable controversial figure escaping an imminent threat? It got silly. It got funny. It got a name. I'll spare you the specifics. The project has since pivoted 180 degrees toward something educational and family-friendly, and the satirical origin is, frankly, not a good fit for the current identity. But I'm mentioning it because the real story of building Geo Climber includes a bunch of ideas I killed along the way, and pretending everything started with a pure vision for a geology game would be a lie.

The search

I knew I wanted a vertical climber, the old arcade kind where you jump up through platforms, chain combos, and try not to fall off the bottom of the screen as the camera scrolls up. I also knew I didn't want to start from scratch. Physics for this genre are notoriously fiddly, and I wanted to preserve the feel of a game that had already been tuned by someone who cared about it.

So I did the obvious thing. I searched GitHub for open-source vertical climber projects.

There were more than ten results. Most were low-star, some were broken, some were half-finished. Java, JavaScript, C#, a couple in Python. I clicked through each one. Most felt wrong. Then I found a C++ project that felt exactly right. The physics were there. The mechanics were there. The code was a little crusty (hadn't been touched in a few years) but that didn't matter. The foundation was solid.

I didn't know C++ at all. I've been doing web dev at a fintech for years. Node, TypeScript, React, Fastify, Prisma, Postgres. That's my world. C++ was something I'd glanced at in college and never looked at again.

Didn't matter. I had Claude.

Getting it to build

First problem: it didn't build.

The CMakeLists.txt had literal placeholder text in it, a line that referenced {YOUR SFML DIRECTORY} as if the reader was supposed to edit the file by hand and substitute in the actual path. That's the original author's way of saying "you figure out where SFML is installed and put the path here." Which is fine if you know what SFML is and where it lives on your system. I didn't know either thing.

I pasted the whole repo into Claude Code and asked it to get it running on my Mac.

Eleven minutes later, the first commit landed:

Refactor asset loading and add run script for easier build process

Claude had rewritten the CMakeLists.txt to detect Homebrew automatically, pull in the macOS SDK path via xcrun --show-sdk-path, and link against SFML 2.5 properly. It also wrote a new Assets.cpp file, a cross-platform asset path resolver with candidate fallbacks, because the original game had hardcoded relative paths that broke depending on which directory you ran the binary from. And a run.sh wrapper that wires up brew --prefix, CMake, and the build output in one command.

I didn't tell Claude to do the asset resolver. I didn't know I needed one. Claude saw the hardcoded paths, understood they'd break, and fixed them anyway.

That was the first "wait, it actually understands this codebase" moment.

Then I ran ./run.sh.

It built. Something opened. A tiny SDL window. No sprites. The original author's art was gone and the game was rendering bright-colored rectangles where the platforms should have been. But the physics were there. The rectangles moved. The character jumped. The camera tracked. The vibe was right.

The second commit

Thirty-nine minutes later, the second commit landed:

Add generated themed asset pack

Claude had written a Python script (tools/generate_assets.py, 683 lines) that programmatically generates placeholder art assets. Platforms, backgrounds, UI elements, sound effects, fonts. Not pretty, but enough to play the game without those ugly colored rectangles. I hadn't asked for this either. I'd said "the game runs but the sprites are missing" and Claude offered to just... write a generator.

I ran the script. I ran the game. It had sprites now. Still janky, still crude, still obviously a programmer's placeholder. But it was a game. On my Mac. That I had not written.

That was the moment.

Not the tool I was used to

I should be clear: I'm not new to agentic coding. I've been using Anthropic's models through OpenRouter and Cline for a while. I've used Antigravity, Copilot, Codex. I know what it feels like to pair with an AI on real work, and I know that the experience is uneven. Sometimes it flies, sometimes it fights you.

Claude Code specifically was new to me. And what landed on day one was that Claude Code wasn't going to fight me. It had read a codebase I didn't understand, in a language I didn't speak, written by someone else, with a broken build, and made it run. Made it run and anticipated problems I hadn't even noticed yet.

If Claude could do this for a C++ project I'd never seen before, there was no reason it couldn't do it for the iPhone port I was about to start.

Spoiler: the iPhone port started the next evening.

This is post 1 of 18 in a series about building Geo Climber with Claude Code. Zero iOS experience, zero Swift, zero game dev, zero Metal. One open-source C++ project I couldn't compile, one casual car conversation, and one AI pair programmer. Join the Discord and download Geo Climber on the App Store.

origin-storyclaude-codegame-devcmakesdlfake-it-till-you-make-it
I Found a Game on GitHub — Building Geo Climber