Inspiration
Top Down RACE: CraftRace started with a simple idea: make a top-down racing game where driving actually matters.
I wanted a game that was immediately accessible on a phone, but where getting faster was not just a matter of buying a better car. Racing lines, braking points, throttle control, grip and consistency had to make a real difference.
What began as a small personal project gradually became my first serious mobile game. Every time I thought it was nearly finished, testing it showed me another area that could be improved: the physics, controls, AI, progression, tracks, performance, online competition and eventually the entire Android release pipeline.
Today, CraftRace is being tested by real players through a closed Google Play test, and their feedback has become an important part of its development.
What it does
Top Down RACE: CraftRace is a mobile-first top-down racing game focused on driving skill, progression and competition.
Players race across different circuits with cars that have distinct handling characteristics. They can improve their vehicles, collect parts and currency, develop their garage and try to improve their lap times.
But CraftRace has grown beyond racing against AI.
Race Control introduces an online competitive layer powered by Supabase. Players can publish their best times, compare themselves through circuit leaderboards and compete across global and geographical rankings.
The ghost system takes this further. Racing is not only about seeing somebody else's number on a leaderboard: players can challenge recorded performances and compare their own driving directly against another racing line.
The game is currently running as a closed Android test through Google Play with a growing group of real testers.
Monetization is designed around player choice rather than interrupting races. The game combines optional in-game purchases with rewarded experiences connected to useful actions, such as race rewards and online features.
RevenueCat is part of the monetization architecture being developed for the Android release, together with Google Play Billing and AdMob.
How I built it
CraftRace is built primarily with JavaScript, Phaser and Vite, with an Android wrapper turning the web-based game into a native-distributed mobile application.
Supabase provides the online infrastructure behind Race Control, player identity, leaderboards and competitive data.
The Android side connects the game with services including Google Play, AdMob and RevenueCat.
Development has been extremely iterative.
Vehicle physics have been tuned through hundreds of real laps rather than treated as fixed parameters. Different cars have been used as test beds for steering response, weight transfer, grip, acceleration and braking until they started to feel genuinely different to drive.
The same process has been applied to AI, mobile controls, UI, circuit presentation, performance and progression.
Real-device testing has been especially important. Behaviour that feels perfect on one device can expose performance, input or layout problems on another, so CraftRace is continuously tested on both iOS-class web environments and Android hardware.
The project also includes internal systems and tools for managing cars, circuits, environments, rewards, ghosts and game content.
Challenges
The hardest challenge has been making a tiny top-down car feel like a car.
At this scale, even a small change to steering, grip or acceleration can completely change the sensation of a corner. Too much rotation feels artificial; too little makes the car refuse to turn. Too much grip removes the challenge; too little turns racing into sliding.
Finding that balance has required constant driving, measuring and iteration.
AI presented a different problem. I did not want opponents that were competitive simply because they had impossible performance. They needed to follow believable lines, accelerate effectively, approach corners naturally and still make occasional mistakes.
Moving from a web game to a real Android product introduced another level of complexity: packaging, signing, Google Play testing, device-specific performance, billing, advertising, online services and release management.
Building Race Control and ghosts also changed the technical scope of the project. CraftRace now has to connect a local racing experience with persistent online identities, records and ghost data while keeping the game responsive and protecting competitive integrity.
The closed test has been invaluable because real players find things that development testing does not. Their reports have already influenced controls, interface behaviour, performance, audio and future competitive features.
What I learned
CraftRace has taught me that finishing a game is not a single moment.
Every system affects another system, and some of the most valuable improvements have come from repeatedly playing the game, noticing something that does not feel right, understanding why, changing one thing and testing again.
I have learned a huge amount about vehicle physics, game architecture, mobile performance, Android packaging, Google Play releases, backend design, authentication, leaderboards, monetization and rewarded experiences.
I have also learned the value of real users.
Seeing testers compete for times, report problems and suggest features changed the project from something I was building alone into something being shaped by an actual player community.
This is my first mobile game, and taking it from an idea to a real Google Play closed test has probably taught me more than any tutorial could have.
What's next
The immediate priority is to turn the closed test into a stable production release.
That means continuing to use tester feedback to improve Android performance and reliability, completing and validating the rewarded monetization flow, and making sure the online competitive systems are ready for a wider audience.
After launch, Race Control will continue to evolve with deeper ghost competition, challenges and seasonal competitive ideas.
There are also more cars, circuits, progression systems, visual rewards and improvements to the racing experience planned.
But the core goal will remain the same as on the first day:
make a top-down racing game where becoming a better driver actually matters.
Built With
- admob
- android
- css
- development
- game
- github
- google-play
- html5
- javascript
- phaser.js
- pwa
- revenuecat
- vite


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