Spielwerte ohne Balancedrift
Die Spielfelder sind eine redaktionelle Balanceschicht, normiert auf 0 bis 100. Sie bewegen sich mit dem Katalog, und deshalb pinnt ein Build einen Snapshot fest.
Was die Spielwerte sind
Acht vergleichbare Werte, abgeleitet aus dem physischen Datensatz: Schaden, Präzision, Reichweite, Kadenz, Mobilität, Rückstoßkontrolle, Nachladegeschwindigkeit und Verdeckbarkeit. Die Feldreferenz definiert jeden.
- Sie sind über den ganzen Katalog vergleichbar, und das ist der Zweck: eine 70 bedeutet bei einem Gewehr, was sie beim anderen bedeutet.
- Sie sind redaktionell, nicht gemessen. Die gemessenen Werte dahinter (Gewicht, Lauf, Mündungsenergie, Kapazität) stehen im Datensatz selbst, und die gehören in eine Simulation.
- Sie werden mit dem Katalog neu ausbalanciert. Eine Neubalance ist keine breaking change, also kündigt nichts sie einem Build an, der live liest.
Live oder festgepinnt
Einmal bewusst wählen und die Wahl dort festhalten, wo der Rest Ihrer Build-Konfiguration liegt.
| Was Sie bauen | Was Sie lesen | Warum |
|---|---|---|
| Einen ausgelieferten Spiel-Build | GET /v1/game-stats/versions/{version}/firearms | Eingefrorene Werte. Eine Neubalance kann eine Waffe nicht zwischen Playtest und Release verändern. |
| Eine Website, ein Wiki, ein Vergleichstool | GET /v1/firearms/{id}/game-stats | Live-Werte, wie Leser sie von einer Seite über den aktuellen Katalog erwarten. |
| Die eigene Waffentabelle abstimmen | GET /v1/game/tier-list?stat= | S- bis D-Bänder für einen Wert: die Form, in der Designer streiten. |
| Eigene Ausreißer finden | GET /v1/game/balance-report | Verteilungswarnungen über den Wertesatz: was relativ zum Rest über- oder untertuned ist. |
Einen Snapshot festpinnen
Importieren Sie den Snapshot zu Beginn eines Zyklus in Ihre eigenen Datendateien und wechseln Sie ihn, wenn Sie es entscheiden. Behandeln Sie ihn wie eine Asset-Bundle-Version.
// Pick a version once, at the start of a development cycle,// and put it in your build config beside the asset version.const { data: versions } = await gunspec.gameStats.listVersions()// versions[0] is the newest. Choose deliberately; do not take [0]// at runtime, or you have re-implemented the live endpoint.const PINNED = '2026-09-01' // Everything frozen into that snapshot, paged. Import it once into// your own data files; do not call this at match start.const { data } = await gunspec.gameStats.listFirearms(PINNED, { per_page: 100 })- Lösen Sie die neueste Version nicht zur Laufzeit auf. Das ist wieder der Live-Endpunkt, nur umständlicher.
- Einmal importieren, die Daten mit dem Build ausliefern. Matchstart ist keine Zeit für HTTP-Anfragen, und es ist Kontingent je Spieler statt je Release.
- Halten Sie die Version im Repository fest. Bei einer Balance-Beschwerde ist die erste Frage, auf welchem Snapshot der Build lief.
- Vergleichen Sie einen neuen Snapshot mit dem gepinnten, bevor Sie wechseln. Was sich ändert, ist eine Designentscheidung, kein Upgrade.
Bewusst live lesen
Eine Seite über den Katalog sollte dem Katalog folgen. Cachen Sie wie jeden anderen Datensatz und schreiben Sie auf die Seite, dass die Zahlen eine Balanceschicht sind und keine Messungen.
// The live numbers, which track the catalog and change when it// is rebalanced. Right for a website, a wiki or a comparison tool -// wrong for a build that has to behave the same next week.const { data: stats } = await gunspec.firearms.getGameStats('glock-g17') // Each stat is 0-100 and comparable across the catalog: they are a// balance layer, not a measurement. The physical figures they were// derived from are on the record itself.Die Analyse-Endpunkte
Vier Aufrufe, damit Sie das nicht über einen Spiegel selbst rechnen; die Spielreferenz hat die Parameter.
/v1/game/tier-listbändert Waffen von S bis D für einen Wert./v1/game/matchupsvergleicht zwei direkt,/role-rosterbesetzt eine Rolle wie Scharfschütze oder Sturmwaffe aus dem Katalog./v1/game/stat-distributionist das Histogramm hinter einem Wert: so entscheiden Sie, ob Ihre eigene Kurve ungewöhnlich ist./v1/game/balance-reportist Studio, die anderen drei sind Builder.