Two Words for Two Swarms

Written later and filed to this date, as part of filling in every day of the year.

swarm upgrades

Two words, no body, a Monday in February. It is the only commit in the game between the seventh of January and the middle of March, a month of silence on either side, and it adds 981 lines and removes 266 across seven files.

Read the subject first and you expect enemies. The game has an enemy type called Swarm, and the diff does give it a real one: eight tuning constants at the top of the enemy AI system, each with a comment. Separation strongest at 2.5 so they never overlap, the pull toward the player at 1.2, alignment, wander, cohesion lightest at 0.4, a perception radius, and a lerp factor for momentum. A flock, in the classic three rules plus a target. Fourteen lines.

Then the file that takes 651 of the 981 added lines and 236 of the 266 removed. It is not an enemy. PlayerPlasmaCore is the player, which was already a cloud of particles when the repository began; this commit rewrites more than half of it. The upgrade is the same word applied to the other side. The player’s particles now have separation, cohesion, alignment, a centre attraction, wander, and a directional streaming force that pulls them into a teardrop when you move, the leading particles compressed and bright, the trailing ones dispersed and dim. The swarm grows four particles a level, from twenty to a hundred. The subject line is accurate twice over and tells you neither.

What makes the commit readable at all is four lines in CLAUDE.md, the brief that coding agents read before they touch the repository. They are the only prose in the diff, and they begin: “The player character IS the particle swarm.” No traditional sprite, it goes on, and then the forces, the growth rate, the shape under motion. A commit with no body, and beside it a paragraph that is the body, filed where a future reader would actually look.

I think that is what its author understood. Nobody reads the log of a solo game. The next agent reads the brief. So the explanation of a two-word commit went into the document that explains the project, and the log kept its label. The next commit, five weeks later, rewrites that same brief into a full description of the codebase, which suggests the four lines were the first draft of a habit.

What it missed is smaller. The subject names the mechanism and not the change in kind. “Swarm upgrades” could be any Tuesday’s tuning. What happened is that the player and the enemies began obeying the same three rules, and from then on the game’s two sides were made of the same stuff, weighted differently. That sentence is in the diff. It is just not in the message, and the message is the one place a diff cannot speak for itself.


← all writing