Smooth streaming
A big map must not stutter. Dev 0.7 is all about performance — fewer hitches as towns stream in, a faster start, a lighter menu and a new profiler that shows exactly what every frame cost.
The big map was followed by a big clean-up. When you hit a town at 150 km/h, the game has to build the streets, houses and signs before you get there — without a single hiccup. So for dev 0.7 we chopped all that work into small pieces and measured every millisecond.
- Fewer hitches: kerbs, road markings, buildings and textures are built in small batches and off the main thread. On the Teplice test drive the longest piece of streaming work dropped from 25 to 11 ms.
- Streaming ahead: the tiles you're driving towards are ready before you arrive.
- Half-size terrain downloads and a faster start: sounds load alongside the map, and the menu already fetches the start of Teplice while you pick.
- Frame-rate cap in the options (30 / 60 / 120 / 144 / display rate / unlimited) with even frame times.
- Lighter menu and minimap: the map preview in the menu is one 2 MB file instead of 500, and the minimap no longer eats frames in towns.
- Lighter frames in towns: whole city blocks outside the view are skipped at once, and High shadows cost the graphics card about half as much.
- Profiler (F9) and trace (F10): a frame-time graph split by system, a list of hitches with what the game was doing at the time, and an export of the last 30 seconds to Perfetto.
Full changelog · dev 0.7 · 15 changes
- NewProfiler (F9): a frame-time graph split by system, the GPU, a list of hitches with what the game was doing in each, the slowest work of the last bad frame, counters and recent errors
- NewF10 saves the last 30 seconds as a trace you can open in Perfetto (ui.perfetto.dev): every system, tile build step, shader compile, download and worker job on one timeline
- BetterCrash and error reports now include what happened just before and where you were, so bugs can be found and fixed faster (anonymous; turn off with ?report=0)
- FixedFar fewer stutters when map tiles stream in at speed: road kerbs and markings no longer build in one big lump (a single 0.6 s freeze in the Teplice centre), textures upload a slice at a time, and the load cache saves in the background
- BetterThe minimap turns and slides smoothly every frame and no longer eats the frame rate in towns: it is drawn now and then in small pieces and moved by the graphics card in between (it cost 10–20 ms a frame at speed in Teplice on some setups)
- BetterStreaming looks ahead: the tiles you are driving towards are ready before you get there, the nearest work goes first, and the build work adapts to how busy each frame already is (more while you stand or sit in the menu)
- BetterSmoother still when towns stream in: map files are read and checked in the background, shop signs, billboards and road signs are painted off the main thread and sent to the graphics card in slices, and the biggest building, landmark and kerb jobs are cut into small pieces (on the Teplice test drive the longest piece of streaming work went from 25 to 11 ms, and ten times fewer pieces take over 8 ms)
- BetterTerrain downloads are about half the size (packed heights, unpacked in the background)
- BetterPhones and tablets: lighter ground textures (within the 1024 px budget) with fewer mip levels, uploaded in smaller pieces
- BetterLighter menu and loading screens: the blurred backgrounds come pre-blurred instead of being blurred again every frame
- BetterFaster start: sounds load alongside the map instead of after it, and while you pick in the menu the game already fetches the start area of Teplice in the background
- BetterThe main menu opens light: the Teplice map view on its card loads only when you point at it, from one 2 MB file instead of about 500 map files (50 MB) — the big map (M) opens from the same file
- NewFrame rate option (Options → Graphics): 30, 60, 120, 144, your display's rate or unlimited, with even frame times — a cap skips whole screen refreshes instead of guessing with a timer, and 60 on a 165 Hz screen runs at an even 55. The time left under the cap builds the map around you. Phones start at 60
- BetterLighter frames in towns: whole blocks of the city outside the view (and outside each shadow map) are skipped at once instead of being checked object by object — about a quarter less culling work for the view and three quarters less for the shadows
- BetterShadows (High) cost about half as much on the graphics card: the distant shadow map is reused for a few frames instead of being redrawn every other frame, and redrawn at once when you turn