A boss that predicts you has to show its work

The first draft of this article made the Warden sound better than it played.

The underlying mechanics were real. The Warden modeled the player’s movement, placed traps from that model, replayed old paths, and lost confidence when its guesses failed. But the article explained what those systems meant. The game mostly showed attacks.

I read the draft, launched the chapter, and started listing what the prose knew that the player did not. The live prediction existed as a float but was never drawn. Five specialized readers had names in the C++ comments but not in the game. A PREDICTION bar moved without explaining that down was good. The most distinctive attack could remain hidden from anyone who played well.

The model was working. The encounter was not showing its work.

Over the next hour, I made two passes through the fight to expose the Warden’s state and consequences. The process taught me a useful pre-release test: if an article can make a mechanic clearer than the game can, the article has probably found a design problem.

A regression-harness run after the visibility pass: observation, committed predictions, the old-path ghost, and the LOGIC FAULT.

All three clips were captured by the automated regression harness. The on-screen AUTOMATION — UNRANKED label identifies those runs.

The boss on paper

Vorticore is a one-thumb arcade game set inside a tube. You steer around its wall while hazards arrive from ahead. By the late game, a player has spent a long time learning the same basic grammar: find the opening and move into it. Making the openings smaller or faster would only test the same skill harder.

I wanted the Warden to ask a different question. Instead of attacking where the player is, it should attack where their habits suggest they will be.

The central model is deliberately small:

Reduced to its essentials, the regular prediction is:

guess = angle
      + dodgeBias * 0.55
      + steeringMomentum * 0.45;

Every 0.8 seconds, the Warden compares a prediction with the player’s new position. A close guess raises confidence slightly; a bad one lowers it. When the prime attack commits to a trap, it uses the same habits with a longer lead and shows a one-second shimmer before the trap becomes solid.

There is no training process, server call, or profile that survives the encounter. It is rule-based, session-local adaptation with a small amount of seeded aim jitter. With the same seed and player inputs, the encounter is reproducible. Those limitations are important: the player is supposed to form a useful mental model of the boss while the boss forms a very small model of them.

What the article could see

The first draft described the Warden from the source code outward. Reading it made every cause and effect obvious. Playing the build revealed a different picture:

What the article made legibleWhat the original build communicated
The current predicted angleNothing until a trap committed
Five named counter-readsA sequence of anonymous attacks
Why confidence changedA bar moving without explanation
A replay of the player’s old pathNothing, unless confidence first climbed above 0.75
Catches would be repaid at the faultA fixed 8,000-point bonus with no per-catch bank

From the player’s side, a hidden model and random targeting can feel remarkably similar. Most of the behavior already existed; the missing work was exposing its state and consequences.

Show belief before consequence

The first change was to render the live prediction.

A small reticle now eases toward the model’s rolling guess on the tube wall. Its color shifts from cold blue toward red as confidence rises. During the Warden’s observation phase it updates on the same 0.8-second cadence used by the fight, but no score is attached yet.

The reticle is not an exact preview of the next trap. It shows the direction of the model’s belief. Once an attack commits, the eye’s beam and the shimmer mark its fixed lane. Keeping those states distinct lets the player encourage a direction, wait for the lock, and then leave.

The old-path attack needed the same treatment. The Warden records one angle every tenth of a second and, at high confidence, can replay the line from ten seconds earlier as a damaging ghost. In the original build, a player who quickly starved the confidence meter might never see it.

Now the final 3.4 seconds of the observation phase replay that line once, harmlessly, under IT HAS YOUR LINE. If the ghost returns later with teeth, it uses the same visual language. The mechanic is introduced in a safe state before it becomes a threat.

The observation phase now teaches the rolling estimate, the meter's goal, and a harmless replay of the player's old path.

The confidence meter also received a plain instruction: IT LEARNS YOU — STARVE IT. A lagging copy of the value leaves a pale chip when confidence falls and a red surge when it rises, making the direction of each change legible.

The bright line is the player's route from ten seconds earlier. The harness survives by choosing a new route.

Explain what caught you

One predictor is easy to exploit once its rule is understood. The Warden therefore has five additional fixed reads. One projects the player’s current dodge. Another reads the correction after it. The Inverse bets that the player will reverse their usual habit. The Anchor simply targets the current position. The Echo uses a path from 2.5 seconds ago.

They are not five more learning systems. Each is one small arithmetic opinion about the same movement state, and all six share the same confidence meter.

The counter-reads already had distinct colors and rhythms, but their names and meanings existed only in the code. Now each one introduces itself at its first lock. If it catches the player, the HUD names the cause: ADJUNCT LED YOUR DODGE, ANCHOR CAUGHT YOU HOLDING, or YOU CROSSED YOUR OLD LINE. A player cannot adjust a habit if the game only reports damage.

Misses drain the shared confidence value; catches feed it and remove heat. A catch also adds bonus points to a visible HOARD counter. When confidence reaches zero, the Warden enters a LOGIC FAULT, and its score payout includes exactly the bonus points its catches banked.

That last part did not exist before the article. The old build always paid the same fault bonus. The phrase “it pays back what it hoarded” was a metaphor that the code could not cash, so I added a per-catch bank and made the counter visible.

The interface changed the fight

I initially classified this as presentation work. That stopped being entirely true.

All five counter-minds once joined the first volley. Naming them made the problem obvious: five introductions arriving together were not introductions at all. The sequence changed so the prime attacks alone first, then one new reader joins each volley until the full group is present on the sixth. Making the hoard literal also added new reward math.

Those are design changes, not presentation fixes, and they have not yet been validated by human playtesting. A clean build can show that they work as specified; it cannot show that the new pacing and reward feel better.

What the bot can prove

The desktop build includes an autopilot that can start directly at the Warden, cap its steering rate, fast-forward the simulation, and log the encounter to CSV. It is useful for checking that the ending remains reachable and that a timing change has not broken the fight.

It is not a human model. Its Warden routine reads exact committed attack geometry every simulation step. That makes it a useful test harness, not a simulation of human perception or reaction time. It cannot tell me whether being predicted feels fair, whether six readers are understandable, or whether the new pacing is enjoyable.

The article found exactly the kind of failure the bot could not. The encounter was reachable and mechanically complete, but it was withholding the information that gave those mechanics meaning.

Writing as design QA

Marketing copy should not get to invent a better game and order the code to catch up. The useful test is narrower.

For every sentence describing a player-visible experience, I can now ask:

The answer can be to improve the game, qualify the sentence, or delete it. The article is evidence, not authority.

In this case, the Warden did not need a smarter prediction model. It needed to show the player what it believed, when that belief became a commitment, why a read succeeded, and what a failed read cost.

The aim is to change the player’s question from “Where is the safe opening?” to “What have I taught this thing about me?” I do not yet have human evidence that the new interface succeeds. That is what the beta is for.

The Warden is one chapter of Vorticore, a one-thumb arcade descent in which the tunnel keeps changing the rules. If you would like to test whether this design actually works, the private beta is open.