ReviewOS

stacks/the-settlers-iii-remake

Preserve original landscape identities through gameplay, rendering and checkpoints

#219
Closed chris opened this 6 days ago ·
6 days ago

Original landscape conversion loses information needed by both gameplay and rendering. A retained public worldFromOriginal reproduction swaps source WATER1/WATER2 cells and gets identical runtime worlds, although the pinned reference assigns different source images. It also converts original river code 96 into water: true, walkable: false; the reference classifies RIVER1 as nonwater, nonblocking land.

The pinned OriginalLandscape.java maps 29 original codes into distinct named types. ELandscapeType.java supplies 37 types, source image numbers, water/blocking distinctions and resource constraints. WATER1 uses image 17; WATER2 uses image 16. Rivers return LAND_PARTITION. The game currently coarsens these into eight classes and imports four continuous terrain images. Background.java also distinguishes continuous materials from face-local tiles through TEXTURE_POSITIONS[image][2]; preserve its phase and orientation rules.

Source owner: game rules/catalog, original conversion, asset importer, renderer and checkpoint/replay integration. Parent #28; related #20, #23 and #88. Preserve #215 coverage, #217 continuous UV and #218 lighting. The source evidence is paulwedeck/settlers-remake@6ad8c4230a4aa4cd21840f8cb59a38344e41c3e0, not an original Gold observation.

Acceptance:

  • Retain red regressions through public world conversion and actual browser rendering for distinct source landscapes and river classification.
  • Represent source landscape identities in the existing versioned terrain/rules catalog, preserving every known original-code mapping and the identities used by source terrain changes. Keep one canonical identity shared by simulation and presentation.
  • Reconcile traversal, sea/land partitions, building and resource decisions with inspected source evidence. Distinguish river, mountain border, mud, moor and snow variants. Keep unobserved costs and timings explicitly unqualified.
  • Import and select each required source material, including distinct water depths and terrain border classes, with source hashes and unchanged image pixels. Apply the documented continuous or face-local UV policy and orientation for that material through the existing light path.
  • Preserve those identities through saves, restores, replays, checksums and actual terrain-changing commands. Retain immutable earlier rules profiles and verify existing checkpoints under their own published rules.
  • Report unsupported landscape codes explicitly with structured evidence. Do not silently turn them into grass or claim qualified original behavior.
  • Verify authored and demo maps, real path/production decisions, actual 1x/2x pixels, source integrity, hidden-entity filtering, cache invalidation and resource disposal. Run lint, types, units, assets, production build and the complete browser gate; qualify the pushed version before closing.

Use the current RulesProfile catalog and existing map terrain indices to carry identity through the established save/replay contracts. Review the complete data flow and test matrix before implementation. This correction advances the original landscape model and source material mapping; mixed-face transition atlas selection, reference fog timing, original Gold measurements and native matched-scene qualification remain separate fidelity work.

6 days ago

The missing distinction now reproduces through the actual browser renderer too. An authored original-format map selects WATER1 and WATER2 in turn, using unchanged decoded source images 17 and 16. WATER1 passes its expected color. WATER2 still renders the WATER1 color (28,123,179,255) instead of its independently decoded and lit source value (0,127,194,255). Both draws retain the simulation checksum, with no browser execution errors.

Source inspection covers 37 landscape types and 32 unique images. The maintained DAT decoder successfully decoded all 32; the largest is 128 by 128 and their total raw RGBA data is 991,232 bytes, within the existing material bounds. Eleven border/road types use face-local UVs. The implementation needs to preserve both source identity and this mapping policy through the existing versioned catalog.

The world-conversion reproduction also retains the separate river classification failure. Original raster evidence remains private; these are source and engineering observations, not Gold runtime qualification.

6 days ago

The source catalog now preserves all 37 landscape identities and all 29 original map codes. The 0.13 rules profile is frozen for existing checkpoints; the new profile carries the source identities in the existing terrain indices. Unsupported codes produce a structured error with the source code and map coordinates.

Focused checks cover river traversal, sea-only fishing resources, mountain and inner-border deposits, Roman building ground sets, checkpoint/replay identity, and actual Grassland Galore commands across all five desert variants. A waterworker now collects from rivers and declines sea water through normal work trips.

All 32 imported materials match every pixel from the independent pinned DAT reader, totaling 991,232 RGBA bytes. Actual browser checks pass for all 37 types at both 1x and 2x, including face-local phase and orientation. Existing coverage, continuous UV and vertex-light tests also pass.

The broader simulation gate exposed planning assumptions when these stricter ground permissions leave a city without room for its next producer. I am fixing the normal working-area and expansion decisions, retaining the complete rival battle requirement. Full application and CI qualification are still pending, so this issue remains open. Mixed-face transition selection and Gold runtime measurements remain separate work.

6 days ago

The complete browser suite passed all 16 suites and 510 steps, including the ten-real-minute rival defeat and ordinary save/reload, with no browser execution or request errors. The terrain checks cover all 37 source types at both display scales, and all 32 material images retain their independently decoded source pixels.

The final unit review also exposed expensive per-character callbacks in the existing checksum loop. That loop now performs the same byte operations directly. Frozen checksums and an independently calculated Unicode fixture preserve compatibility; the existing five-second replay test passes without changing its limit. I am rerunning the complete unit gate before publishing and CI qualification.

6 days ago

The complete source landscape catalog is now used by conversion, simulation, rendering and checkpoints. All 37 named types and 29 original codes retain their identities; all 32 selected base images match the original decoded pixels. Rivers remain traversable land and supply waterworkers, while sea depths remain water. Ground permissions, resources and ordinary opponent decisions use the same catalog. Rules 0.13 remain frozen for existing saves and replays; these changes use the 0.14 engineering profile.

The full CI run passed lint, all type checks, 413 unit tests, original asset verification, production build and all 16 browser suites. The original diagnostic artifact was downloaded intact and verified against GitHub's checksum and every ZIP CRC. Its reports confirm 510 successful steps, no console/request/collection errors, 120,506 terrain pixel checks at each actual display scale, and a 610,753 ms rival battle through defeat and save/reload.

This completes the source landscape identity correction. Mixed-face transition selection is tracked in #220. Reference fog timing, remaining game content, original Gold measurements and native presentation remain separate work.

Sign in to comment on this issue.