Skip to content
Client
Motorsport Games
Role
Lead UX
Year

Race Control

Online sim racing platform and matchmaking service for rFactor 2. Led UX through a complete rewrite: Angular to React, number-chasing to bracket-based ranking, and research that changed how we thought about player burnout.

Visit website →
Race Control: project cover image
All-time peak players
8,565
Steam Charts, September 2026
Players on an average day
3,000
Every multiplayer session in Le Mans Ultimate runs through Race Control
Frontend rebuild
React
Rewritten from Angular 0, and the component library carried straight into the next product

Race Control is the online competition platform for rFactor 2: matchmaking, championships, co-op sessions, and driver ratings. But when I joined, it was an Angular 0 frontend with no real multiplayer, and we had Le Mans Ultimate coming, a product that would be entirely online.

The problem we were actually solving

We knew LMU was going to be online-first with endurance racing. The RF2 engine had never had proper multiplayer or a competition system. And we didn’t actually know what users needed to make a decision about joining a race. So we used the older game as a proving ground.

We ran surveys and card sorting exercises to get sim racers to rank the information they needed before committing to a race. What turned out to matter: race type, session times, track, car class, driver requirements. What didn’t: most of the chrome we’d assumed was important.

The rFactor 2 Online Beta: the starting point. An Angular 0 frontend with a popup announcing the new competition system, powered by RaceControl.
Championship overview screen showing race series, standings, and upcoming events

The React decision

The existing frontend was Angular 0. I made the call to rebuild it in React, not because Angular was bad, but because we knew these components would carry forward into Le Mans Ultimate. Building on Angular 0 was building throwaway work. Building in React meant every component was an investment in the next product.

This was my call as Lead UX. I was going to be Head of UX for the next product, and I needed the foundation to be portable.

Circuit selection screen with track previews and session details

What we built

Ranking without the rage

The biggest piece of research we ran was around driver ratings. In sim racing, people chase numbers. Losing one point from your safety rating could ruin someone’s night. We saw the same burnout patterns you see in MMOs, players power through for two months then disappear.

Our solution: brackets, not numbers. Silver, Gold, Platinum, safety rating tiers that were percentage-based and sticky enough to reduce anxiety. You could stay in your bracket. You still had impact. But you weren’t watching a number tick down after one bad corner. It also gave us room to tune the system without players feeling every single tweak.

Spontaneous game modes

Research showed players burned out by locking into one genre and grinding it to exhaustion. So we added low-risk, spontaneous game modes, quick sessions with lower stakes. The serious sim racer could jump into something casual without feeling like they were damaging their rating. It kept people in the ecosystem longer.

Daily Races tiered structure: Beginner, Intermediate, and Advanced events. Safety rating gates unlock higher tiers, giving players a visible progression path without the anxiety of a live number.

Constraints

You’re working in a legacy tool with horrible UX. You know you’re going to abandon it. But you also can’t remake the entire experience. That makes maintenance impossible, and a completely different UX in an old product would be jarring for existing players.

The constraint forced discipline: build what matters, make it sustainable, ship it. Everything else is noise.

Co-op session lobby with driver list and session configuration
The Daily Race event screen: BMW M2 Cup at Lime Rock Park. Session breakdown, driver ratings, fastest lap leaderboard. The competition system in its mature form.

What carried forward

The entire React component library, the ranking philosophy, and the user research moved directly into Le Mans Ultimate. Race Control wasn’t a side project. It was the prototype for the UX strategy of the next product. The launch was well received, and the foundation held.

What happened

Race Control became the online backbone of Le Mans Ultimate. Every multiplayer session in the game runs through it. As of September 2026 that is around 3,000 concurrent players on an average day and an all-time peak of 8,565, according to Steam Charts.

Tools

  • Figma
  • Illustrator
  • Photoshop
  • React