Research GPS lane connection weighting

This commit is contained in:
2026-06-19 21:24:54 -05:00
parent 355b135d69
commit e3c6087738
4 changed files with 391 additions and 23 deletions
+27 -9
View File
@@ -251,11 +251,29 @@ base\worlds\03_night_city\sectors\_generated\traffic\all.traffic_persistent
## Risks And Unknowns
The main unknown is the native GPS cost formula. If it ignores `maxSpeed`, this
patch will not meaningfully change routes. If it uses speed but with caps or
category penalties, the effect may be subtle. If it uses `maxSpeed` for both GPS
and traffic simulation, the patch may also affect some traffic behavior on
highways.
The first major finding from in-game testing is that `maxSpeed` is not a useful
GPS weighting lever. Raising highway lanes as high as `120` did not change GPS
routes in the test case, but it did make freeway traffic noticeably faster. That
means `maxSpeed` should be treated as traffic simulation data, not GPS route
cost data.
The actual lane adjacency is not populated in `all.traffic_persistent`; every
lane's `outLanes` array serialized empty. The adjacency is in:
```text
base\worlds\03_night_city\sectors\_generated\traffic\all.lane_connections
```
That resource is a `worldTrafficPersistentLaneConnectionsResource` with one row
per lane. Each row has `inLanes` and `outlanes`. Each outgoing connection
contains `laneIndex`, `exitProbabilityCompressed`, `isSharpAngle`,
`nextLaneEntryPosition`, and `thisLaneExitPosition`.
There is still no explicit edge cost field. The current best data-only test is
to patch `exitProbabilityCompressed`: strongly favor road/GPSOnly/highway
connections that enter or remain on highways, and lower competing non-highway
exits. A prepared experimental archive changes 145 outgoing connection
probabilities across 136 lanes.
The Oodle library was not available inside the toolbox, so WolvenKit packed with
its Kraken fallback. A vanilla full-resource control archive loaded in game and
@@ -271,10 +289,10 @@ instead.
Better versions of this mod could:
- build district-specific presets
- increase highway speed to `22`, `25`, or `30` based on playtesting
- lower intersection penalties only where highway ramps are misclassified
- inspect `lane_connections` to identify ramp/arterial topology
- patch `GPSOnly` connector lanes separately
- patch `all.lane_connections` probabilities around ramps and highway exits
- inspect `GPSOnly` connector lanes separately
- compare route output with probability-only archives enabled
- locate any native or baked edge-cost data not exposed in RTTI
- generate a diff report of every changed lane with flags, length, speed, and
graph component
- ship multiple archives: conservative, strong, and experimental