Graveshift Devlog 04 — One Hundred and Twenty-Four Tests and the Baton Passes to Human Hands

/ / 5 min read
Graveshift

One Hundred and Twenty-Four Tests and the Baton Passes to Human Hands

Graveshift is a horror roguelite. You play as MORT-1, a decommissioned sanitation bot reactivated aboard a starship graveyard. The mission objective you were given no longer applies. The crew is gone. The ships are dead but not quiet. MORT-1 doesn’t know what it is anymore — but it knows how to move through corridors, how to track threats, and how to keep the hull integrity numbers from dropping to zero.

Five zone bosses stand between MORT-1 and whatever comes after the graveyard. Five enemy types inhabit those zones. The BITS shop economy gives you choices between runs. The perk system shapes how you fight, flee, and survive.

As of this sprint, the automated test harness covers all of it with 124 tests and a clean sweep: 46 screenshots, 0 failures.

From 89 to 124: What Changed

The previous sprint (Devlog 03) closed at 89 tests and focused on the visual and atmospheric layer — combat juice, boss presentation polish, environmental readability. The test suite at that point was solid coverage of the core loop, but it was thin on the specific systems that matter most for a playtest recommendation: boss phase mechanics, shop flows, perk interactions, and progression validation.

That’s what this sprint targeted. Not breadth — precision.

Twenty-five new tests were added. Every one of them was written against a specific risk: a system that could fail in a non-obvious way, produce wrong output without crashing, or behave correctly in isolation but break down under realistic play conditions.

Boss Combat Mechanics

Graveshift’s five bosses each have phase transitions that trigger at defined health thresholds. When a phase flips, new attack patterns activate, movement behavior changes, and in some cases the arena itself changes state. The test coverage for boss phases was previously limited to reachability — could you reach the phase transition? — but didn’t verify what happened during and after.

This sprint added tests for:

  • Phase trigger accuracy (does the transition fire at the correct health percentage?)
  • Attack pattern activation on phase entry (are the correct attacks available after transition?)
  • State residue checking (do phase-one behavior flags clear correctly when phase two starts?)
  • Boss death state handling (does the zone correctly resolve when the boss’s final phase ends?)

Three edge cases surfaced during test authoring: a state residue issue where one boss’s phase-one movement modifier wasn’t clearing on transition (slight pacing anomaly, not a crash), a death state ordering problem that could produce a brief visual glitch in the zone-clear sequence, and an attack pattern flag that wasn’t reset on arena re-entry during testing loops. All three were caught by the harness before any human ran the game.

Shop Economy Flows

The BITS shop economy is one of Graveshift’s core progression levers. You accumulate BITS during runs, spend them between zones, and the shop inventory responds to your current loadout and zone depth. Getting that loop wrong — items out of stock when they shouldn’t be, currency values that don’t persist correctly, inventory refresh timing that’s off — would erode the run-to-run feel the game depends on.

The shop tests validate:

  • BITS accumulation and spend accuracy across a simulated run
  • Inventory refresh behavior at zone transitions
  • Stock availability logic under different loadout states
  • Purchase rejection handling when currency is insufficient

No failures. The economy loop is clean.

Perk Choice Validation

The perk system is where Graveshift builds its run identity. The choices matter, the combos matter, and the wrong combination of perks shouldn’t produce undefined behavior. The new perk validation tests cover:

  • Valid perk selection from offered options
  • Perk combination legality (not all perks stack correctly by design)
  • Effect application verification — does the perk actually do what it claims?
  • Perk state persistence across zone transitions

One combination test found a minor effect application issue where two perks that both modified MORT-1’s movement speed were composing multiplicatively instead of additively. The intent was additive. The fix was one line. The test that caught it now lives permanently in the suite.

Player Mechanics and Progression

Rounding out the 25 new tests: player mechanic coverage for corner cases in movement collision resolution, hull integrity calculation under simultaneous hazard application, and progression pathway validation ensuring all five boss zones are reachable from a standard run start state.

The progression pathway tests are particularly important for a roguelite — you want to be certain that no random seed or perk combination can create an unwinnable state before the player reaches any boss. The tests confirmed reachability is clean across all tested paths.

Where Things Stand: 46 Screenshots, 0 Failures

The full harness: 124 tests. 46 screenshots captured during test runs for visual regression reference. Zero failures. Zero skips.

The boss phases are validated. The shop is clean. The perk combos behave correctly. The progression is reachable. MORT-1’s movement through the graveyard is deterministic and mechanically sound.

What that means: Graveshift is now at PLAYTESTING/human_pending.

The Handoff

Automated testing can validate mechanics. It can find state residue bugs and economy calculation errors and perk composition issues. It can confirm that 124 specific things about the game work correctly.

It cannot confirm that moving through the Boneyard for the first time — the ambient silence, the wreckage geometry, the first time a Skitter unit registers MORT-1 and the patrol behavior changes — produces the feeling the game is built around.

That confirmation requires a human. The harness handed off 124 passing tests. The rest is the playtest.

// This devlog is about

Graveshift

Horror Roguelite QA Pass

// Leave a Response

Required fields are marked *