Repository navigation
Wide parity: the game on many random seeds, compared with Chunkscope - #29
Merged
Merged
Conversation
WideOracle.java runs the real game classes on random seeds (from a salt) and writes, in every dimension, biomes, base heights and every structure attempt around two centers (rejected candidates included), plus end city ships, the spawn origin and strongholds. tests/wide.rs compares Chunkscope with it when CHUNKSCOPE_WIDE is set, reporting each difference with its seed and position. wide.sh runs both; the Wide parity workflow runs it weekly, by hand, and before each release. The server jar download moves from run.sh to fetch.sh, shared by both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SenGxDDRwLejx8nir8GXKG
200 random seeds (salt 20261115) in every dimension: no difference. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SenGxDDRwLejx8nir8GXKG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First part of 0.7, large-scale verification: the real game is run on many random seeds and compared with Chunkscope. Nothing generated by the wide check is committed.
What changes
parity/game-oracle/WideOracle.javareuses GameOracle's helpers and writes, for every seed (drawn from a salt) and dimension:getBaseHeight(WORLD_SURFACE_WG,OCEAN_FLOOR_WG) at 6 columns;(no attempt), so Chunkscope cannot add attempts either;For the Overworld it also writes the spawn origin and, every n-th seed, all 128 strongholds.
crates/mc-core/tests/wide.rscompares Chunkscope with that output whenCHUNKSCOPE_WIDEis set. It prints a summary per dimension and set, and every difference with its seed and position, also saved asreport-*.txt. Without the variable the tests do nothing, socargo testis unchanged.parity/game-oracle/wide.sh [seeds] [salt] [n]compiles and runs the oracle, then the comparison. Reusing a salt reruns the same seeds..github/workflows/wide.ymlruns it weekly (Mondays 03:17 UTC, 200 seeds) and by hand, with seed count and salt as inputs. It also runs on pull requests that change the check itself, with 10 seeds. The job summary and thewide-parityartifact hold the results.release.ymlcalls it with 100 seeds before publishing: a release now waits about half an hour longer, and is not published if the game and Chunkscope disagree.The server jar download moves from
run.shtofetch.sh, shared by both scripts.GameOracle.strongholdsis split so the wide oracle can reuse it. Its output is unchanged:run.shregenerates every fixture byte for byte.Docs: a PARITY.md tier 3 section with the first run's numbers, ROADMAP, README and GLOSSARY.
First run
200 seeds, salt
20261115: about 27 min for the game and 8 min for the comparison on 4 cores. No difference in:I also checked the comparer itself: a corrupted biome line and a corrupted structure point are each reported as one difference.
Generated by Claude Code