Observed: after login the map fills in ~10s late (cache pops in after the world is already interactive).
Measured: login → game chunkManager ready (+a few s) → our async seedWorldFromCaches (IPC load of the prebake + PNG decode + composite) completes ~+10s. Captured: nzT 0 → 98304 around +10s post-login.
Proposed:
- Pre-warm the seed — kick off
seedWorldFromCaches as soon as mapWidth/Height are known, before the map panel is opened, so the decode is done earlier.
- Loading-screen phase — piggyback the vanilla login loader to add a final "Loading map…" phase + progress bar (pre-seed + pre-warm marker icons), so the map is complete on the first interactive frame. Lighter alternative: a small in-panel "loading map" spinner while the seed runs.
Note: option 2 couples to the vanilla loading-screen internals — start with the lighter in-panel version, graduate to the full piggyback once proven. Related: marker-icon caching (sibling follow-up).
Follow-up from #21.
Observed: after login the map fills in ~10s late (cache pops in after the world is already interactive).
Measured: login → game
chunkManagerready (+a few s) → our asyncseedWorldFromCaches(IPC load of the prebake + PNG decode + composite) completes ~+10s. Captured:nzT0 → 98304 around +10s post-login.Proposed:
seedWorldFromCachesas soon asmapWidth/Heightare known, before the map panel is opened, so the decode is done earlier.Note: option 2 couples to the vanilla loading-screen internals — start with the lighter in-panel version, graduate to the full piggyback once proven. Related: marker-icon caching (sibling follow-up).
Follow-up from #21.