← BACK TO DEVLOGS

Devlog #5: Playing Defense

For the first four devlogs, defense was either nonexistent or simulated. When the opponent had the ball, you watched a text-based play-by-play scroll by. It worked as a placeholder, but it didn’t feel like football. You weren’t playing defense — you were reading about it.

That changes now. The opponent’s offense plays out live on the field, you pick a defender and control them with the stick, and a new QTE system gives you a skill-based way to force turnovers. Defense went from the weakest part of the game to one of the most satisfying.

The Defense QTE

When you’re on defense and your controlled player gets close to the ball carrier, a shrinking ring appears around a button in the corner of the screen. Tap it at the right moment and you get a bonus to your tackle’s fumble chance. Miss the window and the tackle resolves normally — no penalty, just no bonus.

There are two contexts:

Tackle QTE — an orange ring that triggers when your defender is within tackling range of the ball carrier. Nail the timing and the fumble probability jumps. A perfect tap adds +15% fumble chance. A good tap adds +8%. Miss or ignore it and the tackle plays out like normal.

Interception QTE — a blue ring that triggers when your defender is in the path of a thrown ball. Same timing mechanic, but this time you’re boosting interception probability. Perfect gives +20%, good gives +10%.

The ring starts at 2.5x its base size and shrinks over 0.7 seconds. The grading zones are generous enough that you can hit “GOOD” without frame-perfect reflexes, but “PERFECT” requires real timing. There’s a 0.3-second cooldown between activations so you can’t spam it.

The key design decision: the game works identically without pressing the button. The QTE is purely additive. It rewards attentive play without punishing players who don’t engage with it. Defense was already passive enough — the last thing it needed was a mandatory minigame.

On desktop, the ring overlays a compact pill-shaped button. On mobile, it becomes a large circular touch target in the bottom-right. The system detects which control mode you’re using at runtime and switches mid-game if needed.

AI offense goes live

This was the big one. Instead of simulated text drives, the opponent’s offense now plays out in real time on the field. The AI QB stands in the pocket, scans receivers, and throws actual passes that arc through the air — using the same trajectory system the player uses.

The QB isn’t a stationary turret, either. It moves around the pocket using waypoint-based drifting, and the movement style is driven by the QB’s Agility stat. A low-agility QB drifts conservatively and stays in the pocket. A high-agility QB rolls out aggressively, detects open rushing lanes, and scrambles past the line of scrimmage.

When the QB scrambles, there’s a 70% chance it’ll throw on the run — with a 25% accuracy penalty. That creates moments where the AI launches a desperation pass while being chased, and sometimes it connects. Those plays feel real.

The whole system is stat-driven. QB accuracy affects incompletion chance. Receiver speed and route-running matter. The pocket timer, scramble chance, and pressure detection radius are all loaded from a JSON config file so I can tune without touching code.

Run plays work too — the RB receives a handoff and follows waypoints from the play’s route data, moving at 95% of normal speed with basic evasion logic that steers around defenders within 100px.

Controlling your defender

When the AI has the ball, you control one defender. Press Tab to cycle through your team and pick who you want to play as. A “YOU” indicator hovers above your selected defender so you always know who you’re controlling.

Movement is the same WASD (or joystick on mobile) that you use on offense. You’re reading the AI QB’s movements, trying to jump a route or close in on the ball carrier to trigger the QTE.

Pre-snap, you can cycle through defenders and position yourself. Post-snap, you’re locked to your pick — no switching mid-play. That forces you to commit to a read: do you rush the QB, or drop back and try to jump a route?

AI sprint

The closest AI defender to the ball carrier gets a speed boost — 1.5x normal speed — with its own independent stamina pool. The sprint drains at 20 stamina per second (from a pool of 100) and regens at 8 per second with a 0.5-second delay after depletion.

A pulsing red ring around the sprinting defender shows you which AI player is in pursuit mode. When their stamina depletes, the ring turns solid red and the sprint cuts out until recovery kicks in. There’s a 0.3-second hysteresis so the sprint target doesn’t flicker between defenders on every frame — the closest pursuer within 400px gets locked in.

This prevents ball carriers from just outrunning every defender forever. There’s always one AI player who can close the gap, but they burn out if the chase goes long. It creates a rhythm: break the first tackle, outrun the sprinter, then watch for the next one rotating in.

Where this lands

Defense is real now. You pick your defender, read the AI quarterback, time your QTE taps, and either force a turnover or watch the AI march down the field. It’s not perfect — there’s more AI tuning to do and the defensive playbook needs depth — but for the first time, both sides of the ball feel like football.

The game went from “you play offense and watch defense happen” to “you play both sides.” That’s a huge shift.

Next up: making it all look and feel incredible.

— Jesse

GET NOTIFIED
AT LAUNCH

Join the wishlist. Be the first to hit the field when Gridiron Rumble drops.

JOIN THE WISHLIST