Geometry Dash was built by one Swedish developer on an unfashionable C++ mobile framework — and that unfashionable choice is why a 2013 auto-runner still dominates phones, Steam, and school browsers in 2026.
Swedish solo developer Robert Topala built and published Geometry Dash through his company RobTop Games on Cocos2d-x, listed as the game's engine, a C++ open-source 2D framework. He started around April 2013 as a simple cube that could jump and crash, inspired by Super Mario Bros.-style platformers and especially The Impossible Game, after quitting a civil engineering course and grinding through small iOS games like Boomlings. The game launched for iOS and Android on 13 August 2013, then Windows Phone in June 2014 and Steam on 22 December 2014, where it is still sold as a $4.99 Action/Indie rhythm platformer.
That answer confuses new developers: why Cocos2d-x in 2013, why still Cocos2d-x after Update 2.2, and why not Unity or Godot? The short version is control, size, and timing stability.
What Cocos2d-x actually is
Cocos2d-x is a multi-platform C++ framework for 2D games, based on cocos2d-iphone but using C++ instead of Objective-C, running on iOS, Android, macOS, Windows and Linux. The broader Cocos2d family is an open-source 2D engine for iOS, Android, Windows, macOS, Linux and web, with C++ as the core and bindings for Lua, C# and JavaScript, plus sprites, actions, physics, particles, tilemaps and skeletal animation.
In practice that meant:
- Scene and sprite management without a heavyweight editor
- Composable actions: Move, Rotate, Scale, Sequence, Spawn, Ease, Follow
- Integrated Box2D/Chipmunk physics, particle system, and OpenGL ES 2.0 / OpenGL 2.1 rendering
- MIT licensing and tiny runtime: the Steam build asks for only Windows XP, 2.0+ GHz, 512 MB RAM, OpenGL 2.0 and 100 MB storage
The same GitHub page now warns new users not to start new projects on Cocos2d-x and to use Cocos Creator instead. That warning is the point: Geometry Dash is the last great monument to a frozen, dead-stable branch.
Search demand proves the niche is alive. Google still autocompletes “what engine was Geometry Dash made in,” “what engine does Geometry Dash use,” and “what was Geometry Dash made in,” while Bing suggests “what engine is Geometry Dash” and “Geometry Dash game engine” alongside 2.2 and mod queries. Players feel the difference in timing but cannot name the tool — exactly the gap this article fills.
Why C++ on mobile made sense in 2013
In early 2013 Topala was a mobile-first solo dev. He had operated Rune Digital, seen Forlorn and Kingdom Escape nominated for Swedish Game Awards but never published, then founded RobTop Games in May 2012 and shipped small iOS puzzles. He wanted retention through feel, not monetization tricks.
Cocos2d-x gave him three things Unity in 2013 did not do well for this game:
- One C++ codebase for iOS, Android, Windows Phone and PC. No per-platform rewrite, no web-player plugin drama.
- A 100 MB game that runs on a classroom PC. Rhythm repetition needs instant restart and low input lag, not PBR lighting. OpenGL 2.0 minimalism keeps the tick predictable.
- Full ownership with no revenue share or forced upgrade. The MIT-licensed C++ core let one person patch, profile, and freeze behavior for a decade.
The Steam feature list still reads like a Cocos design doc: rhythm-based action, level editor, thousands of user levels, icons and colors, rockets and gravity flips, practice mode, achievements, near-impossible challenge. None of that needs a 3D scene graph.
What the game became: 26 levels, 9 vehicles, 150 million player levels
Classic Geometry Dash is auto-scroll with one button: you survive to the end, any collision restarts the level, and practice mode lets you drop checkpoints. Platformer mode, added later, removes auto-scroll and lets you move left/right with preset checkpoints.
Today the game includes 26 developer-made levels: 22 auto-scrolling and 4 platformer levels in The Tower. Vehicles change movement: Ship and Jetpack hover, Swing moves in arcs, plus Cube, Ball, UFO, Robot, Spider and Dual modes. Update 1.9 in November 2014 introduced Wave plus Theory of Everything 2 and Newgrounds music support; 2.0 added Robot and teleportation; 2.1 added Spider and Fingerdash; 2.2 arrived 19 December 2023 with Swing, Jetpack, the classic level Dash and full platformer mode.
The real scale is user-generated. Players can build with the in-game editor, pull music from Newgrounds and NoCopyrightSounds, and publish online. Gauntlets, Map Packs, Daily Levels, Weekly Demons and Event Levels curate that flood. Through that editor players have created over 150 million online levels, including recreations of Mario Kart, Five Nights at Freddy’s and Celeste. The community maintains a 150-entry Demonlist of hardest demons with moderator-verified completions to block cheating.
Commercially it worked: most popular paid iPhone app in Canada in June 2014, 20 million combined downloads then, nearly 80 million by February 2015, and hundreds of millions of mobile downloads for Geometry Dash plus Lite combined.
My take: a dead engine was the moat, not the debt
Most retrospectives say RobTop “got stuck” on old tech. I think the opposite: staying frozen was the product decision that made a decade of fair competition possible. This is analysis and opinion, not a quote from RobTop — but it explains facts other summaries ignore.
1. Physics stability is a social contract.
Demon verification only works if 2016 and 2024 builds agree on pixel 47 of a ship hitbox. If you migrate Unity 5 to Unity 2021 mid-live-ops, float rounding, timestep defaults and collider skins drift. For a normal adventure game nobody notices. For Geometry Dash that drift looks like cheating and invalidates the Demonlist.
By never migrating, RobTop froze the metronome. The 150-million-level library is byte-stable because the engine is byte-frozen. Technical debt became fairness infrastructure. My contrarian rule: for UGC timing games, pick an engine you are willing to stop updating.
2. No editor forced him to ship the editor.
Cocos2d-x has no Unity-style visual editor. That lack is usually listed as a con. For Geometry Dash it forced the defining feature: a first-class in-game level editor good enough for kids on phones.
Most engines sell tools to developers. Geometry Dash sells tools to players. The editor is not a dev extra; it is the retention loop. Daily and Weekly Demons give infinite content without RobTop modeling a single spike. If he had started in Unity, the temptation would have been to polish 10 beautiful levels and skip UGC. C++ austerity made UGC mandatory — and UGC is why the game survived a six-year update gap from 2.1 in January 2017 to 2.2 in December 2023.
3. A rhythm game needs a metronome, not a movie set.
Modern engines optimize for looks: dynamic GI, shader graphs, asset streaming. Those systems add frame-time variance. Variance kills a one-button rhythm game.
Cocos2d-x plus hand-rolled gameplay code optimizes for the opposite: fixed logic tick, lean OpenGL ES 2 draw calls, tiny memory footprint so a 2013 Android can hold 60 fps. That is why Wave feels “tight” in a way browser remakes struggle to copy: hold climbs diagonally, release dives diagonally, no float, no easing forgiveness. My mental model is engine-as-metronome versus engine-as-movie-set. Choose the metronome when music is the level design, as it is here where songs synchronize with layouts.
4. Scarcity became content.
The six-year wait for 2.2 is usually mocked. I see it as accidental genius enabled by solo C++ ownership: no publisher could force a rewrite, no engine subscription could kill margins, so RobTop could go dark while demons got harder. The community filled the void with Extreme Demons harder than official content. When 2.2 finally added platformer mode and The Tower, it did not need to save the game — it just legitimized what the editor community already proved.
If you are a solo dev, that is the uncomfortable lesson: a boring, owned, frozen stack lets you disappear for years and return to a larger game. A trendy managed stack keeps you on someone else’s changelog treadmill.
What to steal if you are building today
Do not clone Cocos2d-x in 2026 — even its maintainers point new projects to Cocos Creator. Steal the constraints:
- If timing is your core, own the tick. Whether you use Godot, Bevy, MonoGame or custom C++, lock fixed timestep early and promise players you will not silently change it. Version your physics like an API.
- Ship practice tools on day one. Checkpoints, instant restart, progress percent, and copyable object IDs matter more than three extra vehicles. Geometry Dash’s practice mode is accessibility, not easy mode.
- Make UGC deterministic. Seed RNG, quantize positions, avoid floating-point nondeterminism across iOS/Android/PC if you want cross-platform verification.
- Stay small on purpose. 100 MB and OpenGL 2.0 still open school Chromebooks and low-end Androids where your next 100 million players live. Every 500 MB of shader variants is a classroom you cannot enter.
- Pick dead-stable over feature-rich when you are solo. A frozen MIT C++ framework you fully understand beats a rapidly evolving editor you must relearn each year — if you can afford to build your own level tools.
Feel the wave without installing anything
Reading about Wave physics does not build muscle memory. If you want to test whether you like this genre before buying the Steam build, use browser games as low-friction labs.
For pure Wave training, try Space Waves on EasyHub: hold to go up, release to go down through 33 handcrafted levels plus Endless and Race modes. Its guide explicitly calls it wave-only training inspired by Geometry Dash’s zigzag Wave arrow, with the same fixed-diagonal climb/dive and portals that change speed or gravity. Practice feathering with micro-taps, recentering after each dodge, and looking two obstacles ahead — the exact skills Demon guides teach.
For the other half of Geometry Dash skill — reading ahead under speed pressure — try Tunnel Rush on EasyHub. It is a retro 3D tunnel runner about reaction speed and clean left/right adjustments, not rhythm sync, but the habits transfer: scan the upcoming wall early, stay centered, and avoid panicked overcorrection as speed rises. If you crash bouncing between floor and ceiling in Space Waves, a few calm Tunnel Rush runs retrain that look-ahead reflex.
Neither browser tribute replaces the real timing, editor, and Demon progression of Geometry Dash. Think of them as warm-up rooms: Space Waves for feather control, Tunnel Rush for focus, then the real game for music-synced precision.
Bottom line
Geometry Dash endures not despite Cocos2d-x but because of what Cocos2d-x forced: tiny builds, owned C++ timing, no forced upgrades, and a custom editor that turned players into co-developers. In an era of ever-larger engines, the most-played rhythm platformer on Earth still runs on a sprite framework from 2010 — and its hardest levels are still verified fair because that framework never moved.
For indie developers the provocation is simple: do not ask which engine has the most features. Ask which engine you can freeze for ten years without asking permission.
Top comments (0)