Inspiration

Long before I had a licence, I had an RC car. You drove it across the carpet, out onto the driveway, around somebody's kitchen. It was the first car that was genuinely yours, and what made it fun was that it was in the room with you. You could crouch down and look at it.

Car games have gone somewhere remarkable since then. The garages are deep, the paint is convincing, the driving models are serious. All of it lives behind the glass.

AR is what closes that loop. If you can build a car on your phone, there is no reason it has to stay in there. Put it on the desk, size it to the space, and drive it. That is the RC car again, except this time you built it yourself.

What it does

The garage. Twenty-three cars, each with its own weight, grip and gearing. Nine categories of parts: paint, finish, wheels, tyres, stripes, spoilers, headlights, neon and stickers. Every part fits every car, with no "this rim is only for that model" exceptions.

Free Ride. An open city with no objectives and no timer. Four control schemes, automatic or manual gearbox, three camera distances, and you can drag anywhere on screen to swing the camera around the car.

AR Mode. Point the phone at any surface it can find, tap to place your build, pinch to size it and twist to aim it, then drive it with the pedals. A desk, the floor, the pavement outside. The car you spent twenty minutes building becomes the RC car you never owned.

Monetisation. Pro is an auto-renewable subscription handled by RevenueCat: it removes ads and unlocks every customization part permanently. Without it, a rewarded ad unlocks one car or one part for twenty-four hours, so nothing is locked away for good.

How we built it

Unity 6 with the built-in render pipeline and IL2CPP, shipping to iOS and Android from a single project. AR Foundation sits on top of ARKit and ARCore. RevenueCat handles subscriptions, AdMob handles rewarded and interstitial ads, Firebase covers analytics and Crashlytics.

The core of it is the paint system. Every mesh on a car declares whether it is paint, trim or glass, and a per-car mask decides which pixels take the player's colour. That is what lets one body become any colour while the window rubber, the badges and the glass stay exactly as they were authored. Wheels sit on a separate rig, which is why any rim and tyre combination drops onto any car.

RevenueCat's paywall is served remotely, so I built a local fallback paywall that renders with the live price, period and renewal terms. If the remote paywall does not arrive, the subscription still sells.

Challenges we ran into

Google Play's base module limit. The first bundle was rejected at upload, before review: 1157 MB of compressed download against a 500 MB ceiling on the base module. The answer was Play Asset Delivery through Unity's Split Application Binary, which moves the game data into an install-time asset pack. The base module came down to 122 MB and Play accepted it. Because the pack is install-time, the player still sees a single download.

Finding the weight. Before reaching for anything that would cost quality, I went looking for what was actually large. A single garage ceiling panel was carrying three uncompressed 4096 textures into the build, 193 MB for a prop that renders almost black, because the glTF importer brings embedded textures in raw. Compressing them at the same resolution took it to roughly 30 MB. Every change was checked with before-and-after renders, and the cleanup came back pixel-identical.

Two stores, two rulebooks. A build can be technically perfect and still be turned away over a privacy manifest, an encryption declaration or a screenshot that claims something the app does not do. Getting both submissions clean meant treating store requirements as part of the engineering work rather than paperwork at the end.

Accomplishments that we're proud of

AR you drive, not AR you look at. Placing a model in a room is a solved demo. Driving your own build across a desk, with the physics scaled to match, is the thing people want to hand the phone to someone for.

Every part fits every car. No exceptions, no per-model whitelists.

The size problem was solved without spending quality. Not one texture resolution reduced, not one polygon removed. The bundle got under the limit by fixing how it was packaged and by removing data that was genuinely dead.

What we learned

Measure, then cut. Rendering the same frame before and after a change, and comparing the two numerically, turns every optimisation into a yes or no rather than a guess. Two candidate savings were dropped this way, because they touched the paint system and the gain was not worth the risk.

Platform limits are load-bearing. The 500 MB base module rule shaped the entire packaging approach. Constraints like that are better discovered early, and they are worth reading before the first build rather than after.

On mobile, size hides in import settings. The heaviest single item in this project was never a car. It was one background prop with the wrong texture settings.

What's next for Pocket Garage: Drive Anywhere

A team behind the art. Bringing in professional support for 3D art and for UI/UX and design, so the asset bar rises across the board. That means stronger new cars, and a pass over the existing ones and their scenes to bring them up to the same standard.

More to build with. More cars and a wider catalogue of customization parts, so two players can own the same model and still end up with cars that look nothing alike.

More places to drive. Several maps rather than one city, and a set of courses built for driving rather than sightseeing.

Online. Courses and racing against other players, and the part I care about most: shared AR. Two people in the same room, two phones, two cars out of two pockets, on the same table. That is the RC car idea with a friend in it.

Sponsored cars. Premium fixed-design racing cars built for partner brands, produced to their identity and sold as their own machine in the garage. Conversations and the production pipeline for this are in place.

Reach. A proper marketing and user acquisition programme, with the groundwork already laid.

Built With

Share this project:

Updates

Submission history