Wie analysiere ich StarCraft 2-Wiedergabedateien ( .sc2replay )? Gibt es eine API?
Ich kenne Sc2gears , aber es erfüllt meine Bedürfnisse nicht ganz.
Wie analysiere ich StarCraft 2-Wiedergabedateien ( .sc2replay )? Gibt es eine API?
Ich kenne Sc2gears , aber es erfüllt meine Bedürfnisse nicht ganz.
Antworten:
Die Starcraft 2-Wiederholungen werden als MPQ gespeichert, ein komprimiertes Dateiformat, das von Blizzard entwickelt und verwendet wird. Am Ende der Wiki-Seite finden Sie auch Links zu MPQ-Parsern.
Vielleicht möchten Sie sich auch die folgenden Open-Source-Projekte ansehen: WARP (ein in Java geschriebener Starcraft 2-Wiederholungsparser) oder phpsc2replay (ein in PHP geschriebener Wiederholungsparser).
Update: Ab sofort gibt es auch eine Python-Bibliothek, die viele der Wiedergabedaten lesen kann: sc2reader . Dies ist höchstwahrscheinlich die beste derzeit verfügbare Option (Stand März 2013).
Update 2018: sc2reader wird jetzt von gepflegt ggtracker
. Wie auch immer, es sc2reader
wird jetzt auf PyPi gehostet. Vielleicht ist es der beste Weg pip install sc2reader
, es auf der Pypi-Seite von sc2readers zu finden
Offenlegung: Ich bin der Autor von Scelight und Sc2gears.
Blizzard hat eine offizielle Open-Source-Parser-Bibliothek für SC2Replay-Dateien namens s2protocol veröffentlicht, die in Python geschrieben wurde:
https://github.com/Blizzard/s2protocol
Dies ist der vollständigste, aktuellste offizielle Wiederholungsparser. Es wird als Referenzimplementierung angesehen . Es ist allerdings ziemlich niedrig.
Es gibt ein weiteres Projekt namens Scelight (das der Nachfolger von Sc2gears ist ). In Scelight gibt es eine Einstellung (eine Combobox) : Skill level
. Wenn Sie dies auf setzen Developer
(dies erfordert, dass zuerst eine winzige Programmieraufgabe gelöst wird, um Ihre Entwicklerfähigkeiten zum Entsperren zu beweisen), werden auf der Registerkarte " Inspektor" des Replay Analyzer eine ganze Reihe neuer Informationen für geöffnete Wiederholungen angezeigt, die für Entwickler bestimmt sind nur einschließlich der internen Struktur von Wiederholungen, einschließlich aller Details, Hex-Viewer und vielem mehr.
Scelight verfügt außerdem über eine Erweiterungsschnittstelle namens External Module API, die über eine gut dokumentierte API verfügt. Die externe Modul-API bietet Zugriff auf den SC2Replay-Parser sowie auf interne Datenstrukturen und Tools für die Wiedergabe auf niedriger und hoher Ebene. Das Javadoc der externen Modul-API ist auch online hier verfügbar:
https://scelightop.appspot.com/scelight-ext-mod-api/
Bearbeiten:
Sowohl Scelight als auch Sc2gears wurden als Open-Source-Produkte bereitgestellt. Sie können genau sehen, wie sie dies tun (beide Projekte zählen mehr als 100.000 Codezeilen):
Ich habe vor einiger Zeit mit dem Parsen der SC2-Wiedergabedateien gespielt. Sie können sehen, was ich getan habe und was ich zurückentwickeln konnte (sowie eine Reihe von Links zu hilfreichen Websites unten):