Parsen von .sc2replay-Dateien [geschlossen]

8

Wie analysiere ich StarCraft 2-Wiedergabedateien ( .sc2replay )? Gibt es eine API?

Ich kenne Sc2gears , aber es erfüllt meine Bedürfnisse nicht ganz.

Gpx
quelle
3
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es nicht darum geht, ein Spiel zu entwickeln.
Vaillancourt

Antworten:

15

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 sc2readerwird jetzt auf PyPi gehostet. Vielleicht ist es der beste Weg pip install sc2reader, es auf der Pypi-Seite von sc2readers zu finden

bummzack
quelle
8

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):

https://github.com/icza/scelight

https://github.com/icza/sc2gears

icza
quelle
2

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):

http://wiki.spectralcoding.com/project:sc2inspector

Caesar Kabalan
quelle
Ein paar Links an einem Ort sind wirklich nett.
Kirilloid