Download

← All updates

Update

quark 1.0.0

Everything that changed in this version, and why.

The full notes for this version are its short notes: that was all that was written then.

quark 1.0. Every map, mode, menu and system has been audited, optimised and polished for release.

What's in 1.0

  • 12 modes: free for all, VS, duel (1v1 / 2v2, 30 rulesets), 1v1 (9 rulesets), tourney, bomb, payload, neutral payload, king of the hill, race, hide and seek, and tag.
  • 15 maps: four ranked maps, one for each objective mode, all-mode maps, Hamlet for hide and seek / tag, and Viaduct. Viaduct is now a two-loop race that climbs higher each leg.
  • Ranked 1v1 on three ladders (Vanilla, Laser Vampire, Instagib). Ranked always uses the default model, HUD, controls and a fixed 10 ms interpolation, so nobody gets an edge.
  • Customisation:
    • five player models and five sound packs, which everyone sees and hears, with equal loudness;
    • HUD widgets with a drag-and-drop editor;
    • a verbose info HUD;
    • control scripts (SOCD / snap tap, alt-fire toggle);
    • per-mode HUD and control rules;
    • import / export of layouts and profiles.
  • Built-in map editor with network co-editing, and self-updating dedicated servers.

The road to 1.0 (0.33 → 1.0.0)

  • Audit: menus, modes, maps, balance, website and code, written up in docs/AUDIT.md. Thirteen rule bugs were fixed: tourney walkovers and joins, the tag and hide edge cases, bomb drops, empty FFA, payload tiebreaks and vote ballots.

Client frame rate, measured with the in-game benchmark on software GL, so only the relative change counts:

mapbefore (avg / 1% low)1.0
foundry35.6 / 21.041-48 / 25-29
harbor44.8 / 31.550-54 / 38-42
hamlet44.8 / 31.448-53 / 32-37

This comes from culling world chunks, a cheaper world shader, culling dynamic objects, an allocation-free F3 overlay and an exact frame cap. Anti-aliasing is optional and off by default: smooth edges (cheap) or MSAA 2x / 4x.

Server CPU at 1000 Hz:

  • Harbor (12 bots + 4 clients): 102 → 68 µs per tick, 6.8% of the budget.
  • Hamlet (24 bots + 8 clients): 166 µs per tick.
  • An empty server sleeps instead of spinning.

Bandwidth: about 62% less per client. Snapshots go out at 500/s, the self state is leaner, projectile velocity is sent only when it changes, and events are resent once per round trip. Interpolation delay is about 9 ms.

Fixes:

  • Self-hosted servers no longer drop to 500 / 250 Hz: a miscounted 50% "packet loss" caused it.
  • The knife throw no longer fires a rocket lob straight after.
  • Depot's stairs face the right way.
  • Every ladder on Hamlet is climbable, and a test checks it.

Polish:

  • UI text always fits its button.
  • Every screen has been checked by screenshot.
  • The website has been redone.

Known issues

  • A ranked match a player quits before the end isn't rated. That needs server-signed results, planned after 1.0.
  • Balance proposals for the rocket and sniper are written up in docs/AUDIT.md but not applied. The numbers are the owner's call.