WORLD OF GONZ WIKIOpen game ↗

Engineering, operations & design history

Startup performance — September 20, 2026

Full repository source: docs/startup-performance-20260920.md

Technical documentation includes historical decisions, proposals and verification reports. For playing instructions and practical rules, open Gameplay.

Startup performance — September 20, 2026

The main bottleneck was creating every production hex and biome region on the browser's main thread. The new worker prepares exact compact presentation data while the client starts with a globe preview and materializes detailed cells on demand. A versioned IndexedDB entry avoids repeating preparation on later visits. The simulation, generation-6 geography and saves are unchanged.

Measured with the repository's headless Edge harness against a local server, at 1440 × 1000, DPR 1, without CPU or network throttling. Baseline is commit 6224880d. These are individual observed runs, not guaranteed production or phone timings. Raw summary: startup-performance-20260920.json startup-performance-20260920.json.

MeasurementBeforeAfter
Rendered globe previewNot separately measured0.73 s
Full globe / regional data ready, cold load11.71 s5.50 s
Full readiness on a cached reloadNot measured0.33 s
Longest main-thread startup task9.81 s0.34 s
Materialized hex objects at Global readiness2,252,80031

The cold run reports about 52 MiB of JavaScript heap. This excludes some browser, GPU and backing-store allocations and is not a total-memory claim. The object cache allows 32,768 entries for visited areas; natural cells can be reconstructed after eviction. Region preparation retains double precision and the original flood-fill order so art profiles and geography do not change.

Validation:

  • The final full 785-test suite passed, including denied-storage recovery and the unobstructed-globe projection regression.
  • Byte-identical canonical values, planet fields, region membership/averages, place selection and reconstructable evicted cells are checked. Art-review fixtures explicitly retain their original synchronous path.
  • Browser checks pass Global/Region/Hex navigation, wheel and pinch zoom, responsive controls at 320–1440 px, unchanged selection, repeat-load cache hits, and worker-less fallback with a queued regional request. No application exceptions were observed.
  • Asynchronous Brotli/gzip delivery passes the existing integration coverage.
  • The performance harness now records cold/warm readiness, preview rendering, materialized-cell count, heap and main-thread blocking. Optional PERF_CPU_PROFILE writes a drag CPU profile for diagnosis.

The existing 1.8-second cold full-readiness budget still fails at 5.50 seconds; it has not been relaxed or relabeled as preview readiness. The final run passes the other existing budgets, including interaction frames and regional composition. The remaining cold cost is background generation and texture preparation; GPU initialization and device speed also affect the first rendered preview. Physical-device and throttled-network certification remain outstanding.

Architecture and current design status: Living world design.