Four identities, four dashes
The v0.71 milestone closes with four alpha protocols playable end-to-end: CORE-1, Sentinel, Seeker, Spectre. They each have a passive, a weapon, an active ability, and a dash — and the dash is where the identity lands hardest. Press the button; what happens next is the class.
The press-the-button moment
CORE-1’s dash is the baseline. Directional, short immunity window, nothing exotic. It’s the vanilla against which every other dash is measured, and it’s the one you learn the game on. CORE-1 is the scavenger — the passive pulls cycles and motes toward you from a wider radius, and the active drops a pulse grenade that knocks enemies off you. Dash exists to get you out of a bad corner.
Sentinel presses the button and gets plated. Full damage immunity during the dash, plus a flat armor bonus that lingers the full duration. You dash toward trouble, not away from it. That pairs with the rest of the kit: an entrenched passive that adds armor while you’re standing still, a minigun that spins up and keeps firing, and a deployable barrier that blocks projectiles and forces enemies to reroute around it. The whole protocol wants you rooted and grinding; the dash is the one moment you get to move without giving up the tank.
Seeker presses the button and disappears. The dash drops your aggro footprint to zero; enemies chasing you lose interest, stop tracking, drift back to patrol. You can walk past a heavy that was three seconds from hitting you. The stealth breaks the instant you swing a weapon, fire the active, or use a consumable, so the timing matters. It’s the first player-side consumer of a stealth primitive we shipped back in v0.67 for decoys, and it feels great in practice — dash, reposition, strike from a flank.
Spectre presses the button, dashes forward, and gets one free teleport back. The spot you launched from is anchored for a short window. Press dash again inside that window, you snap back to the anchor. Two of the window’s uses: bait a sniper shot from cover, teleport back before retaliation; push to melee a low-HP target, teleport back before the rest of the room closes. It doesn’t cost a charge — it’s the second half of the same action. Balancing it took a full recharge-time bump from three-and-a-half seconds to eight, because “free retreat” is strong.
The drone, and the thing underneath it
Spectre’s active is a surveillance drone. Throw it, it parks, and every enemy inside its radius gets marked. Marked enemies take fifty percent more damage from everything you fire at them. The drone itself doesn’t shoot. It just illuminates.
Under the hood this is the first live customer of a foundation we laid at the start of the milestone: a way to write enemy-side effects as data rather than code. The drone writes a damage-amplifier row onto enemies in its radius; enemies aggregate those rows into a single multiplier they read at the damage site. Enemies also listen for the row’s arrival and tint themselves so the player can see who’s lit. Zero spatial scans at damage time — the effect is already aggregated, the enemy already knows.
The reason this matters going forward: every future enemy-side condition (slows, DoTs, damage resistances, crit vulnerability) can ship as a new effect definition and a new authored row, not a new system. It’s the same story as player effects, one layer over. Write the data, read it where it’s needed, no new plumbing.
Crits were rolling — nobody could tell
A quiet bug we’d been sitting on: crits were already happening. The weapons had authored crit chances, the handlers rolled dice, and the damage landed multiplied. Luck threaded through correctly from the stat pipeline; we verified that in a scenario test months ago. But on screen, a crit read as a normal hit. Same number size, same color, no flash, no shake.
v0.71.20 fixes the feedback side. A crit now prints a damage number that’s fifty percent larger, fake-bolded, with a tinted backing plate behind it so it reads against any background. The enemy flashes bright for a tenth of a second. The screen shakes, with intensity scaled to the damage of the hit — a Spectre full-charge crit rattles; a minigun tick at the same chance feels lighter. The cap is there so a big number doesn’t jackhammer.
The fix was entirely presentation — zero new stats, zero new systems. The hard part was discovering during planning that the “we need to wire Luck to the roll” framing we’d been carrying for weeks was stale. Luck had already landed. All four weapon handlers already read a crit chance that includes it. The work was one comment sweep to delete the future-tense TODO notes, and one slice to make the visible layer catch up.
What’s next
Alpha is four protocols. Swarm and Flux are queued for post-1.0, with their own milestones waiting. Before any of that, there’s a balance pass landing in v0.72 — numbers tuning across all four protocols now that they’re all live and comparable, plus a combat-flow audit for room pacing. After that: the Steam page draft, the first public alpha build, and whatever falls out of playtesting the four identities against real players for the first time.