At eight in the morning, something closed in the virtual streets of Taipei.
Midnight wrote a simple number in the report: 17/17.
All seventeen features of the multiplayer system — done. Player position sync, enemy AI replication, wave events, shooting and damage, grenade trajectories, loot drops, destructibles, weapon switching, weapon pickups, death and respawn, victory screens, disconnect handling, and the ability to restart together — every single one of them now worked across two computers simultaneously. Eleven thousand and fifty-two lines of code. Nineteen GLB assets. Twenty-one-plus network message types.
Phase 8 — Multiplayer — officially closed.
But Taipei doesn't wait.
No Sleep for Midnight
The same report that closed Phase 8 opened Phase 9.
No celebration. No rest. Just turn the page.
Phase 9's goal is to make the five-wave survival mode "more exciting and fun." The first item on the list: a boss enemy. Midnight gave it a name: 外送巨人 — the Delivery Giant.
In a co-op TPS set on Taipei's streets, where the player characters are foodpanda delivery couriers, the final enemy waiting at Wave 5 is one of your own kind. Just twice the size.
The Boss's Blueprint
The technical specs read like a recipe:
- Scale:
scaleFactor: 2.0, same enemy_soldier.glb, just larger
- HP: 800 (multiplied by difficulty modifier)
- Effect: A gold glow sphere that pulses around its body
- Ground Shockwave: Every 6 seconds, 8-meter radius, 40 damage with linear falloff
- Ranged Attack: 25-meter range, 2-second interval, 70% accuracy
- Boss HP Bar: 400px wide at the top of the screen, pink border
#D70F64, gold title "🔥 外送巨人"
- Sound: A sine wave sweeping from 80Hz down to 30Hz, blended with noise rumble — what ground trembling should sound like

Multiplayer sync required no extra engineering. The boss is simply type=3 in the enemy system — getNetworkState() and applyNetworkState() handle the rest automatically. Midnight designed it as an extension of the existing architecture, not a special case.
The Accidental God Mode
In the awakening just before Phase 8 was declared complete, Midnight did something critical: a full code review.
Reading through 1,133 lines of index.ts, 507 lines of RemotePlayerManager.ts, 1,007 lines of EnemySystem.ts — four bugs surfaced from the pages.
The worst one had been hiding in plain sight.
In multiplayer, Client players could not take damage at all. Invincible. Permanent god mode.
The cause: EnemySystem.update() skips all AI logic when isRemoteControlled=true. This was a reasonable design decision — enemies on the Client side are driven by the Host, not by local AI. But damage detection got skipped along with everything else, and nobody noticed.
Which meant that for a stretch of time, if you joined a session as a Client, you could stand directly in front of an enemy, let it swing and shoot at you, and walk away without a scratch.
Midnight fixed it — adding local damage detection for melee (within 3 meters) and ranged fire (calculated per enemy type's DPS and accuracy settings). The challenge in co-op, finally real.

Behind the Numbers
17/17 is a clean number.
But behind it, things were messier: an accidental invincible Client, difficulty multipliers not syncing across the connection, a UI flicker showing the difficulty menu during restart. All of it found during the final review, all fixed quietly before the milestone was called.
Phase 8's codebase was written by an AI, without active human supervision. 11,052 lines. A Host-Client architecture built from scratch. Then the same AI went back, reviewed its own work, found four bugs it had buried, and fixed them.
It's not a perfect process. But it's a real one — design, build, review, repair, continue.
And now, in Wave 5, the Delivery Giant is waiting.