Files
rivencraft/docs/MILESTONE_6_ACCEPTANCE.md
T
2026-10-12 15:10:17 -04:00

6.7 KiB
Raw Blame History

Milestone 6 acceptance review (issue #74)

Milestone 6 covers authored and live block instability, deterministic provider selection, bounded Age effects, diagnostics, and migration. Its required issues #63–#73 are closed. This document records acceptance of 0.6.0.0, not a claim of exact Mystcraft 1.12.2 parity or a claim that every optional-mod combination was tested. The player reported an in-game pass for the 0.6.0.0 candidate on 2026-10-12; the broader manual matrix remains a future checklist.

Scoring and writing

The pinned Legacy audit records source defaults and the Rivencraft mapping. Authored score/breakdown and provider plan are saved per Age; seed-completed missing branches cost zero. Extra single-choice controllers cost +500, and out-of-order non-modifier pages cost +100. Version-4 Age plans consume period/phase modifiers in written order; repeated modifiers combine, while each kind left unconsumed after the last celestial page costs +100. Bright Lighting costs +500 per occurrence. The fourth and later occurrences of each of the four Legacy structure pages cost +100; the same rule applies to named modern structure pages as a project balance extension. Forcing a structure into an unsupported selected biome costs +100 per occurrence. Accelerated and Corrupted pages retain their audited costs. Unknown or unrepresentable new writing remains a clear binding error, rather than a silent no-op. See score details.

The live block profile samples generated chunks gradually and contributes only after the Age and Overworld-baseline thresholds. It can change the effective score and active provider selection as new chunks are profiled, without rewriting authored score or writing. Diamond storage blocks are an intentional addition to Legacy's watched blocks. Ores, mineral storage blocks, and source fluids supplied by installed mods are recognized automatically through common tags and material names; those mods are not Rivencraft dependencies. Exact weight overrides are optional configuration.

Effects, safety, and diagnostics

The runtime policy documents saved deck order, provider costs/levels, per-Age cooldown, rotating Age admission, loaded-chunk selection, and server-side action budgets. Defaults allow four Ages per tick, two provider calls and one effect action per Age run, up to 16 loaded chunk candidates, and a 20-tick per-Age cooldown. These caps and protected spawn/portal/platform areas are modern safety adaptations, not Legacy's unrestricted execution. Global, per-Age, provider, and world-mutation controls suppress execution without rerolling a saved authored plan.

Implemented effect families include bounded status effects, four active colored decay variants, lightning, explosions, meteors, ordinary burning, and guarded erosion. Erosion is deliberately enabled by default for testing although Legacy did not register its provider in the active deck. Dormant Legacy black/green/yellow decay variants, global burning, and bedrock crumble are not claimed as working. Potion targeting excludes Creative/Spectator players; hostile buffs target hostile mobs. The effect audit records those differences. Operator diagnostics report authored and live block contributions, selected providers, enabled state, and budget suppression; raw score is not shown in book UI.

Migration and validation

Pre-scoring Ages migrate to neutral instability. Score-only Ages receive a deterministic saved provider plan. Existing plan-v3 Ages keep their old stage-sorted celestial behavior and writing cost; new plans use schema 4. Block profile schema 2 resets old samples once to capture modded materials, and preserves unknown material IDs if an optional mod is later removed. Missing symbol definitions do not reinterpret a saved authored score, but removing required biome/worldgen registry entries may still prevent world loading. General old-save compatibility is tracked separately in issue #60.

The Milestone 6 regression record distinguishes the passing 0.5.8.10 focused archive, the later storage-stalled archive, the 0.5.8.18 build, and the player's reported in-game pass. Its expanded manual matrix is a repeatable future checklist, not an individually signed-off pass for every optional mod, multiplayer, restart, and hazard combination. For this completion candidate, verify build, diff check, jar checksum, and a fresh in-game pass before publication. Do not rerun the known stalling archive as a release gate; hand any newly stalled GameTest scenario to the player. The completion review also replaced repeated linear scans of saved active symbol indices with one lookup map per call, and shares one effective provider plan across the scheduler, hazard, and environmental lanes of an admitted Age tick. Live-profile scoring within that plan also uses one sample evaluation instead of two. These are behavior-preserving cleanups; no provider rates or budgets were raised.

NeoForge decision

The project currently develops against NeoForge 21.1.251 for Minecraft 1.21.1. The official 21.1.259 changelog lists mostly loader/Mixin dependency updates, a GUI slot-index API change, and targeted fixes since 21.1.251. None addresses a known Rivencraft defect. Upgrading the development and minimum runtime version during this acceptance gate would force an additional optional-integration test pass for little clear benefit. Keep 21.1.251 for 0.6.0.0; evaluate 21.1.259 in a separate later slice with Create/Ponder, Immersive Portals, Dynamic Dimensions, JEI, and the season/biome integrations. This is a release-risk judgment, not a claim that 21.1.259 is incompatible.

Gate status

  • Required implementation issues #63–#73: closed.
  • Known unsupported effects and broader save compatibility: explicitly scoped above, not counted as working Milestone 6 behavior.
  • Candidate ./gradlew build --offline --no-daemon --quiet: passed; the compiler reported only existing GameTest helper deprecation warnings. Local JAR SHA-256: 6eed828156dd1e2679b013c3c5bf8e692a20d9ab80ae27417b3cafe1c26422c7.
  • Player in-game acceptance of completion candidate: reported pass on 2026-10-12; individual optional-mod and multiplayer matrix rows were not separately signed off.
  • Gitea V0.6.0.0 release: published with changelog and jar; downloaded asset SHA-256 matched the local build. Issue #74 and Milestone 6 were closed with all 12 milestone issues closed and zero remaining open.