About Daily Dirt Rally
An independent browser racing game with three new tracks a day, built and run by one person. Here is who makes it, how it works, and what it is honestly capable of today.
What the game is
Daily Dirt Rally is a free top-down racing game that runs in a browser. Every day the server generates three new dirt circuits from the calendar date, and every player in the world gets those same circuits until the date rolls over. You race a set of three races, two laps each, in a lobby of up to eight drivers with computer drivers in the empty seats, scoring points for every finishing place, and the ten best GO RACE sets of the day are listed on the front page until midnight clears the board.
The design goal was a game you can finish in one sitting of about five minutes and come back to tomorrow. No account, no progression, no unlocks, nothing to buy — just tracks that are the same for everyone and a clock that does not care who you are. It plays with a keyboard, or with on-screen buttons on a phone or tablet held sideways.
Who makes it
Daily Dirt Rally is written, hosted and maintained by Donald Harris, an independent developer. It is not a studio, a publisher or a network — it is one person and a small server. If something on the site is broken, wrong or unfair, the person who can fix it reads contact@dailydirtrally.com and answers it personally.
The retro-future broadcast framing — BASH TV, the 2088 setting, the CRT styling — is the game’s fiction and nothing more. There is no television network, no corporation and no affiliation with any real broadcaster, manufacturer or motorsport organisation. It is set dressing for an arcade racer, and we would rather label it clearly than have anyone wonder.
How the daily track works
The date string is hashed into a seed for a deterministic random number generator. That generator drives a loop-expansion algorithm: a 2×2 ring of grid cells is pushed outward again and again, each push replacing a straight run with a detour, until a rectilinear circuit of 32 to 44 tiles emerges. Each cell becomes one of sixteen tiles chosen by which neighbours it connects to, and each tile carries a collision mask taken from its own artwork so the drivable boundary follows the road you can see.
Races 2 and 3 of a set do the same from the date and the race number. Because the whole layout is a function of the date, nothing needs to be stored or distributed for players to share a track. The full walkthrough is in the track generation guide.
How it is built
| Layer | Technology | What it does |
|---|---|---|
| Rendering & physics | Phaser 3 | Canvas rendering, arcade physics, particles, camera and input at 60 frames per second. |
| Interface | React with a small custom router | The site around the game: landing page, lobby, leaderboards and these guides. |
| Multiplayer | Socket.IO on Node.js | Eight-player rooms, invite codes, AI drivers and roughly twenty position updates a second. |
| Data | Prisma with SQLite | Daily track records, leaderboard entries and the results of finished sets. Deliberately small. |
| Hosting | A single small Linux server | nginx terminating HTTPS with an automatically renewing certificate, proxying the Node app. |
What it does not do yet
An honest list is more useful than a marketing one, so:
- No per-surface friction. The generator carries grip values for asphalt, mud, sand and gravel, but nothing reads them while you are driving, and daily tracks are currently cut entirely as dirt. Only the wall at the edge of the dirt and being off the road change your speed.
- No check that a drive was physically possible. In a GO RACE set the server times each finish on its own clock and works out the points itself, so your browser never sends a time or points. But each browser still reports where its own truck is, so a modified one could report a drive it never made. Implausible entries get removed by hand when spotted; the scoring and fair play guide has the detail.
- No replaying past tracks from the interface, though the data is deterministic and the feature is wanted.
All three are on the roadmap and will be recorded in the changelog when they land, rather than announced in advance.
How the site is paid for
Hosting is currently paid for out of pocket. The site briefly carried third-party ad scripts in 2026 and they were removed because they degraded the experience. If advertising returns it will be confined to written pages like this one — never the game screen, the lobby or a loading screen — and the privacy policy will describe the cookies involved before any of it appears.
Get in touch
Bug reports, physics questions, track-data experiments and complaints about the AI are all welcome at contact@dailydirtrally.com or through the contact form. Reports that include your browser and the track date get fixed fastest.