A Legend in a dark suit and a glowing cyan cape flies over Catena's rain-soaked rooftops at night.

Dev log ·

The run pays and the street has a kerb

Finished dives started paying XP and creds, capped per account per hour, and the city got new music and streets with kerbs.

Shipped in fb3ca4ef

This is most of the other game work from Aug 20 to Aug 27. Combat has its own post.

Aug 20: entering the world, and dives that pay

ENTER THE WORLD used to open a new tab with no character in it. It now loads the world in the same tab, as your filed Legend, at the Junction.

Nine presses of Continue without a filed Legend used to drop you into a dive as a made-up level 20 character. Now Continue waits for one. New accounts no longer see a fake save (HALFLIGHT, 48,120cr) on the title screen. The dive HUD shows your alias and travel line, where it showed the placeholder NOMEN.

A finished dive used to pay nothing. Now the server prices it and pays XP and creds. A fresh guest account went from 0 XP to Level 3 in two runs.

Aug 23: the score and the street

The music did not sound like a superhero game. It had been ambient pads over held root notes with no rhythm section. It now has drums, a bassline, a five-note hero motif that recurs across 14 districts, and combat music that builds through four stages. A second pass stopped the hook shifting key with the chord under it, so 12 of 15 themes went from stating it in two or three keys to one. On the title screen the lead went from 26.8 dB under the mix to 1.5 dB under. In the Lattice theme an extra note still lands between the hook's second and third notes, and one fix for that was reverted.

Wrecks were drawn in the same charcoal as the wet street, so a destroyed market row looked like an empty one. They are now lighter rubble built from tilted slabs, 8 classes with 3 states each, and something in the wreck still burns. Debris stays 6 to 14 seconds by quality tier, where it used to vanish after 2.4. Breakable objects went from 45 to 463. A break is still an instant swap with no collapse animation.

District signs took each viewer's accent colour, so two players on one street saw different colours. In a matched two-player render, pixels differing by more than 6% fell from 391,025 to 5,901. The rest is each player's own character and its reflection.

Props were scattered with no logic, and characters seemed to float. Streets now have a cross-section for the first time: footway, kerb, gutter and carriageway. A 1.2 m paving grid near the player gives the ground a size you can read, and characters get a contact shadow. Lamp posts had stood 0.6 m inside the road. Props now pass five checks before placement, among them level ground and staying off the road. Violations across three hubs fell from 465 to 1. We checked the wrecks and streets in a software renderer, never on a real graphics card.

Aug 27: a cap and three bugs

The dive fight runs in the browser, and the server pays on the browser's report. A script sending the largest acceptable report as fast as the API allowed could have taken about 9.86 million XP an hour. The server now caps payouts per account at 24,000 XP and 11,000 creds an hour. If the limiter itself fails, the run pays nothing. The cap is about 1.9 times the 12,480 XP an hour of back-to-back perfect runs, and all of it can still be claimed in a few seconds. What closes this is running the fight on the server, which has a room for it that nothing joins yet.

We also fixed three bugs found by measuring the live site. Reduced-motion players never saw damage numbers, the kill feed, the toasts or the flight readout, and their hitmarker stuck on, because one stylesheet divided animation times by 0.001, turning 760 ms into 12.7 minutes. The base character model was downloaded twice, 12.3 MB of a 17.7 MB first load. The loaders now share one cache. The top desktop quality tier drew a darker picture than the mobile tiers, so its exposure went from 1.62 to 2.02.

The cap and these three fixes are committed and not deployed.