WORLD OF GONZ WIKIOpen game ↗

Engineering, operations & design history

Three-scale map design

Full repository source: docs/three-scale-map-design.md

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

Three-scale map design

Status: generation 6 implements a 2,252,800-hex spherical planet, exactly ten times generation 5, with five large continents, three smaller continents, 126 islands, and 70.9976% water by spherical area. Its 17,775 hole-free production regions contain 50–200 cells; 96.4% of polar regions contain exactly 200. Generation-6 saves preserve the earlier worlds in their original directories. Continuous globe/Region navigation and cross-border panning are implemented. Hex child simulation remains proposed. Current status and validation live in Living world design.

Selected settlement context — October 7, 2026

Implemented in map script/style settlement-context-1: Region/Hex retain their geographic title and separately name the selected managed settlement and its full managed-footprint count. The caption is 12px, wraps on narrow screens and uses authorized overview text. Hex names the canonical cell number. Current overviews refresh it; unmanaged selection clears the previous name and Global hides the added line. Geometry, camera, rights, inventory and save fields are unchanged. The current native coastal proof and final zero-order map pass check owned Region/Hex, Global, shared development, unmanaged selection and return at 320/390/640/1440px; mobile captions were inspected. This remains bounded automated evidence, with manual gestures, full seed/art/hidden-information breadth and human usability open. See primary design, status and player walkthrough.

Decision

Global uses a narrow right-hand toolbar and fits the full globe and atmosphere into the remaining space at 1×. Its heading is a small corner caption; secondary navigation, metadata, selected-place actions, and the place-name toggle live in a collapsible options panel. Labels are small, collision-filtered, and limited to three/five at whole-globe scale on small/large screens. Region and Hex retain their wrapping header. See current Global layout.

Production startup now uses a worker-prepared globe preview and exact compact biome-region data, plus on-demand canonical hex objects and a bounded client cache. Repeated loads reuse a versioned, disposable IndexedDB presentation entry. Region/Hex entry requested before preparation finishes is queued; it never renders approximate biome-region averages. See startup architecture and validation.

World of Gonz should use one continuous world model projected through three explicit semantic views:

Global place marker
        ↓ select / drill in
50–200-hex Region board
        ↓ select / drill in
one Hex local scene

Global and Region share continuous wheel navigation: zooming in enters Region at 37.5×, and zooming out returns to the globe at the explored location. Region pans across board boundaries. Hex remains an explicit local scene entered by double-click or its view button. Navigation retains the selected canonical hex independently of the camera.

Touchscreens use the same Global/Region zoom contract through two-finger pinch gestures anchored at their midpoint. Moving the midpoint pans the map; lifting one finger resumes dragging without a jump or selection. Pinching inward by 15% in Hex returns to the saved Region camera. Global, Region and Hex share a compact right-side rail with 44-pixel view/zoom/fit/options targets. ••• opens status, settlement context, metadata, eligible Region overlays and legends, selection actions and the presentation-only Hex concept sites in a bounded, scrollable panel. The canvas and Hex scene use the full map panel; secondary information reserves no map space when closed. Tap the map or press Escape to close options. This supersedes the wrapping header and its measured Hex offset. See touch implementation and validation.

View contracts

Global — “Where should I care?”

  • Project the 2,048 × 1,100 canonical world onto a round planet with smooth pointer-anchored wheel/trackpad zoom and +/− controls. Zooming inward to 37.5× enters Region at the pointed location. The spherical renderer supports 1×–64× internally. Drag or use arrow keys and the direction pad to rotate through both poles and every longitude. Reset restores orientation and 1× zoom; Selected place centers at the current zoom. Select only visible surface hexes. The canonical simulation remains a bounded grid.
  • Use dedicated periodic 2048 × 1024 color and material maps, with no rectangular border or empty padding. Interpolate longitude and blend edge colors and polar caps to remove the atlas seam. Canonical elevation, land/water coverage and moisture drive relief, upland ridges, terrain texture, snow and water reflection; deeper oceans, turquoise shallows, atmospheric lighting and continuous cloud shading provide planetary scale. Fine detail increases and cloud opacity decreases up close; GPU mipmaps soften distant aliasing. This is a visual treatment of existing canonical cells, not a geography or save migration; see globe graphics refinement.
  • Reduce terrain detail and visual noise; do not draw ordinary buildings or individual players.
  • Show only major cities, strongholds, discoveries, regional hazards, important armies, and primary routes.
  • Render major places as sparse screen-stable vector symbols with collision-filtered labels. Global requests no regional painting assets. Ownership and trade-flow overlays require authoritative summary data; they remain proposed where that data is absent.
  • Selecting a place updates information without forcing a drill-down. Wheel input enters Region at 37.5×, preserving the pointed world location. Double-click zooms by 2× below 12.5×, then enters the pointed region at 12.5× or closer. The Region button can enter the selected board at any zoom.
  • Region borders and hover/selection footprints are hidden through 9.375×, fade in from 9.375× to 12.5×, and are fully visible at 12.5×. Hover highlights the actual region footprint without a circular selected-hex marker. Visible borders remain thin; the highlighted region has a stronger gold outline.

Region — “What should this district become?”

  • Production gameplay boards are connected, seeded shapes of 50–200 canonical world hexes, with a preference for larger regions. Balanced spatial cuts produce compact rectangles and gently irregular shapes without tiny leftovers. The polar 122-row bands use almost entirely 200-cell boards, widening longitude spans to compensate for spherical compression and minimizing their count. The cap is cell count, not width or height. Geometry still supports single-cell or thin regions in small test worlds. Boards are not aligned to an eight-cell grid.
  • A region has a stable seed-derived ID and explicit member-cell IDs. The partition covers every world cell exactly once and each board has no enclosed holes. Connected row spans and shared spatial cuts replace the former single-arc frontier-growth algorithm. Region IDs are separate from biome regions and simulation chunks.
  • Global displays regional footprints only at the close zoom levels above. Region renders the continuous viewport with cached overscan and at least three extra hex steps on each side, clipped at canonical world edges. Drag and arrow keys cross board boundaries without camera snapping. The board at the camera center gets a bright gold outline with a dark under-stroke; every visible regional border stays clear. All visible hexes are selectable. No world minimap is shown at Region level.
  • Every landmark plate represents exactly one parent hex. It is an opaque full-bleed terrain painting clipped to that hex by the renderer; its meaningful subject stays in the protected center while only quiet terrain reaches the six edges. Roads, rivers, walls, and cultivation that actually connect to neighbors remain separate topology layers.
  • Show sparse authoritative changes, settlement footprints, production, construction, grouped movement, and important units.
  • Clicking changes the selected parent hex. Wheel and +/− zoom continuously up to 1.65. Entry scale approximates the globe's local vertical scale (0.30–0.75); zooming below 82% of that scale returns to the globe at 31.25× centered on the current camera location. Double-click or Hex opens the local scene. Returning from Hex restores the prior regional camera and zoom.

The 200-hex cap bounds each planning board while allowing varied region sizes and silhouettes. Viewport size and cache budgets bound artwork costs. Membership, rather than camera bounds or simulation chunk alignment, defines the board.

Hex — “What is happening inside this place?”

  • A Hex scene is a bounded child space anchored by one canonical world cell ID.
  • It can represent city districts, a mine interior and works, a shrine clearing, a farm estate, or an ordinary wilderness site.
  • Local objects receive stable IDs scoped beneath the parent cell, for example worldId/cellId/siteId/entityId.
  • Hex state may include districts, buildings, inhabitants, inventories, encounters, access points, and local movement.
  • Exiting through a local edge returns to the parent Region hex or hands off to a neighboring parent cell through an explicit travel command.

The current client scene demonstrates four type-aware local sites around the selected landmark. These are not yet authoritative and intentionally do not mutate world state.

Art system

One source landmark has three projections:

ProjectionUseRule
Global symbolsparse place markervector symbol derived from canonical feature identity; no painting request or multi-hex apron; labels only on selection or importance
Region landmarkcontent of one hexopaque square terrain plate clipped to exactly one pointy-top hex; focal site protected in the center; connectors are separate
Hex anchorlocal scene focusshow the same one-hex plate as the bounded parent, while districts and child sites surround or replace it

The visual lock is the actual Atlas v2 production direction demonstrated by Market Town, Farm Village, Clay Pit, Copper Mine, Gold Vein, and Monastery Hamlet: restrained semi-realistic painterly terrain, a consistent north-up top-down oblique camera, muted olive/umber materials, soft upper-left daylight, fine natural ground texture, and terrain-first hierarchy. The focal site is subordinate to continuous land rather than presented as a bright icon. Generated source art stays lossless and runtime art is normalized to opaque 512 × 512 WebP; the renderer supplies the pointy-top hex crop.

The September 19 strategic atlas supersedes direction 02's use of tiny hex-clipped paintings at Global scale. Detailed paintings are confined to Region/Hex. Region binds compatible landmark plates to canonical feature sites without running the legacy full-world multi-hex Hero allocation; explicit art-review URLs retain the old renderer and source selection. Prefetching follows the viewport with overscan and three extra hex steps. Static regional surfaces and mutable chunk layers have independent bounded caches, and expensive geographic/stamp preparation runs in workers where supported.

Direction 01's transparent parchment-style miniature landmarks are superseded. They matched a concept-sheet illustration language, not the established in-game Atlas paintings. Direction 02 intentionally forbids transparent cutouts, detached ground islands, hard plates, decorative halos, saturated fantasy roofs, and any feature that crosses a Region-hex edge without authoritative topology.

Because the terrain is painted into the plate, every asset declares compatible terrain profiles in public/hex-landmarks.js. The client must not place an olive field plate on desert, arctic, ocean, or other incompatible ground. A subject that needs broader placement requires separately authored profile variants; recoloring or accepting a visible hex seam is not a fallback.

The first set contains:

FamilyAssets
SettlementsRoyal Capital, Walled Mercantile City, River Market Town, Coastal Harbor, Fishing Village, Mountain Monastery, Oasis Caravanserai
Strongholds and infrastructureHill Citadel, Frontier Watchtower, Market Crossroads
ProductionIron Mine, Stone Quarry, Lumber Camp, Prosperous Farmstead, Windmill Estate
DiscoveriesForest Shrine, Ruined Temple, Arcane Observatory, Standing Stones, Sacred Spring

Sources, normalized runtime sprites, the repeatable build tool, and the visual contact sheet are stored in:

  • public/assets/hex-landmarks/source/
  • public/assets/hex-landmarks/runtime/
  • tile-library/production-tools/build-hex-landmarks.py
  • public/assets/hex-landmarks/contact-sheet.png

State and networking

The world simulation remains authoritative and view-independent. Switching views changes projection and interest, never production, travel time, fire spread, or command validity.

Recommended subscription identities:

global: world revision + regional aggregates
region: seeded board ID + member-cell IDs + parent-cell/chunk revisions
hex: parent cell ID + local-scene revision + visible local entities

The client should retain the last valid lower-detail snapshot while higher-detail data arrives. A Hex scene must not invent local state from the Region painting; it displays a loading or unavailable state until the server grants the requested detail.

Interaction and transition rules

  • Selection survives every transition.
  • Backing out of Hex restores the regional camera and zoom while retaining the selected cell.
  • Scrolling out of Region returns to Global at 31.25× centered on the explored area.
  • Global rotates freely. Region pans continuously across board boundaries within the canonical world edges; the camera center determines the active region. Hex is a bounded scene and does not pan into another world cell.
  • 1, 2, 3 are direct view shortcuts. Global wheel and +/− zoom into Region at 37.5×; double-click zooms closer until 12.5×, then enters Region. Region wheel and +/− zoom continuously, returning to Global below its exit threshold. Region double-click opens Hex; scrolling out of Hex restores Region. Wheel navigation covers the entire map panel, including the Hex overlay, artwork, and local-site buttons.
  • The sidebar changes its nouns by level: place/region summaries at Global, cell planning at Region, and local site/entity details at Hex.

Risks and mitigations

RiskMitigation
The three views feel like separate gamesKeep selection, naming, parent IDs, landmark silhouette, time, and consequences continuous across views.
Global becomes an icon fieldImportance filtering, clustering, label collision rules, and screen-stable size caps.
Region landmarks again grow across many tilesClip every Region plate to one parent hex, keep the focal subject inside the central 44–52%, and keep connectors, roads, walls, and district growth in separate layers.
Hex scenes multiply simulation costInstantiate child entities only for active/observed scenes; summarize inactive scenes by elapsed-time events.
Art detail disappears at small sizesJudge every asset at 32 px and 256 px; prioritize silhouette and value grouping over micro-detail.

Delivery sequence

  1. Validate the three-view navigation and the first 20 assets in several generated seeds.
  2. Replace global marker placement heuristics with an authoritative place-summary feed and importance scores.
  3. Use the seeded region ID and explicit membership as the planning boundary, including borders and cross-region routes. Client board generation and continuous viewport rendering are implemented locally; view-specific server subscriptions remain proposed.
  4. Specify canonical local site/entity IDs, local-scene persistence, and entry/exit rules.
  5. Implement one Hex vertical slice for a city: gate, market ward, civic core, and outer ward.
  6. Add asset states and variants only after the scale contract is proven: prosperity, damage, ruin, season, and ownership.

Landmark composition correction — October 10, 2026

An approved source painting must blend in its displayed map context. Region draws a cached foreground/contact sprite over the continuous ground, using an authored contour and smooth alpha fade rather than a hex crop. Hex uses the same sprite over selected-biome terrain instead of a floating opaque hex on a dark background. Preserve source detail, canonical ground, terrain compatibility and exact-file approval. Missing or unreviewed files have no implicit fallback. Review every approved landmark on its permitted terrain and both desktop/mobile scales before marking the composition accepted.

Location identity correction (October 10, 2026)

Region and Hex use the same canonical-feature selection, exact-file approval, allowed biome and contact-composition gate. No image is chosen just because a hex is desert, fields or another biome, or because catalog art was assigned a broad category. Palms denote a natural oasis, not a caravanserai. Resource deposits never inherit marketplace art. Cities, towns, farmsteads, farmland and ruins use separate approved illustration pools; villages await suitable reviewed village art. Missing art keeps the continuous local terrain instead of substituting another kind of site. The visible Hex eyebrow names the canonical feature. More map options retains the generated place name and labels reusable artwork as a shared illustration. Generated names identify coordinates and do not promise individually painted assets. This corrects the former allowTerrainFallback behavior without changing geography or persistence.