← News  //  2026-08-22  //  v0.11.0

v0.11.0 - Ships come apart

For ten releases, Nova Protocol's ships have been assemblies of real sections. They carried local health, mass, weapons, thrust, and structural links. But when the shooting started, too much of that truth stayed behind the scenes. A hull looked healthy until a section disappeared. A thousand bullets were a thousand physics bodies. Point-defence mounts could all choose the same torpedo. The editor described parts in lists when the important fact was what those parts looked like together.

v0.11.0 makes the structure visible. Cracks deepen across wounded plating. Turrets spark and stop. A beaten hull tears itself apart from the outside in, leaving wreckage where the ship used to be. Derived skins turn bare assemblies into industrial, armoured, civilian, or salvaged craft. Gunfights move close enough to read, and every projectile type earns its identity through how it travels.

The same release also asks the engine to do less invisible work. Gun rounds leave the rigid-body simulation. Repeated visuals share their assets. Steady fixed-step work stops paying thread-pool overhead. A pristine fleet no longer renders through a damage pipeline for cracks it does not have.

v0.11.0 is the destruction and performance release

Play it in the browser or download the native build from the landing page. The complete compatibility notes are at the end of this post.

Loop planned assets/loops/news-0110-release-lead.webm A close broadside: cracks spread over the target, a turret sparks out, an outer section severs, and the opened hull drifts through its own wreckage.
The ship does not swap from intact to gone. It wears every stage in between.

Ships come apart

Damage now has a visible grammar. A section's missing health drives surface cracks, smoke, sparks, and exhaust failure. Hit locations remain local: rounds and blasts mark the part they actually struck instead of tinting the whole ship as one abstract health bar.

Eight readable stages

Cracks use eight shared levels, from pristine paint to burnt-out plate. Eight is enough to show damage deepening without minting a unique material for every section and every health value. The first level is genuinely pristine: it keeps the source material and never enters the cracks render pipeline.

A section moves through eight visible crack levels. Level 0 is pristine and keeps its ordinary material; levels 1-7 deepen toward a burnt-out surface.

Loop planned assets/loops/news-0110-damage-levels.webm One clad hull section under controlled fire, held long enough at each of the eight crack levels to compare the progression from clean paint to burnt plate.
The capture will show the same section and light at every level; the widget above explains the rule underneath it.

Damage is not only a shader. A crater records where a hit landed, nearby hits merge into one wound, and asteroid fire removes geometry from the rock itself. The surface can heal back to pristine if health is restored; the material and its performance cost heal with it.

Collapse is a process

A ship no longer waits to be deleted section by section. When its remaining structure falls below its authored collapse threshold, the outermost live parts start failing first. Detached sections inherit the ship's motion and tumble as wrecks. The peel continues inward until the root goes with it, including ring structures with no natural loose end.

The default threshold is deliberately low: five percent of the hull's as-built health. A scenario or mod can raise it for a ship that should break earlier, set it to zero for the old dismantle-everything rule, or keep a capital fighting deeper into its structure.

A collapsing ship is still the ship until it dies. Guns that remain attached can keep firing. Each section raises its own destruction event when it leaves, and the ship's defeat and destruction edges still happen exactly once. The visual sequence did not replace the scenario contract; it finally catches up with it.

Loop available assets/loops/news-0110-spine-cut.webm A piercing flank shot cuts through a ship's spine and the disconnected engine block separates into a drifting wreck.
Structure is authored as explicit mates, so a cut knows what remains one ship and what has become wreckage.

Every shot has a purpose

The old damage-resistance table tried to make ammunition types distinct through invisible multipliers. v0.11.0 removes it. A damage type's identity is now what the projectile does on its way through the target.

Kinetic is a punch; Pierce is a rake

A Kinetic round carries one damage budget. It hits hard, continues only through a section it destroys, and spends that section's health from the budget. It can punch through weak layers, but it cannot deal more damage than it brought.

A Pierce round deals less damage to each section but applies that damage in full to every layer it crosses. Travel comes from a separate penetration budget based on each layer's full health, not its remaining health. Softening a heavy part first therefore does not make it cheaper to cross. A six-layer ceiling keeps one round from raking an entire capital hull.

Both types read closing speed. Charging a target makes Kinetic hit harder and Pierce carry farther; firing while fleeing does less. An indestructible obstacle stops either one.

Kinetic spends one damage budget and stops when a layer survives. Pierce deals its full hit to every crossed layer while a separate power budget and six-layer ceiling decide how far it travels.

Loop planned assets/loops/news-0110-round-types.webm A synchronized split shot against the same layered target: the Kinetic slug punches through what it destroys and stops, while the Pierce needle marks every section along its line.
Same target and firing line. The path, not a resistance label, tells the ammunition apart.

Fights moved close enough to read

PDC rounds now live for two seconds and reach 200 world units. The scavenger gun reaches 180. AI standoff, engagement, and point-defence ranges moved with them, so ordinary gunfights happen around one to two kilometres on the HUD rather than four to five.

Muzzle speed did not change. The shot does not become weaker because the fight became closer; the empty distance before anything readable happened is what left.

Torpedoes attack; point defence answers

Torpedoes are decisive now. A standard warhead deals 750 blast damage, and its health sits above the hardest hit one stock PDC round can land. A lucky tap no longer erases it. The answer is sustained point defence - or destroying the bay before the salvo leaves.

Lance and Serpent

A bay launches a torpedo type. The Lance runs straight and faster. The Serpent cruises more slowly but corkscrews around its guidance line until the final approach, where the weave fades out so the fuze still arrives on target.

They carry the same warhead. The choice is entirely in the run-in. In the shipped comparison, one stock PDC spends about 116 rounds to stop a Lance and about 390 to stop a Serpent. It kills the Lance roughly 114 units out; the Serpent survives to roughly 40. The Lance arrives sooner and closes faster on a ship that runs. The Serpent makes the defence pay.

Across the same 300-unit run, the straight Lance arrives sooner but one stock PDC stops it far out. The weaving Serpent arrives later and forces the same mount to fire roughly three times as much before the kill.

Loop planned assets/loops/news-0110-torpedo-types.webm A Lance and Serpent fly side by side toward one target, cold straight trail beside hot corkscrew, with the weave taper visible near the hull.
The torpedo's colour and flight path say which problem is inbound before it arrives.

Every mount gets a threat

Point defence is assigned per turret, not once per ship. Each mount asks which inbound torpedoes it can physically bear on, holds its current assignment while it remains useful, and prefers an urgent target no other mount has claimed. A rival must be arriving in half the time before it tears a turret away from the track it already owns.

A mount with nothing reachable returns to the primary target. It does not join a ship-wide dogpile on a torpedo under its own hull.

Four mounts divide four reachable inbound torpedoes instead of all choosing the nearest one. A mount keeps its track unless another threat will arrive in less than half the time.

Loop planned assets/loops/news-0110-point-defense.webm A four-mount battery splits across an inbound torpedo salvo; distinct tracer lanes converge on separate warheads before the survivors reach the hull.
A battery is several guns solving several threats, not several guns wasting one answer.

Bays regenerate one torpedo every ten seconds. Saturation still beats a defence, but it comes from what the attacker carried into the fight rather than from waiting behind an endless four-second refill. The campaign uses the two types as a difficulty curve: the first torpedo fight throws Lances; the finale escalates to Serpents.

Ships have a visual identity

A modular hull can now wear a skin derived from its structure. Set one flag and the game samples the boundary of the assembled sections, builds continuous cladding over it, leaves firing lanes clear, and makes every plate destructible. No plate coordinates are authored. Neighbouring cells share their boundary samples, so their surfaces meet.

The skin is separate from the ship's structural health. Plates and decoration carry their own health, mass, and colliders, but they do not hold a severed hull together. Shoot one away and the hole exposes the parts beneath it.

Loop planned assets/loops/news-0110-derived-skin.webm A bare modular hull gains continuous derived plates, turns to show clear muzzles and nozzles, then loses three near-side plates to expose the structure below.
The structure is authored. The skin reads it.

Four authored looks

A style decides what the cladding says about the ship:

  • Industrial puts corrugation, radiators, ducts, and warning paint outside.
  • Armoured builds an unbroken belt with hatches, bosses, and sensors.
  • Civilian uses pale satin plates, a cobalt rail, fairings, and lit windows.
  • Salvage layers mismatched patches, weld seams, drums, chains, and whips.

These are not four colour swaps. Each style owns plate materials and a kit of physical greebles placed from the plate's shape, facing, run, depth, and distance to a fitting. Placement is deterministic: the same hull gets the same details every time, including while it changes live in the editor.

Industrial, Armoured, Civilian, and Salvage each select a distinct material palette and greeble vocabulary. Choose a style to inspect the design rule its fixtures express.

Gallery planned assets/news-0110-greeble-atlas.png A labelled contact sheet of representative industrial, armoured, civilian, and salvage greebles beside one hull wearing each complete style.
Four kits, four readings of what a working spacecraft keeps on its outside.

Greebles lie down on the surface they stand on instead of balancing upright in their cell. A fixture can require one whole plate surface or deliberately claim a ridge, cone, or tip. Density can be stated in cells of ship, so a style tuned on a generated capital hull does not vanish when applied to a small hand-built craft.

Build the ship you can see

The editor's component drawer is replaced by a full-screen parts gallery. Every tile renders a live preview. Categories and text search cut the catalog down; a focus card turns the selected part beside its stats. Drag rotates it, the wheel zooms it, and Q takes the part straight back to the build view.

Loop planned assets/loops/news-0110-parts-gallery.webm The editor opens the parts gallery, filters to a turret, rotates its focus preview, takes it with Q, and returns to a live placement ghost.
A builder finds a part by looking at it, not by decoding a text card.

Placement itself now mates explicit link-point frames. The editor highlights free sockets, snaps the chosen socket onto the one under the pointer, opposes their normals, and preserves roll. Occupied, ambiguous, or intersecting placements are refused with a reason. The wheel reverses roll; Ctrl-wheel reverses the socket choice. The ghost is the real part mesh.

That change brings Racer, CargoA, and CargoB's semantic parts into the palette. Noses, engines, pods, and tails replace coordinate-named cube fragments, and parts from different craft can mate because the socket frame - not the source ship - defines the join.

Skin while you build

Ship Skin in the Tools block derives the cladding around the current assembly. Move a part under the pointer and the plates close around the uncommitted ghost; refuse the placement and they disappear with it. A ship built clad is the ship you fly clad, with the selected style taken from the merged base-and-mod catalog.

Loop planned assets/loops/news-0110-editor-skin.webm A finished build sheds and regains its derived skin, then switches between the Civilian, Armoured, Salvage, and Industrial looks.
The editor previews the rule, not a substitute for it.

Flight and scenarios feel intentional

Size decides how a ship turns

Turn rate is derived from the ship now. The game compares what its flight computers can twist, given the hull's inertia, with what the structure can take, given an eight-G limit at its furthest face. The lower ceiling wins.

A short craft swings on a short arm and turns sharply. A long freighter handles like one. Losing the nose can make a wreck turn faster because its structural arm became shorter. Stacking computers adds torque and redundancy, but it cannot push a light ship past the limit of its own hull.

The shipped corvette is limited by its structural arm, not by computer torque. Remove its nose and the surviving shorter wreck can turn more sharply; remove the computer-bearing fuselage and it is no longer a ship.

Turret tracking also stops depending on frame rate. Through v0.10.0 the servo closed a fixed fraction of its error per rendered frame, so a slow machine made guns lag and eventually stop firing. It now closes the same fraction per second. The target, not the display, decides whether a mount keeps up.

Turret correction is now measured per second. The v0.10.0 per-frame rule fell outside the fire gate on a slow frame; the new curve keeps the same tracking response across playable frame rates.

Scenarios get room to finish

Campaign chapters no longer cut from the killing blow directly to a modal Victory frame. A win locks, the live scene gets its outro comms, and only then does the outcome overlay take over. The sequence uses the same first-class scenario timers available to authored content.

The main menu becomes a backdrop carousel with four authored scenes and their own cameras. The editor sandbox becomes a real free-flight range: seeded rock belts, inert targets, dormant pickets, and skybox gates, with F1 always naming the way back to the editor.

Image planned assets/news-0110-scenarios.png A three-panel strip: the live-world campaign outro, the menu's Torpedo Gauntlet backdrop, and the editor sandbox range with belts and target hulks.
The spaces between fights are authored scenes too.

A lighter battlefield

The largest performance change is structural enough to see without trusting one computer's frame counter. In v0.10.0, a thousand rounds in flight meant a thousand rigid bodies and a thousand colliders. In v0.11.0, gun rounds are swept math: they keep their visual entity, previous and current position, damage, and owner, but they never enter the rigid-body broad phase.

The measured scenes are not identical - shorter reach and lifetime leave 400 rounds in flight in the new fight where the old one held 1,000 - so this is not presented as a universal frame-rate ratio. The invariant is simpler: each old round added one body and one collider; each new round adds neither.

In the paired firing census, v0.10.0 held 1,000 rounds, 1,035 rigid bodies, and 1,046 colliders. v0.11.0 held 400 rounds but only the scene's 35 bodies and 46 colliders: every gun round now adds zero of either.

Comparison planned assets/news-0110-collider-before-after.png The same point-defence firing lane with collider gizmos: v0.10.0 filled with a wireframe per bullet, v0.11.0 showing ships and torpedoes but no bullet colliders.
The performance headline is a thing the engine stopped creating.

Less work around the work

Several smaller changes remove repeated presentation costs:

  • Damage cracks share eight materials per source material instead of one material per damaged section.
  • A pristine section keeps its ordinary material, returning the entire cost of cracks when nothing has been hit. In the driven comparison this reduced mean frame time by 8.6 percent and p99 by 12.2 percent, with all 24 paired metrics moving in the same direction.
  • Thruster and torpedo materials are shared by type, and exhaust data changes only when the plume changes.
  • The small fixed-step schedules run directly instead of paying parallel executor overhead larger than their work.
  • Muzzle, blast, and launch-puff particle buffers are sized to their real bursts instead of all allocating 32,768 slots.
  • Scenario hull art is requested during loading instead of by the first ship that needs it.

Those results do not collapse into one honest "the game is N percent faster." Different scenes bind on simulation, render preparation, or presentation. The post therefore reports the structural changes and paired subjects they actually measured. The final release probe will certify the finished tree rather than turn a development profile into a marketing frame rate.

More in v0.11.0

The feature story above is the release, but several shipped behaviors also got cleaner:

  • Turret rounds apply their authored damage once. v0.10.0 could report one collider contact twice with the sides swapped and pay damage on both.
  • A ship's HP bar stays tied to its as-built maximum. Destroying a section no longer shrinks the denominator and makes the bar fill while the ship dies.
  • Neutralization means no weapons or no flight computer. A disarmed runner and a brain-dead gunship are both out of the fight; a bare emplacement with no computer still loses only when its guns are gone.
  • Unlimited player ammunition is debug-only. Shipped scenarios and mods use their authored magazines.
  • World debris expires. Sliced asteroid fragments leave after 30 seconds instead of accumulating until scenario teardown.
  • Rounds identify themselves in flight. Kinetic slugs, Pierce needles, and Explosive shells have distinct silhouettes and use their HUD colours.
  • Torpedoes fly nose-first. One shared coned body replaces the flat-ended pipe, with each type carrying its own tint.

Modding and compatibility

v0.11.0 deliberately carries no compatibility aliases for its format breaks:

  • Kinetic, Pierce, and Explosive are the damage roster. Emp is removed; ArmorPiercing becomes Pierce.
  • SectionDamageClass becomes SectionClass; the resistance table is gone.
  • The PDC prototype splits into Kinetic and Pierce variants.
  • Kinetic and Pierce use the new travel rules and closing-speed model.
  • Torpedo bays select a torpedo type; standard warhead health and blast values changed.
  • Turn ceilings derive from torque, inertia, hull length, and the structural load limit.
  • Ships accept an authorable collapse threshold and optional derived skin/style.
  • Style is a new content kind with plate surfaces, fixtures, and scatter rules.
  • Menu backdrops must author SetCamera in OnStart.
  • The editor's Components drawer is replaced by the parts gallery.

Run cargo run content lint against each bundle. The current /create/ reference owns the complete replacement vocabulary and the bundled content shows the migrated forms.

Build a ship, then break it

v0.11.0 is available from the Nova Protocol landing page. Play in the browser, download the native build, or open the editor and watch a bare structure become a clad ship before taking it into the new sandbox range.

The terse list is in CHANGELOG.md. This post is the visible version: closer fights, smarter ordnance, ships with an identity, and wreckage that tells you exactly how the battle ended.