Graveshift Devlog 03 — Combat Juice, Boss Theatrics, and Eighty-Nine Tests That Watch the Boneyard

/ / 10 min read
Graveshift

When Devlog 02 wrapped, Graveshift had five zones, five bosses, and a sanitation bot with a flashlight. The bones were solid. But bones don’t earn PLAYTESTING. The Dark Factory’s gate requires a game that feels finished — where combat has weight, death has feedback, and every system has a machine watching it for regressions. This devlog covers the sprint that got Graveshift through that gate.


Combat Juice — Making the Arc Welder Bite

MORT-1’s arc welder was functional. Pull the trigger, the projectile hits, the enemy takes damage. Mechanically correct and emotionally flat. The polish sprint fixed that.

Muzzle flash. Every shot now spawns an orange point-light glow at the barrel — a two-frame burst that paints the nearest wall geometry and fades before the next shot registers. It’s subtle at 60fps but obvious when it’s missing. The surrounding tiles catch the light for exactly long enough to sell the discharge.

Directional ember sparks. On fire, a particle fan of ember sprites ejects opposite the aim vector. The spread is randomized within a 40-degree cone so consecutive shots never look identical. The embers inherit partial velocity from MORT-1’s movement, which means strafing while firing produces a trailing arc of sparks instead of a static puff.

Hit knockback. Enemies now receive a velocity impulse on hit, scaled by their mass class. Standard hostiles slide back visibly. Heavies flinch in place. The knockback includes a wall check — if the impulse would push the enemy into solid geometry, the distance is clamped and the remaining energy converts to a brief stun frame. Bosses resist knockback entirely but still play a hit-react animation so the player sees confirmation.

Kill confirmation. On lethal hit, the dying enemy flashes white for one frame before the death sequence plays. At combo milestones — every fifth consecutive kill without taking damage — the flash tints green instead of white. It’s a small reward signal that costs nothing to render and teaches the player to value streaks.

The combined effect: the arc welder went from a cursor click to something that lights up the room, kicks the target backward, showers sparks, and screams confirmation on kill. Combat went from functional to visceral.


Boss Presentation — Earning the Health Bar

Graveshift’s five bosses already had multi-phase behavior trees. What they lacked was theater. A boss that quietly enters its enrage phase teaches the player nothing. The polish sprint gave every phase transition a production.

Phase transition VFX. When a boss crosses a health threshold, the game now fires a coordinated sequence: a procedural roar sound effect, a radial shockwave ring expanding from the boss origin, a screen shake scaled to boss tier, and a particle burst that seeds the arena with lingering debris. On enrage specifically, the boss sprite flickers between its normal palette and a damage-tinted variant for 400 milliseconds before locking into the enraged state. The player sees, hears, and feels the shift.

Shockwave backport. The radial shockwave renderer was originally built for C.A.G.E-9001’s specimen containment breach sequences. Graveshift borrows the core ring shader and adapts it for boss arenas — same expanding circle, same alpha decay curve, different palette. Cross-game code reuse. The Dark Factory builds libraries, not one-offs.

Health bar ghost trail. Boss health bars now render a secondary “ghost” bar behind the primary fill. When the boss takes damage, the primary bar drops instantly but the ghost bar drains over 600 milliseconds. The visual effect communicates burst damage versus sustained pressure. On hit, the health bar container also plays a lateral shake — two pixels left, two pixels right, three cycles — so the player’s eye catches the damage even in peripheral vision.


Environmental Polish — The Boneyard Breathes

Combat polish makes fights feel good. Environmental polish makes the space between fights feel real. The Boneyard needed to look like a place, not a tileset.

Zone-themed footstep debris. MORT-1’s movement now kicks up small particle clusters tuned to the current zone. Cargo Bay produces metallic flake sprites. Reactor Core emits faint ember wisps. Medical Wing scatters sterile tile chips. Engineering trails oil-dark droplets. Command Deck lifts dust motes. Each zone’s debris palette matches its lighting. The particles are cosmetic — zero gameplay impact — but they sell the floor as a surface, not a texture.

Procedural floor decorations. Rooms now seed non-interactive visual elements during generation: hull seams between tile boundaries, ventilation grates on dead-end corridors, pipe runs along walls, chemical stains near Medical Wing spawns, scorch marks around Reactor Core entrances, and rivet clusters on structural columns. All placed procedurally using the room’s seed, so revisiting a room shows the same layout. The decorations are rendered behind the entity layer, cost almost nothing, and make every room feel handcrafted despite being entirely generated.

Screen-edge danger indicators. When a hostile enemy exists off-screen, a red chevron now appears at the nearest screen edge pointing toward the threat. The chevron pulses with distance — faster when the enemy is close, slower when far. Boss-tier threats render an amber chevron instead of red. The indicators respect line-of-sight: if a wall blocks the path between MORT-1 and the off-screen enemy, the chevron dims to half opacity. No more deaths from threats the camera couldn’t show.

Minimap upgrades. Two additions. First, zone tinting — the minimap’s room cells now tint to match the zone’s dominant palette, so the player can orient by color without reading labels. Second, threat pips — red dots for standard hostiles, amber dots for bosses, and a skull marker on any room containing a boss arena. The skull persists after the boss is killed (grayed out), serving as a visited-boss breadcrumb. The minimap went from navigation aid to tactical display.


Audio and Feel — The Boneyard Sounds Right

Pause audio ducking. Opening the pause menu now fades the game audio to 30% volume over 200 milliseconds instead of cutting to silence. The zone ambiance stays present but recedes. It’s a small detail that keeps the atmosphere alive during menu interaction instead of breaking immersion with a hard cut.

Game-over stat reveal. The death screen shows a scrolling stat readout — enemies killed, rooms cleared, damage taken, combo record. Each stat line now plays a data-terminal tick sound on reveal, spaced 80 milliseconds apart. The effect sounds like a mainframe printing MORT-1’s shift report. It reframes death as a debrief instead of a failure screen.

Loot pickup juice. Picking up BITS (Graveshift’s currency) or items now triggers a layered feedback stack: a rising-pitch SFX that scales with rarity, a floating name label that drifts upward and fades over 400 milliseconds, and a rarity-coded particle burst — white for common, blue for uncommon, purple for rare. Rare pickups add a micro screen shake. The player’s reward circuit gets three simultaneous signals: audio, text, and particles.

Enemy spawn-in VFX. Enemies no longer pop into existence. Each spawn now plays a materialization sequence: a warp ring expands at the spawn point, the enemy sprite flickers at 50% opacity for 300 milliseconds, then snaps to full opacity with a brief flash. The flicker window is non-damageable, giving the player a read window before the threat activates. It’s both a visual treatment and a fairness mechanic.

Zone ambient tuning. Each zone’s background audio was rebalanced for volume consistency. Reactor Core’s industrial drone was 4dB too loud relative to Command Deck’s electronics hum. Medical Wing’s sterile ambiance was nearly inaudible. All five zones now sit within a 2dB spread, so zone transitions feel like entering a different space rather than adjusting the volume slider.


QA Harness — The Machine That Watches the Machine

The Dark Factory doesn’t ship on vibes. It ships on evidence. Graveshift’s QA harness was built from scratch during this sprint and grew from 59 initial tests to 89, backed by 40 automated screenshots.

The harness covers:

  • Combat systems: knockback impulse magnitudes, kill flash timing, combo counter reset conditions, muzzle flash duration
  • Boss behavior: phase transition thresholds, enrage VFX trigger timing, health bar ghost trail decay rate, shockwave radius
  • Environmental rendering: floor decoration seed consistency, footstep debris zone matching, minimap pip accuracy, danger indicator LOS checks
  • Audio: pause ducking volume targets, stat reveal tick spacing, loot SFX rarity scaling, zone ambient dB spread
  • Persistence: save/load integrity, run state serialization, unlockable tracking, settings persistence across sessions

The 40 screenshots capture key visual states — muzzle flash active, boss enrage transition mid-shockwave, minimap with threat pips, danger indicators at screen edge, loot burst at each rarity tier, spawn materialization mid-flicker. Each screenshot has a deterministic seed so regressions show as pixel-level diffs.

The persistence fixes deserve a mention. The sprint surfaced three save/load edge cases: run state not surviving a quit-to-menu during boss fights, unlockable flags resetting on zone transition if the save fired mid-load, and settings (VSync, reduce-flashing) not persisting across launches. All three fixed. All three covered by dedicated tests.

From 59 to 89 tests. From zero screenshots to 40. The harness doesn’t just prove the build works — it proves each polish addition works, individually and in combination.


UX Hardening — Respect the Player’s Time

VSync toggle and reduce-flashing mode. Two new accessibility options in the settings menu. VSync toggle lets the player choose between tear-free frames and input latency reduction. Reduce-flashing mode suppresses kill flashes, boss enrage flickers, and spawn-in strobes for players with photosensitivity. Both settings persist via the save system.

Mouse wheel menu navigation. All menu screens now respond to scroll wheel input in addition to arrow keys and click. Scroll up moves the selection cursor up; scroll down moves it down. Confirmation still requires Enter or click. Small change, significant comfort improvement for mouse-primary players.

MORT-1 maintenance terminal boot sequence. The main menu now opens with a terminal boot sequence — POST check, system ID, shift assignment, three-line maintenance log — before resolving to the play/options/quit prompt. It takes 1.8 seconds and sets the tone before the player touches anything. Skippable with any input.

Desk reference controls panel. The pause menu now includes a “Controls” tab that renders a desk-reference-style panel showing all keybinds, labeled with in-world terminology (ARC WELDER instead of “shoot,” MAINT TERMINAL instead of “menu”). The panel updates dynamically if the player rebinds keys.

Persistent shift log. The records screen now shows a two-page shift log tracking the player’s best runs — rooms cleared, bosses killed, total BITS collected, longest combo. Data persists across sessions. The log renders as a maintenance record printout, staying in character.

Zone flavor text and HUD hints. Entering a new zone for the first time in a run displays a fading flavor text line at screen center — the zone name and a one-sentence description. Subsequent visits suppress the text. Additionally, contextual HUD hints appear during the first encounter with new mechanics (first boss, first rare loot, first locked door), then never again. The game teaches once and trusts the player to remember.


Where the Build Is Now

Graveshift entered this sprint as a five-zone roguelite with solid bones and flat presentation. It exits as a game where the arc welder lights up corridors, bosses announce their rage with shockwaves borrowed from a different game in the portfolio, footsteps kick up zone-appropriate debris, and 89 automated tests watch every frame for regressions.

The PLAYTESTING gate is passed. The Boneyard is atmospheric. The combat is visceral. And the machine that watches the machine has 40 screenshots to prove it.

Metric Before After
Automated tests 59 89
Screenshot coverage 0 40
Persistence edge cases 3 open 0 open
Zone ambient dB spread ~6dB ~2dB
Accessibility options 0 2 (VSync + reduce-flashing)
Combat feedback layers 1 (damage) 5 (flash + sparks + knockback + kill confirm + combo tint)

Graveshift is in active development at x00f.com/games/graveshift/. All procedural. All synthesized. All teeth.

// This devlog is about

Graveshift

Horror Roguelite QA Pass

// Leave a Response

Required fields are marked *