Closed Alpha 0.2.7 — Dynamic Time-of-Day Lighting, Procedural Liveries, and a Living Paddock

Hey everyone — 0.2.7 is rolling out on the closed-test channel, and it’s the most visual update we’ve shipped so far. The headline is a full time-of-day lighting system — the sun now has a position, and everything on track reacts to it: cars, tyres, grandstands, trees, even the asphalt. On top of that, procedural liveries are finally baked into the actual race, the paddock gets transport trucks, perimeter walls and a start-lights gantry, and there’s the usual deep stack of fixes pulled straight from your reports.

Here’s what’s new.


A sun in the sky: dynamic time-of-day lighting

This is the big one. The track used to be lit flat. Now there’s a single Time of Day control (0–24h) that drives a real sun direction and a global tint curve — cool dawn, neutral noon, golden afternoon, orange dusk, twilight blue — and every major element reacts to where the sun actually is.

  • Cars get dynamic body shading and a metallic specular highlight. The lit side of every car always faces the sun, regardless of which way the car is pointing — so the bright spot rotates both as the sun moves and as the car turns through a corner. The shadow on the ground re-anchors to fall opposite the sun, too.
  • Tyres walls, grandstands and trees are shaded the same way — domed canopies on trees brighten toward the sun, grandstand tiers catch the light with the back rows (highest, most sky-exposed) reading brightest, and every shadow stretches and rotates with the time of day.
  • The asphalt gets a procedural normal-map micro-relief: surface roughness lit by the sun direction, so bumps facing the sun stay bright and crevices darken.
  • Smaller touches: a warm racing-line strip, soft inner-edge shadows that sell the track’s thickness, and a 1-pixel relief shadow under the white border lines so the paint reads as raised.

The whole thing has a master ON/OFF in Settings → Display: Lighting Effects, and ships baked into all six climate presets, so every fresh install gets the effect out of the box. (Dev-side, there’s a per-effect F6 panel with a live sun-direction and tint preview to tune every layer independently — this was a lot of passes to get right, especially keeping the specular highlight off the black tyre rubber and on the bodywork where it belongs.)

Procedural liveries — baked into the race

Until now, each team’s car was just a single base colour with an HSV shift. In 0.2.7, every car’s texture is baked from a procedural livery — multi-zone designs (fills, vertical and horizontal stripes, rectangles, diagonals) painted with the team’s primary / secondary / tertiary colours.

  • Quick Race assigns a random livery per team.
  • Career picks a livery deterministically from the team’s stable ID, so a team’s look stays consistent across sessions.

There’s also a new dev-only Livery Editor for designing the 12 shipped variants — and driver numbers are now propagated through the pipeline (on-car number rendering is the next step). It all falls back gracefully to the old colour shift if a livery file is ever missing.

The paddock comes alive

A handful of additions that make the area behind the pits feel like a real race weekend:

  • Per-team transport trucks — one top-down lorry per team, parked perpendicular to the pit lane behind each team’s box, tinted with the team’s primary colour (a yellow-only hue swap that leaves wheels, windows and trims intact). They’re lit like the cars, with the chrome highlight travelling across the cab as the day moves.
  • Paddock perimeter walls — the same concrete + Armco combo as the pit-lane safety wall now wraps the paddock on three sides, so the asphalt slab has a clean boundary.
  • A start-lights gantry over the start/finish line — an overhead concrete-and-steel structure that cars visibly pass under, with a diffuse drop shadow that tracks the sun.
  • Grass shade variation — the flat green is gone. Two sliders control a subtle three-shade palette (dry-yellow / neutral / lush dark-green) and the patch scale, so the infield reads as natural ground instead of a billiard table.

Helmets you can actually tell apart

In the live race, every car’s top-down helmet sprite is now recoloured to match the driver’s real helmet — the placeholder yellow shell is re-tinted to each driver’s primary helmet hue, with the original shading preserved. Drivers no longer look identical from above. (And the helmet now shares the same filtering and lighting as the car body, so it doesn’t pop out against the bodywork.)

Under the hood: tamper-proof config

A more invisible but important change: all dev tuning parameters now live in a SQLite database (config.db) instead of loose .txt files. The shipped build now contains zero .txt tuning files — every slider value, livery, sponsor placement and editor output is packed into config.db at build time. This closes a tampering vector that previously existed between install and first launch. (Your own display_config.txt is deliberately left alone — that one’s yours.)

We also added Steam uninstall cleanup scripts so that removing the game through Steam properly clears out saves, replays and logs instead of leaving folders behind — flagged by Steamworks, now fixed on all three platforms.

Important gameplay fixes

These came straight out of closed-test reports and affect your saves:

  • A bankrupt AI team kept racing the next season — you’d see 13 teams on the grid (26 cars), with the bankrupt team running as ghost cars that scored nothing. Last-season bankrupts are now properly blocked from rejoining.
  • Lapped cars were classified in the wrong order — when you got lapped, other lapped drivers could be placed ahead of you and drop you out of the points, because every lap-down car was collapsed onto the same finish time. Now every car finishes naturally at its own start/finish crossing, in real track order.
  • Cars could overtake under Safety Car — a silent swap could happen if a leading car’s pace dropped under neutralisation, with followers then joining the move. The no-overtake-under-SC rule is now enforced properly — and the earlier fix for it (which introduced a visible “snap back”) has been replaced with a gentle speed-cap that reopens the gap naturally, no teleporting sprites.
  • Free Practice ignored your tyre plan — every car switched to Soft at pit-out regardless of what you’d set. Each driver (player and AI) now honours their planned compound, so a car starting on Hard stays on Hard.
  • Podium and My Team suits didn’t match your chosen colours — several related bugs where the suit shown on the podium, in the My Team app or on the grid used a stale design or the wrong colour recipe. All four screens (Identity, team presentation, Competition, My Team) now render the suit from the same source.
  • Grid presentation showed "<team> Logo 3" instead of the team name. Fixed.
  • Qualifying mini-sector bar painted your first flying lap yellow (slower) instead of green/purple — your first lap is your personal best by definition, so it now colours correctly.
  • Audio sliders were never saved — the Settings → Audio volumes wrote to a file nobody read, so every change was silently discarded at launch. They persist now.
  • Windowed mode larger than your monitor (Windows) — on smaller laptops (e.g. 1366×768) the action buttons sat below the visible screen and did nothing. The window now clamps to your monitor’s work area before it’s even created.
  • Steam overlay browser links — the menu’s Website / Discord buttons now open in the in-game Steam overlay (and fall back to your system browser outside Steam).

The rest, in short

  • Settings → Simulation sub-tabs no longer overlap the group label with the first slider.
  • Safety Car no longer appears in the simulated-race standings table.
  • Grandstand shadows got softer lateral edges and more contrast between front and back rows on closed-test feedback.

Known bug

  • In race, cars can still show a lateral snap when crossing the start/finish line and during certain overtakes / lane locks (visible via F11). The anti-overlap is being rewritten as a predictive model to remove the snap entirely — landing in a future update.

As always, if you hit a bug:

  1. Keep Race Debug Dumps ON (Settings → Display, default),
  2. Reproduce the issue,
  3. Zip the matching debug/race_<ts>_gp<NN>/ folder,
  4. Drop it on Discord with a short description.

Huge thanks again to everyone in the closed test — almost every line above started as one of your reports. See you soon.

— Staz