Random Driver Generation — Building 400 Believable Racers

When you start a new career in The Undercut, the game needs to create an entire world of racing drivers — roughly 400 of them. These aren’t just names on a screen: each driver has a nationality, an age, a face, a helmet, skills, a salary, and potentially a contract with an existing racing series. They need to feel believable.


Picking a Country

Not every country produces the same number of racing drivers. The system uses real-world data — a combination of GDP and automotive industry size — to weight each country. Countries with bigger car markets (Germany, Japan, USA, Italy, UK) produce more drivers than smaller ones.

But we don’t use the raw numbers directly. The weights are squared, which concentrates the distribution: strong motorsport nations appear much more often, while smaller countries still show up occasionally. This creates a realistic-feeling grid where you’ll see plenty of British and German drivers, a good number of Brazilian and Japanese ones, and the occasional driver from Thailand or South Africa.

Countries below a minimum combined score are filtered out entirely — you won’t see drivers from nations with no realistic connection to motorsport.

Choosing a Name

Each driver needs a culturally appropriate name. The system uses a name database organized in two layers:

  • Country-specific pools: Names that are specifically associated with a country (e.g., “Matteo, Luca, Giovanni” for Italy).
  • Regional pools: Broader name sets that work across a cultural region.

The game first picks a cultural background based on the driver’s country, using weighted probabilities. For example, a driver from France has a 60% chance of getting a name from the main French pool, but there’s also a 15% chance of an African-origin name, 12% Arabic-origin, and so on — reflecting the actual diversity of that country’s population.

For the dominant cultural group, the game tries the country-specific pool first (so an Italian gets Italian names, not generic European ones). For other backgrounds, it falls back to the broader regional pool.

Driver name generation system

The Three-Letter Code

Every driver needs a unique three-letter abbreviation (like “VER” for Verstappen or “HAM” for Hamilton). The system takes the first three letters of the last name and uppercases them.

If the last name is too short (say, “Li”), it borrows letters from the first name. If the code is already taken by another driver, the last character gets replaced with an incrementing number — so you might see “LI2” or “LI3”.

Age Distribution

Age isn’t uniformly distributed. Real racing grids have a distinctive shape:

  • 15% Young (18-21): Rookies breaking into the sport
  • 70% Prime (20-32): The bulk of the grid, with a bell curve peaking around 26
  • 10% Senior (33-40): Experienced veterans hanging on
  • 5% Veteran (41-50): The rare old hand, almost extinct at this level

The prime group uses a pseudo-bell curve (sum of two random numbers centered on 26), which naturally produces more drivers around 25-27 and fewer at the edges. This avoids the flat, unrealistic spread you’d get from a simple random range.

When generating drivers for a specific series with age constraints (like a junior formula limited to 18-21), the same natural distribution is used but clamped to the allowed range.

Skills and the Age Curve

Each driver has six stats rated 1-20:

StatWhat it does
IntelligenceRace strategy, tire management, overtake timing
PaceRaw speed, qualifying performance
ConsistencyLap-to-lap variation, fewer mistakes
AdaptabilityAdjusting to conditions, setup changes
StaminaPhysical endurance over race distance
AggressivityWillingness to attack, defensive moves

All stats start from a random base between 8 and 18. Then age-based modifiers kick in:

  • Young drivers get a pace bonus (raw talent) but intelligence and consistency penalties (inexperience). Aggressivity gets a small bump.
  • Prime drivers (22-32) get no modifiers — they’re at their natural level.
  • Senior drivers gain intelligence and adaptability but lose pace and stamina.
  • Veterans (41+) have significant physical decline — pace drops sharply, stamina falls hard — but peak mental stats. They know every trick in the book, they just can’t keep up physically.

This creates the classic motorsport career arc: the fast but erratic youngster, the complete prime-age driver, and the wily veteran who compensates for fading speed with experience.

Salary

Salary is skill-based but non-linear. The system uses a tiered formula based on total stat points:

Total StatsSalary Range
95+$250K – $500K per GP (elite)
80-95$75K – $250K (strong)
65-80$15K – $75K (midfield)
50-65$5K – $15K (backmarker)
Below 50$2K – $5K (seat filler)

Each tier has a ±10-15% random variation so two drivers with identical stats won’t ask for exactly the same salary.

There’s also a pay driver mechanic: drivers with low ratings (total < 70) have a 15% chance of being a pay driver — they bring sponsorship money to the team instead of demanding a salary. Their “salary” is a negative number (–$10K to –$75K), meaning they pay you to drive. They’re slow, but they keep the lights on.

Appearance

Each driver gets randomized visual attributes:

  • Face: picked from 3 sprite sheets × 98 faces per sheet, matched to their cultural background
  • Helmet: one of 24 designs with three random hue shifts (so helmet #7 can be red/blue/gold for one driver and green/pink/white for another)
  • Suit: one of 11 suit designs (recolored to match team livery when signed)

Racing Series and Contracts

For career mode (400+ drivers), the pool gets organized into non-playable racing series — feeder championships, regional series, international competitions. Each series has rules:

  • Region constraints: Some series only accept drivers from specific regions (e.g., a Japanese series only takes Asian drivers)
  • Age limits: Development series cap at 21, main series are open
  • Skill scaling: Higher-reputation series boost their drivers’ stats slightly; development series cap stats at 16 to prevent juniors from being unrealistically good

The assignment works like a draft, with the most prestigious series picking first. If a series can’t fill its grid from the existing pool, the game generates additional targeted drivers for that specific region and age range.

After assignment, each series driver gets:

  • A contract (1-3 years) with a salary (40-80% of their asking price — series pay less than top-tier teams)
  • A fame score derived from their skills plus the series’ reputation
  • A season objective based on fame (from “Win the Championship” for stars down to “Get a Seat” for unknowns)

Buying out a series driver costs 1.5× their remaining contract value — so poaching a star from a rival series is expensive.

Free Agents

Drivers not assigned to any series become free agents. They still get fame scores and objectives, but their contract fields stay at zero. These are the drivers most readily available for your team — no buyout required, just negotiate the salary.

The Result

When all steps complete, you have a diverse, believable driver pool where:

  • Major motorsport nations dominate but every continent is represented
  • Names match nationalities
  • Young hotshots coexist with wise veterans
  • Skills correlate with age in a realistic way
  • Salaries reflect ability (with the occasional pay driver bargain)
  • An ecosystem of feeder series creates a pipeline of talent
  • Each driver has a unique visual identity

Every new career generates an entirely fresh pool — no two playthroughs have the same driver market.