Roadwright pathing still risks overbuilding greenspace and expensive loaded maintenance #5

Open
opened 2026-08-23 09:39:34 +00:00 by rhelwig · 0 comments
Owner

Summary

Roadwright behavior previously converted too much village terrain into paths and contributed to severe loaded-world lag. Multiple mitigation passes are now in place, but this still needs focused performance and visual-balance validation.

Expected

  • Roadwrights should connect meaningful destinations and repair real corridors without flood-filling surrounding greenspace
  • Terrain-changing workers should preserve grass, flowers, saplings, and enough trees for the village to stay readable and alive
  • Loaded-world planning and scans should remain cached, bounded, and measurable

Actual

  • A playtest village became too path-dominant with too little greenspace
  • Animals and villagers were nearly motionless during lag spikes
  • A player-cut log reappeared several seconds later, suggesting badly delayed server block processing

Relevant files

  • src/main/java/com/ronhelwig/livevillages/sim/SettlementRoadwrightWork.java
  • src/main/java/com/ronhelwig/livevillages/sim/SettlementForesterWork.java
  • src/main/java/com/ronhelwig/livevillages/sim/SettlementGreenspace.java
  • src/main/java/com/ronhelwig/livevillages/sim/SettlementPerformanceLog.java
  • src/main/java/com/ronhelwig/livevillages/sim/LiveVillagesSavedData.java
  • src/main/java/com/ronhelwig/livevillages/sim/LiveVillagesScheduler.java

Already tried

  • Added shared greenspace checks for path conversion and tree cutting
  • Disabled broad Roadwright touch-up behavior that treated adjacent grass as path work
  • Cached Forester and Roadwright task choice
  • Cached stock-access lookups
  • Reduced maintenance frequency and phased maintenance by settlement
  • Added slow-operation timing logs around loaded maintenance
  • Added shared villager work scheduling and per-worker Decide throttles
  • Re-enabled loaded resource maintenance under those gates
  • Reworked Surveyor map observation into bounded cached observations
  • Cached negative Roadwright planning results and limited helper planning
  • Reduced expensive debug / observability-triggered replanning
  • Increased Surveyor observation retention and reveal persistence
  • Extended Roadwright task cache lifetime
  • Relaxed greenspace vetoes so valid corridors can still progress near woods without flattening every green tile

Current best leads

  • Run another targeted timing-log playtest and record which maintenance phase is still slow
  • Verify that current performance logs are easy to correlate with villager phase timing
  • Check whether the current Forester / workshop-delivery recovery path really resolves stalled work
  • Confirm that traveled Surveyor-map areas now reveal as expected without broad sync scans
  • Replace any remaining expensive full-area scans with chunked work queues if logs still spike
  • Re-tune greenspace thresholds after observing real villages again

Notes

  • This is partly a performance issue and partly a visual-design tuning issue

Migrated from https://github.com/rhelwig/LiveVillages/issues/5
Original author: rhelwig
Original labels: none

## Summary Roadwright behavior previously converted too much village terrain into paths and contributed to severe loaded-world lag. Multiple mitigation passes are now in place, but this still needs focused performance and visual-balance validation. ## Expected - Roadwrights should connect meaningful destinations and repair real corridors without flood-filling surrounding greenspace - Terrain-changing workers should preserve grass, flowers, saplings, and enough trees for the village to stay readable and alive - Loaded-world planning and scans should remain cached, bounded, and measurable ## Actual - A playtest village became too path-dominant with too little greenspace - Animals and villagers were nearly motionless during lag spikes - A player-cut log reappeared several seconds later, suggesting badly delayed server block processing ## Relevant files - `src/main/java/com/ronhelwig/livevillages/sim/SettlementRoadwrightWork.java` - `src/main/java/com/ronhelwig/livevillages/sim/SettlementForesterWork.java` - `src/main/java/com/ronhelwig/livevillages/sim/SettlementGreenspace.java` - `src/main/java/com/ronhelwig/livevillages/sim/SettlementPerformanceLog.java` - `src/main/java/com/ronhelwig/livevillages/sim/LiveVillagesSavedData.java` - `src/main/java/com/ronhelwig/livevillages/sim/LiveVillagesScheduler.java` ## Already tried - Added shared greenspace checks for path conversion and tree cutting - Disabled broad Roadwright touch-up behavior that treated adjacent grass as path work - Cached Forester and Roadwright task choice - Cached stock-access lookups - Reduced maintenance frequency and phased maintenance by settlement - Added slow-operation timing logs around loaded maintenance - Added shared villager work scheduling and per-worker Decide throttles - Re-enabled loaded resource maintenance under those gates - Reworked Surveyor map observation into bounded cached observations - Cached negative Roadwright planning results and limited helper planning - Reduced expensive debug / observability-triggered replanning - Increased Surveyor observation retention and reveal persistence - Extended Roadwright task cache lifetime - Relaxed greenspace vetoes so valid corridors can still progress near woods without flattening every green tile ## Current best leads - Run another targeted timing-log playtest and record which maintenance phase is still slow - Verify that current performance logs are easy to correlate with villager phase timing - Check whether the current Forester / workshop-delivery recovery path really resolves stalled work - Confirm that traveled Surveyor-map areas now reveal as expected without broad sync scans - Replace any remaining expensive full-area scans with chunked work queues if logs still spike - Re-tune greenspace thresholds after observing real villages again ## Notes - This is partly a performance issue and partly a visual-design tuning issue --- Migrated from https://github.com/rhelwig/LiveVillages/issues/5 Original author: `rhelwig` Original labels: none
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ronhelwig.com/live-villages#5
No description provided.