Docs Referenz

Datenquellen

Herkunft und Genauigkeit jeder Datenart. Wenn etwas „komisch aussieht“, schau zuerst hier nach.

DatenQuelleGenauigkeit
Einheiten, Ressourcen, Orders, Fähigkeiten, Buffs, InventarWeltblock, den die Runtime alle 50 ms pushtVeröffentlichungsintervall (bis 16 ms einstellbar)
Schadens- und Kill-EventsVon der Runtime sofort im Spiel-Thread aufgezeichnet, jeder einzelne TrefferSofort
Andere Events (erscheinen, sterben, Order-Wechsel, Level-up …)Vergleich zweier aufeinanderfolgender VeröffentlichungenVeröffentlichungsintervall
Produktionstabelle (ausbilden / erforschen / bauen / aufwerten)Timer-Felder der Produktionsfähigkeiten der Engine + von der Runtime aufsummierte verstrichene Zeitca. ±0.2 Spielsekunden
Kampfwerte, Konter-TabelleDatentabellen des Spiels (aus deinem lokalen Spiel extrahiert)Ohne Modifikatoren durch Gegenstände, Auren, Buffs
WegfindungBegehbarkeit des Engine-Geländes (128 pro Zelle) + Bäume + Gebäudeflächen, A* im SDKEine Zelle; Lücken schmaler als eine Zelle gelten als unpassierbar
Tageszeit im SpielJASS GetFloatGameState(GAME_STATE_TIME_OF_DAY)Veröffentlichungsintervall
SichtbarkeitVon der Runtime pro Einheit und Spieler berechnete SichtbarkeitsmaskeVeröffentlichungsintervall
Technologiezähler, Machbarkeit, RestgoldAbfrage über die Schnellspur, direkt an die EngineSofort

Spieldaten werden nicht mit dem Code verteilt

Einheitentabellen, Fähigkeiten, Gegenstände, Helden, Buffs, Schadens-/Konter-Tabellen usw. stammen aus Blizzards Spieldateien und liegen nicht im Repo. Sobald du im „Kontrollzentrum“ von Farsight das Spielverzeichnis festgelegt hast, werden sie automatisch aus deinem eigenen Spiel extrahiert; du kannst das auch manuell ausführen:

python data/tools/extract_game_data.py

Die Ergebnisse landen in data/game/ (nicht im Git): die rohen .slk-/.txt-Dateien sowie die aufbereiteten units.json, names.json, skills.json, items.json, heroes.json und buffs.json.

Ein paar konkrete Zahlen

GrößeWert
Ein Tag480 Spielsekunden (je 240 s Tag und Nacht), eine Stunde = 20 Spielsekunden; das Spiel beginnt um 8 Uhr morgens
Tag6:00–18:00
Rüstungsfaktor0.06 (aus den Datentabellen des Spiels)
Kapazität des Weltblocks16 Spieler, 1024 Einheiten, 256 Einheitendetails, 256 Gegenstände am Boden, 128 Produktionseinträge
BäumeMax. 4096 zerstörbare Objekte, alle 2 s aktualisiert
Event-Ring8192 Einträge; wer zu langsam liest, verliert Events (das SDK erkennt das)
Kartenraster128 Spieleinheiten pro Zelle, max. 256 × 256

Im Live-Spiel kalibrierte Beispiele

  • Produktionszeiten: Bauer 14.9, Farm 34.9, Iron Forged Swords 59.9 Spielsekunden – deckungsgleich mit den Werten, die die Runtime pusht (Abweichung unter 0.2 s);
  • Kampfwerte gegen die Anzeige im Spiel geprüft: Paladin 650 HP, 255 Mana, 3.9 Rüstung, Angriff 24–34; Fußsoldat mit Angriffs-Upgrade Stufe 1: 13–15;
  • der Schaden vor Rüstung aus den Schadens-Events der Engine (14 / 15 / 15) liegt im von stats() berechneten Bereich;
  • Wegfindung: Echo Isles 116 × 88 Zellen, Bodenweg zum gegnerischen Hauptgebäude 10642 (Luftlinie 9856), Aufbau des Rasters 18 ms, ein A*-Lauf ca. 1 ms.