-
-
Main menu and map select — four Turkmen environments: Garagum, Ashgabat, Derweze and Ýangykala.
-
Level select for Garagum Desert. Fifteen laps, unlocking progressively as you clear each one.
-
The garage — spend collected coins upgrading engine, suspension, tyres and fuel across every vehicle.
-
Drive, explore and conquer challenging tracks across desert, mountains and beyond!
-
Settings: full English, Russian and Turkmen localization, plus RevenueCat-backed purchase restore
Inspiration
Every hill climb racer I have played is set in a place that could be anywhere — a generic desert, a generic city. I am from Turkmenistan, and I kept thinking about how strange that is, because the landscapes I grew up around are some of the most distinctive on the planet.
The Garagum covers roughly 70% of my country. The Derweze gas crater has been burning continuously since 1971 — people call it the Door to Hell. Ýangygala is a canyon of red and white rock that looks like it belongs on another planet. And in all of them you find the ak öý, the white felt yurt that has sheltered Turkmen families for centuries.
None of this exists in mobile games. So I built the game I wanted to play: a physics racer where the world is the point, not the wallpaper.
What it does
Garagum Racing is a 2D hill climb racer built on real rigid-body physics. You drive across four Turkmen environments — the Garagum desert, Ashgabat, Derweze and Ýangygala — managing fuel, balance and momentum across lap-based levels that unlock progressively.
You collect coins on the track, spend them in the garage upgrading engine, suspension, tyres and fuel tank, and unlock new vehicles. The game ships in three languages: English, Russian and Turkmen. For many players this is one of very few games they can play in their own language.
How I built it
- Flutter + Flame + Forge2D — the entire game, including the physics simulation. Terrain is generated as a Forge2D chain body from a heightmap, so the suspension, weight transfer and wheel contact all fall out of the physics rather than being faked.
- Parallax world rendering — each map has its own set of background layers, terrain palette and decorative props (yurts, camels, saxaul trees, oil derricks, canyon rock), so the four maps feel like four different places rather than one map recoloured.
- A shared vehicle rig — every vehicle sprite is authored against the same wheel-centre specification, which means adding a new car is a matter of dropping in art. No code changes.
- RevenueCat for all monetization: six one-time products (three coin packs, a starter pack, remove ads, unlock all maps), wired to entitlements through a single default Offering, so I can change pricing and packaging from the dashboard without shipping a build.
- AdMob for rewarded and interstitial ads, with remove_ads gated on the RevenueCat entitlement.
Challenges I ran into
Making the engine sound real. My first attempt synthesised the engine as a sum of harmonics. It sounded like a synthesiser, not a motor. I rebuilt it as a physically modelled combustion pulse train — discrete firing events tied to RPM — and it finally sounded like something burning fuel.
Physics that is fun rather than accurate. Correct suspension is not the same as enjoyable suspension. Getting the car to feel heavy but responsive took far more iteration on damping and friction constants than any other part of the build.
Entitlements without a backend. Coin balances, purchased packs and ad removal all had to stay consistent across reinstalls with no server of my own. Modelling everything through RevenueCat entitlements and treating the SDK as the source of truth was what made that work.
Art at scale, solo. Four full environments with parallax layers, multiple vehicles, props and UI — produced by one developer. The rig specification above is what made it survivable.
What I learned
That monetization is a design problem, not a plumbing problem. Wiring RevenueCat took an afternoon; deciding what deserves to be paid for, and making sure a player who never spends anything still has a complete game, took weeks. I also learned how much cultural specificity does for a game — the yurt on the horizon is the thing people mention first.
What's next
More vehicles using the existing rig, a ghost-racing mode against your own best lap, and an iOS release. Longer term I want the same treatment for other under-represented landscapes — the approach generalises well beyond Turkmenistan.

Log in or sign up for Devpost to join the conversation.