chore(prototype): keep street variant B only; record second run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0424e66c6f
commit
e807744bf7
2 files changed
+6
-41
No files matched your search
@@ -98,3 +98,9 @@ The human confirmed in game what the log showed: rebuilding the segment under a
|
|||||||
- First in-game run (human, 2026-10-05): the template loads, the lanes are visibly offset as intended, and vehicles can drive on the passing lanes. **Town (non-player) cars sometimes choose the passing lane.** **A faster bus behind a slower vehicle does not switch to the empty lane**: the switching logic is missing.
|
- First in-game run (human, 2026-10-05): the template loads, the lanes are visibly offset as intended, and vehicles can drive on the passing lanes. **Town (non-player) cars sometimes choose the passing lane.** **A faster bus behind a slower vehicle does not switch to the empty lane**: the switching logic is missing.
|
||||||
- Changes for the next run: passing lanes allow only `BUS`/`TRUCK` (keeps private `CAR` town traffic out), and the probe logs the road template per vehicle (`road=`), since lane indices 2/3 also mean ordinary lanes on `country_new_medium`.
|
- Changes for the next run: passing lanes allow only `BUS`/`TRUCK` (keeps private `CAR` town traffic out), and the probe logs the road template per vehicle (`road=`), since lane indices 2/3 also mean ordinary lanes on `country_new_medium`.
|
||||||
- Hypothesis for the switch: the engine only re-chooses lanes at segment boundaries (`GetNextEdgeTrafficPenaltyAndAlternatives`), so short segments give a blocked bus more chances to pick the passing lane. Fallback trigger: `replaceSegment` ahead of the pair (made the leader re-plan lanes on multilane roads).
|
- Hypothesis for the switch: the engine only re-chooses lanes at segment boundaries (`GetNextEdgeTrafficPenaltyAndAlternatives`), so short segments give a blocked bus more chances to pick the passing lane. Fallback trigger: `replaceSegment` ahead of the pair (made the leader re-plan lanes on multilane roads).
|
||||||
|
- Second run (2026-10-05 ~21:50 UTC, variant B, passing lanes BUS/TRUCK only). The human judged **variant B correct** (backward passing lane offset -2.5, forward +2.5), so variant A was removed. On the prototype road, lane 4 is the normal forward lane and lane 3 the forward passing lane.
|
||||||
|
- **An overtake happened**: fast 29251 (lane 4, 22.22 m/s) got past slow 29851 over segments 29707 → 30211 (side by side) → 30215 → 29708 → 29042 and stayed ahead. But the *slow* vehicle was in the passing lane (lane 3), and the passer went past in the normal lane.
|
||||||
|
- The engine treats both lanes as equal: some vehicles cruise in the passing lane almost the whole way (29796: 28/28 samples in lane 3, 27775: 29/29). Others mix (29251: 33 in lane 4, 14 in lane 3).
|
||||||
|
- Vehicles slowed to 9–10 m/s and briefly stopped on segment 27290 (presumably the end of the prototype stretch): a merge from two lanes into one.
|
||||||
|
- Visually the lane change is abrupt (human: "the lanes need a smoother transition"): the switch happens at the node, which has almost zero length on a straight, and the jump is about 5–6 m sideways.
|
||||||
|
- Next ideas: a lower speed limit on the passing lane (prefer the normal lane unless it's blocked), a smaller offset or transition segments for a smoother change.
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
-- PROTOTYPE (ticket "Can a street type with overlaid passing lanes fake overtaking on single-lane roads?"):
|
|
||||||
-- throwaway, lives only on branch prototype/vehicle-probe.
|
|
||||||
-- Looks like country_new_small (same style, one visible lane per direction), but each direction gets a narrow
|
|
||||||
-- extra passing lane at the centre line, pushed by `offset` over the oncoming lane. Variant A: passing-lane
|
|
||||||
-- offsets B +2.5 / F -2.5 (the unit and sign of LaneConfig.offset are unknown; variants A and B use opposite signs).
|
|
||||||
function data()
|
|
||||||
return {
|
|
||||||
availability = { yearFrom = 0, yearTo = 0 },
|
|
||||||
cost = 180,
|
|
||||||
country = true,
|
|
||||||
defaultWithCrosswalk = false,
|
|
||||||
description = {
|
|
||||||
description = "PROTOTYPE overtaking road, variant A: country small road with overlaid passing lanes (offset B +2.5 / F -2.5).",
|
|
||||||
icon = "::/infrastructure/street/country/country_new_small.tga",
|
|
||||||
name = "Overtake proto A (passing lanes B +2.5 / F -2.5)",
|
|
||||||
previewIcon = "::/infrastructure/street/country/country_new_small_preview.tga",
|
|
||||||
},
|
|
||||||
emissions = { noise = 0, pollution = 0, pollutionRadius = 0, radius = 0 },
|
|
||||||
fillGroundTex = "::/infrastructure/street/shared/street_fill.gtex",
|
|
||||||
laneConfigs = {
|
|
||||||
{ forward = false, height = 0, offset = -1, speed = 22.22, transportModes = { "PERSON", "CARGO" }, width = 2 },
|
|
||||||
{ forward = false, height = 0, offset = -0.5, speed = 22.22, transportModes = { "CAR", "BUS", "TRUCK" }, width = 5 },
|
|
||||||
-- backward passing lane, meant to sit over the forward driving lane (BUS/TRUCK only: keeps town cars out)
|
|
||||||
{ forward = false, height = 0, offset = 2.5, speed = 22.22, transportModes = { "BUS", "TRUCK" }, width = 0.5 },
|
|
||||||
-- forward passing lane, meant to sit over the backward (oncoming) driving lane (BUS/TRUCK only)
|
|
||||||
{ forward = true, height = 0, offset = -2.5, speed = 22.22, transportModes = { "BUS", "TRUCK" }, width = 0.5 },
|
|
||||||
{ forward = true, height = 0, offset = 0.5, speed = 22.22, transportModes = { "CAR", "BUS", "TRUCK" }, width = 5 },
|
|
||||||
{ forward = true, height = 0, offset = 1, speed = 22.22, transportModes = { "PERSON", "CARGO" }, width = 2 },
|
|
||||||
},
|
|
||||||
maintenanceCost = 30,
|
|
||||||
menuCategory = { categories = { { category = "roads_country", filterCategories = { }, order = 441 } } },
|
|
||||||
modifiers = { maxSpeedModifier = 0, noiseModifier = 0, pollutionModifier = 0 },
|
|
||||||
pedestrianWalkPenalty = true,
|
|
||||||
priority = 200,
|
|
||||||
roadType = "STREET",
|
|
||||||
sidewalkFillGroundTex = "::/infrastructure/shared/none.gtex",
|
|
||||||
simBuildable = false, -- towns must not build the prototype
|
|
||||||
streetStyle = "::/infrastructure/street/country/country_new_small.street",
|
|
||||||
builderAudioRes = "::/gui/construction/sound/buildoze_street.builder_audio",
|
|
||||||
}
|
|
||||||
end
|
|
||||||
Reference in new issue
Block a user