Skip to content

Field notes · 19 entries

Devlog

Written the same week the work happened, dead ends included. Some of those dead ends cost days and left nothing behind but a rule: never do it that way again.

Latest

The pursuit is closed, not finished

On 30 August I wrote that the pursuit was frozen and would not be touched again. That lasted three weeks. It reopened on 22 September, was rebuilt in stages, and on 3 October was closed for real, with what it still does not do written down beside it.

Topicspursuit, milestone, honesty
Read the entry

2026

  1. The wrong light

    The new patrol-lights key switched on a light, and the log said it was the roof bar. It was the red sign on the side of the car. For weeks, our own notes had been calling two different lights by the same name.

    Topicsfleet, siren, naming, screenshots
  2. The crash was in the search

    Four crashes in one day, all inside the physics engine, each in the exact second dispatch went looking for somewhere to put the next call. The search stopped asking physics anything, and ninety-two searches in a row went through clean. Why physics broke is still a theory.

    Topicscrash, physx, dispatch, measurement
  3. He never walked to the door

    This site said the detainee got out at the precinct, walked to the door and faded into the black. He walked nowhere and faded nowhere: he stayed in the world. The fix was to put him away the way the game puts away a body.

    Topicsarrest, hand-over, correction
  4. Sixteen days without a call

    For sixteen days the radio never called on its own, and this site kept saying it did. The culprit was a fix for a stutter: it delayed one step of the search by a single frame, and by then a flag that step needed had already been switched off.

    Topicsdispatch, regression, silent failures, correction
  5. Nobody gets up

    Four hours and thirty builds went into getting a downed suspect back on his feet. It cannot be done: the game does it for nobody. The arrest only started working once we stopped arguing with how he had fallen and changed how he falls.

    Topicsarrest, dead ends, measurement, method
  6. The fix was the bug

    The dispatch card stopped appearing. It was deleting itself halfway through being drawn, and the code doing the deleting had gone in a week earlier as a fix. It only became dangerous once we made it work.

    Topicshud, dead code, instruments, method
  7. The swerves were ours: one flipped sign

    The last entry ended on a refresh that only fired with the player in front of the getaway car, which never happens in a chase. The truth was worse and simpler: the condition was not missing. It was backwards.

    Topicspursuit, one-character bugs, measurement
  8. The destination was underground

    The oldest bug in the project: the getaway car turning in place, hitting walls and never leaving the block. It was being told to drive to a point up to 218 metres below itself, and the engine has no route to a buried point.

    Topicspursuit, measurement, oldest bug, hot reload
  9. Nobody was killing the escape order

    I spent days hunting whatever was cancelling the getaway car’s order to run, because our own log called every ending a death. Half of them were the order succeeding two seconds after it was issued, which is worse than being cancelled.

    Topicspursuit, ai commands, telemetry, measurement
  10. The right guard, one phase too late

    Last week I wrote that if the crash came back, the theory was dead. It came back. The check I had added was the right check, asked in six places that all turn out to run after the damage is already done.

    Topicscrash, physx, diagnosis, correction
  11. Two crashes, one name

    Two weeks of crashes I had treated as one problem were two, with nothing in common but the game. A Reddit comment led me to fifty-six hidden crash reports, and the case was closed by a number I had been printing all week without reading.

    Topicscrash, physx, diagnosis, instrumentation
  12. The car wasn't fleeing. It was patrolling.

    Five days tuning the top speed and cornering of a getaway car that drove like it had somewhere boring to be. The order to run was real, and correct, and had been waiting in a queue the whole time behind one we never took away.

    Topicspursuit, ai commands, dead ends
  13. The GPU crash that wasn't ours

    A crash that looked like the mod wasn't the mod. Two things proved that much: a seventeen-second jump in the log, and the fact that scripts can't reach the layer where it happened. The cause I pinned on it next was wrong, and six days later thirty-eight crash dumps said so.

    Topicscrash, diagnosis, hardware, correction
  14. Ask the engine before you write the system

    Four days of pursuit bugs, all the same mistake: we had written a system to do a job the game already did. The suspect now comes from the game itself, and the bugs left with our code. What I first said the car did once it was there turned out to be wrong.

    Topicspursuit, prevention system, rules
  15. Central de Flota: eight rows and no entry animation

    The fleet panel shows all eight units at once, nothing to scroll, every row measured to fit exactly. And it opens with no entrance animation, on purpose: animating it in once destroyed the popup outright, and that wasn't worth the risk.

    Topicsui, ink, layout
  16. A patrol car that arrives instead of appearing

    The patrol car now arrives the way any of your own vehicles does: it's genuinely yours, it doesn't shove you into the driver's seat, and it turns up looking like the rest of the game. The price was wiring up the siren separately.

    Topicsfleet control, vehicles, tweakxl
  17. There is no uniform to put on

    The uniform the game's own officers wear can't be put on: it's a fixed part of how those characters look, not clothing. The answer was five ordinary garments already in the game that, together, come close enough.

    Topicsuniform, tweakdb, dead ends
  18. Duty mode took five attempts

    Going on duty should stop the city treating you as a target. For four attempts it didn't: the stars kept coming back on their own. What finally worked was switching the whole prevention system off instead of fighting what it produces.

    Topicsduty mode, prevention system, dead ends