5.2 KiB
卫戍协议:盟约 — Web Remake · Architecture & Contracts (DESIGN.md)
This is the single source of truth for every implementer. Research lives in docs/research/ (start with 00-INDEX.md; where a research file's body and its "Addendum (critic)" disagree, the addendum wins). When this document and research disagree, this document wins; when this document is silent, follow research; when both are silent, choose the simplest faithful behaviour and write it down in the module's header comment.
Language: player-facing text is Simplified Chinese by default, with an English switch since 0.2.0 (§25.2, docs/I18N.md: UI strings through t('中文'), game texts from the official Chinese data or the official EN client's). Code, comments and identifiers are English.
Versions: the first public release was 0.1.0 (2026-10-02, the state of §0–§20.15); the releases after it add the player feedback and GitHub reports — 0.1.1 §21, 0.1.2 §22, 0.1.3 §23, 0.1.4 §24 — and 0.2.0 (2026-10-07; CHANGELOG.md) the maintainability refactor, two languages, 补位, 自选编队 and their fidelity work — §25 — 0.2.1 (2026-10-07) the 联防 battlefield restored, full potential and the GitHub fixes after it — §26 — and 0.2.2 (2026-10-09) per-operator 潜能 / 练度, Japanese voices, the statistics page, 失衡, whole-frame attack timing and the GitHub fixes after 0.2.1 — §27. 0.2.3 (2026-10-10; package.json, shared/constants.js APP_VERSION) 克莱门莎 and new modules, community fixes, text size, per-operator voices, installation, the opening reroll and local match recovery — §28. 0.2.4 (2026-10-11) the official shared card pool and item stock, Raid revival and #475, and the community fixes after 0.2.3 — §29. 0.2.5 (2026-10-12) fixed gifts and already displayed operator offers under the shared stock, random boss pairing, the official battlefield scenes on the 3D board (optional local art: the full bundle includes them when extracted, a missing scene keeps the metal board; §15, §30.21), the official damage-number option, the 驭械术师 / hit-tile / bot ports and the community fixes after 0.2.4 — §30; its rules supersede the corresponding 0.2.4 ones. 0.2.6 (2026-10-13) the host-bandwidth layers 0 and 1 (no BGM download while the music is silent, WebSocket compression, content-hashed asset URLs with long caching, brotli, WebP guide pages), the official scene light gains, the impostor bounds, the deploy-animation replays, the optional ammo count and the community fixes after 0.2.5 — §31, the state described by this document; its rules supersede the corresponding 0.2.5 ones. The labels v1 / v2 / v2.1–v2.5.2 in §0, §14–§20 and in the BALANCE / SIM comparisons name the design generations and the private playtest builds that came before it; they are kept as history.
Where each section lives
Section numbers are global and never change: code, tests and the other documents cite them as "DESIGN §N". The
current rules by area are in docs/design/, the per-release revisions (the evidence behind each rule) in
docs/history/. When a revision changes a rule, the rule in docs/design/ is rewritten too (the revision lists the
normative lines it rewrote).
| sections | file | content |
|---|---|---|
| §0, §1, §2, §11, §12 | design/overview.md | Scope, stack, repository layout, quality bar |
| §3, §4 | design/geometry-time.md | Coordinates, fields, geometry and time |
| §5, §7 | design/engine.md | The battle engine (server/sim) and content modules |
| §6, §16 | design/match.md | The match and meta engine (server/match), operator loadouts |
| §8, §14 | design/network.md | The network protocol and client-side combat |
| §9, §10, §13, §15 | design/client.md | Rendering, UI, local-client art, the 3D board |
| §17 | history/v2.2-playtest3.md | User playtest #3 (v2.2) |
| §18 | history/v2.3-playtest4.md | User playtest #4 (v2.3) |
| §19 | history/v2.4-playtest5.md | User playtest #5 (v2.4) |
| §20 | history/v2.5-playtest6.md | User playtest #6 (v2.5) and its follow-ups, up to 0.1.0 |
| §21 | history/0.1.1.md | 0.1.1 — player feedback after 0.1.0 |
| §22 | history/0.1.2.md | 0.1.2 — GitHub issues after 0.1.1 |
| §23 | history/0.1.3.md | 0.1.3 — community reports after 0.1.2 |
| §24 | history/0.1.4.md | 0.1.4 — community reports after 0.1.3 |
| §25 | history/0.2.0.md | 0.2.0 |
| §26 | history/0.2.1.md | 0.2.1 — after the 0.2.0 release |
| §27 | history/0.2.2.md | 0.2.2 — after the 0.2.1 release (2026-10-09) |
| §28 | history/0.2.3.md | 0.2.3 — after the 0.2.2 release (2026-10-10) |
| §29 | history/0.2.4.md | 0.2.4 — after the 0.2.3 release (2026-10-11) |
| §30 | history/0.2.5.md | 0.2.5 — after the 0.2.4 release (2026-10-12) |
| §31 | history/0.2.6.md | 0.2.6 — after the 0.2.5 release (2026-10-13) |