SC2 Replay Manager

Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Hi leute,

seit einiger zeit hock ich schon an einem Programm, das .SC2Replay-dateien einliest, verwaltet und statistiken erhebt, ähnlich wie bereits bei bwchart.
Das programm ist in java geschrieben und kann schon das vorschaubild der gespielten karte und die spieler mit dazugehörigen namen, farbe und rasse aus dem replay rausholen.
Bei ca. 15 test-replays hat alles funktioniert.

Mein problem zur zeit ist einfach die fehlende oder mangelnde dokumentation der replay-dateien.

Zu meinen fragen:
- Seid ihr zufällig mal über sowas gestoßen?
- Meint ihr blizzard rückt sowas raus?

Ich hab sogar schon eine seite gefunden, die replays (mit PHP :flop: ) zerlegt und ebenfalls map, spieler und zusätzlich noch das chat-log anzeigt. Leider gibts auf der seite kein impressum ^^

Evtl. müsste man besondere test-replays machen, die ich mir dann anschauen kann. Leider ist das für mich extrem schwer ohne beta-zugang :)
 

General Mengsk

Chefredakteur
Mitglied seit
23.07.2002
Beiträge
11.835
Reaktionen
12
Website
www.instarcraft.de
Wir haben sowas für unsere Filebase hier, wobei es noch Probleme gibt, wenn die Namen von Spielern und/oder Karte nicht aus lateinischen Buchstaben bestehen, wie bei der russischen, koreanischen und chinesischen Version.
Das scheint momentan auch Stand der Dinge zu sein, viel mehr als das ist schlicht noch nicht bekannt. Wenn Blizzard Infos dazu veröffentlicht oder gar eine Schnittstelle herausgibt, wird das wahrscheinlich erst nach Spielverkaufsstart sein, wenn nicht gar noch später.
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0

Hab ich schon gefunden, danke :)

Wie gesagt: ist nur leider auch sehr unvollständig. Gibt leider kaum mehr her, als ich eh schon hab :/
Das einzige, was ganz brauchbar ist, ist die liste der aktionen, die im replay gespeichert werden (select, nachricht senden, ...).

Edit: Würde sich jemand mit beta-zugang bereiterklären für diesen zweck test-replays anzufertigen? Wenn nämlich noch nichts bekannt is, muss man eben selber versuchen wenigstens ein paar mehr sachen in erfahrung zu bringen.
 
Zuletzt bearbeitet:

Kallisti_inaktiv

Guest
Ich würde gern dazu Spieldauer, Gewinner und Replayversion in einer Übersicht sehen. ;-)
 
Mitglied seit
22.06.2005
Beiträge
126
Reaktionen
0
wenn du im irc bist kann ich das machen, allerdings hab ich nich genau verstanden was du genau brauchst :>

(msg pwnDa, bzw wenn nich online p4nDa, ders immer da)
 

Memo

LSZ-Forum
Mitglied seit
06.11.2003
Beiträge
1.776
Reaktionen
0
Ort
Paderborn
ich würde gerne mal den quellcode sehen, nur so aus neugier. Wenn das kein problem wäre? : )
 

Thetan5

Guest
Irgendwie funktionieren bei mir 90% der Replays nicht. Eigene natürlich schon, aber immer wenn ich mir mal welche aus der Filebase oder whatever runterlade kommt eine Fehlermeldung bei jedem Replay. Entweder "Replay kann nicht geöffnet werden" oder das irgend eine Datei nciht vorhanden ist. Ich habe bestimmt schon 300 Games gemacht und verstehe nciht warum mein cache ordner unvollständig sein soll :( Hab eigentlich alle Maps.


Bsp. Gerade eben das koreanische Replaypack aus der bw.de Filebase geladen - kein einziges Replay funktioniert bei mir - "Replay kann nicht geöffnet werden"

Woran liegt das?
 
Zuletzt bearbeitet:
Mitglied seit
26.07.2000
Beiträge
269
Reaktionen
0
Ich werde bestimmt einen Parser in PHP schreiben, sobald eine brauchbare Spezifikation da ist. :)

@ Hailst0rm: Stellt du dein Projekt unter eine Open Source Lizenz? Kann man sich irgendwo den Entwicklungsfortschritt anschauen?
 

Memo

LSZ-Forum
Mitglied seit
06.11.2003
Beiträge
1.776
Reaktionen
0
Ort
Paderborn
also, ich würde den quellcode auch vertraulich behandeln wenn du ihn nicht veröffentlichen magst, vielleicht kann ich ja behilflich sein. Und wenn nicht, dann könnte ich vielleicht noch was lernen : )
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Der replay manager (WARP) sowie der in java geschriebene MPQParser werden in kürze veröffentlicht. Sie haben heute ein trac-seite erhalten, bei der ihr dann tickets schreiben könnt, um bugs zu melden oder verbesserungswünsche vorzutragen :D
Die beiden maven-projekte werden dort im svn-repository zum download bereit stehen.

Die beiliegende datei ist für die leute, die sich für den source code interessiert haben. Es handelt sich dabei um eine Entwicklerversion, die nicht für den Produktiveinsatz gedacht ist.

Das .jar-archiv wird in der eingabeaufforderung mit folgendem befehl gestartet:
"java -jar WARP-0.1-jar-with-dependencies.jar"

Da keine .jar-dateien als anhang erlaubt sind (warum auch immer :stupid: ), müsst ihr zuerst die dateiendung ändern. ;)
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
was macht der MPQParser wenn ich fragen darf?
(In diesem Zusammenhang mit Reps^^)

Eigentlich ganz einfach. :)

Eine .mpq-Datei ist nichts anderes, als ein archiv, wie .zip, .rar, usw. Allerdings kann man diese auch schachteln bzw. in andere dateien einbetten.
In einem SC2Replay befindet sich eben so ein archiv. Es enthält 7 (?) dateien:
das Vorschaubild der karte, chat-log, durchgeführte Aktionen, smartcam (vermutlich dafür, dass die "first-person-ansicht" in den replays funktioniert), irgendwelche sync-daten, eine Liste mit Dateinamen und eben wichtige Daten des Spiels, die eigentlich von jedem replay-parser bisher ausgelesen werden.
Ich kann dir gern mal ein "entpacktes" replay zukommen lassen, wenn es dich interessiert.

Hintergrundgeschichte
Es gab nur ein problem: für das einlesen von .mpq-dateien gibts nicht so viele möglichkeiten. Es gibt zwei in C geschriebene bibliotheken: StormLib bzw. StormDLL und libmpq (für libmpq existieren bindings für die sprachen d :ugly: und python, um archive auch mit d bzw. python asprechen zu können. Außerdem gibt es auch eine .net-bibliothek und irgendwas für Mac OS. Als linux-nutzer wollte ich aber eine plattformübergreifende lösung).
Erst hab ich versucht den parser in python zu schreiben (mit einer Qt-Oberfläche), allerdings ist mir dann eingefallen, dass es dann zusatzarbeit macht, sobald diagramme ins spiel kommen, denn mit meinem bruder arbeite ich an einer diagrammbibliothek für java names GRAL (auch bald erhältlich :thumb: ). Ein versuch libmpq in java (über jna) anzusprechen war leider erfolglos, also musste ich selber einen parser für .mpq-dateien schreiben.
 

Telmata

SC2-Forum
Mitglied seit
15.10.2004
Beiträge
3.027
Reaktionen
0
Website
www.artofplay.de
was eine MPQ Datei ist weis ich und das diese replays nichts anderes als MPQ dateien sind weis ich auch, nur vergessen gehab bei meiner frage :D
hab ja schon selber rumgespielt mit den MPQ dateien (auch die die nicht als .mpq bezeichnet sind)

aber trotzdem danke für die genauere Aufklärung
 

hanswalterschmitt_deleted334111

Guest
Also ich hab gerade einen Replay Parser in PHP fertiggestellt. Braucht keine Bibliotheken wie libmpq oder PHP MPQ. (Läuft also auch bei Webhostern)

Auslesen kann ich: Dauer des Spiels, Versionsnummer / Build von SC2 mit der das Spiel aufgenommen wurde, Mapname, Spieler + Rasse + Farbe.

Habe gestern eine ganze Reihe von Testspielen gegen die KI gemacht. Je mehr Spiele, desto mehr seltsame Sonderfälle sind mir in der replay.info Datei des Replays aufgefallen.

Interessant wäre mal noch sowas wie Teamzusammenstellung, Handicap der Spieler, Spielmodus, ...
 
Zuletzt bearbeitet:
Mitglied seit
26.07.2000
Beiträge
269
Reaktionen
0
Veröffentlichst du deinen Code auch? Welche Lizenz hast du für deinen Code gewählt?
Wenn du den unter Open Source stellst, bin ich gerne bereit, dir dabei zu helfen, die restlichen Daten auszulesen.
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Wie versprochen gibt's den link zur projektseite von WARP (mittlerweile bei version 0.2 angekommen -> kann chat-logs anzeigen):

http://trac.erichseifert.de/warp/

Installationsanleitung steht auf der seite. Dort kann man sich auch registrieren, um evtl. bugs zu melden oder verbesserungen vorzuschlagen.

WARP ist natürlich unter der GPL lizensiert. ;)

Danke an BigD, der mir bereits einige test-replays zur verfügung gestellt hat (und an p4nDa, der wollte. Leider hab ich kein IRC :) ).
 

hanswalterschmitt_deleted334111

Guest
@Hailst0rm:

Direkt in der .SC2Replay Datei steht ab Offset 0x34 ein 16 Bit Integer (Big Endian) der die Dauer des Spiels in _halben_ Sekunden angibt.

z.B. hab ich hier eins mit der Bytefolge 0x13 0x9F => 5.023 / 2 => 2.511 Sekunden => 41 Minuten. (War ein FFA *g*)

Ab Offset 0x27 findet man übrigens die SC2 Version mit der das Replay aufgenommen wurde. Drei mal je ein Byte für Major, Minor und Revison, und dann vier Byte (wieder Big Endian) Build Nr.

Beispiel: 0x00, 0x06, 0x00: Version 0.6.0, 0x00 0x00 0x37, 0xB3: Build 14.259
 
Mitglied seit
02.09.2002
Beiträge
3.247
Reaktionen
82
wtf, welchen n00b checkt denn .classpath, .project und .settings mit ein. :P
 

hanswalterschmitt_deleted334111

Guest
Für die Analyse des Replayformats wäre es ganz nützlich von einem Spiel die Replays beider Spieler zu haben. Kann das vielleicht jemand bereitstellen?

Auch interessant wäre mal ein Replay bei dem beide Spieler _nichts_ machen (keine Kamerabewegung, keine Peons bauen / zu Minerals schicken, etc) und einfach das Spiel nacheinander verlassen.
 

Melete

Guest
Da ich ein Fan von Graphen bin, hier gleich mal ein Feature-Request: wäre super wenn man Supply, Income, Grösse der Armee, ... der Spieler gegen die Zeit antragen lassen könnte.
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Auch interessant wäre mal ein Replay bei dem beide Spieler _nichts_ machen (keine Kamerabewegung, keine Peons bauen / zu Minerals schicken, etc) und einfach das Spiel nacheinander verlassen.

BigD hat eins bereitgestellt. Ich habs angehängt. Allerdings hat er alleine gespielt und musst darum das "Sie-haben-gewonnen"-Fenster wegklicken. Meiner meinung nach sollten dabei aber keine aktionen im replay gespeichert werden.


Da ich ein Fan von Graphen bin, hier gleich mal ein Feature-Request: wäre super wenn man Supply, Income, Grösse der Armee, ... der Spieler gegen die Zeit antragen lassen könnte.
Dann meld dich an unter http://trac.erichseifert.de/warp und schreib ein ticket ;)
Brauchst nichtmal eine e-mail-adresse anzugeben.

Sry, ahnang vergessen :D
 
Zuletzt bearbeitet von einem Moderator:
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
*push*

WARP gibt es jetzt in version 0.4.

Hier zum Download

Das programm wurde mit knapp 500 replays getestet und es gab keine fehler.
Mittlerweile unterstützt WARP auch spiele, an denen observer teilgenommen haben.
 
Mitglied seit
01.01.2010
Beiträge
70
Reaktionen
0
werden beim tool auch die durchschnittlichen apm angezeigt?
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
werden beim tool auch die durchschnittlichen apm angezeigt?

Leider nein, aber es ist in naher zukunft geplant.
Das nächste feature wird die darstellung der APM in einem graphen à la BWChart sein.

Schau einfach ab und zu mal auf die projektseite und halt dich auf dem laufenden. Sonst werde ich updates auch hier im forum ankündigen.
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Wenn es ein Update gäbe, hätte sich Hailstorm bestimmt schon gemeldet ;)
Stimmt, hätte ich natürlich ;)
Trotzdem schön zu sehen, dass sich die leute dafür interessieren.


wie schauts inzwischen aus? :)
Momentan bin ich gerade dabei die spieleraktionen auszuwerten. Ich hab schon etliche test-replays erstellt (weil mir jemand nettes einen key geschenkt hat :D ) und versuche genug darüber rauszufinden, um sie in der datei überspringen zu können.

Momentan funktioniert es bei aktionen, die erzeugt werden, wenn der spieler fähigkeiten von einheiten oder gebäuden benutzt (also alles, was rechts unten im kasten an befehlen ist) sowie das auswählen von einheiten und bewegen des bildschirms. Dann kommt noch das erstellen von gruppen (sollte nicht so viel aufwand sein) hinzu. Leider bereitet mir immernoch ein kleines anhängsel sorgen... Ich kann also noch keine versprechungen machen, wann die nächste version herausgegeben wird, sry :(
 

Telmata

SC2-Forum
Mitglied seit
15.10.2004
Beiträge
3.027
Reaktionen
0
Website
www.artofplay.de
ja ich weis das hier ein update gekommen wäre, aber da ich selber bisschen was programmiere (nicht in dem zusammenhang und nicht in Java) hat mich es mich einfach interessiert wie es zur zeit ausschaut :)
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Schlechte Neuigkeiten, inStarcraft-Gemeinde!

Vielleicht hab ihr es schon gehört:
Mit Patch #9 (26.4.2010), der starcraft auf version 0.11 angehoben hat, hat sich das replay-format geändert. Ich weiß nicht wie tiefgreifend die änderungen sind, weil ich sie noch nicht näher untersucht habe.

Momentan verlasse ich mich auf ein anderes projekt, welches SC2Replay-dateien mit C++ auftrenne will. Die arbeiten nicht alleine, wie ich, sondern in einem team und haben deshalb einige erfolge verzeichnen können.
Vorerst wird sich die von vielen sehnlichst erwartete version 0.5 von WARP, die diagramme der APM der spieler darstellen sollte, für einige zeit verzögern...

Ich halte euch auf dem laufenden.

Sorry!
Hailstorm
 

Telmata

SC2-Forum
Mitglied seit
15.10.2004
Beiträge
3.027
Reaktionen
0
Website
www.artofplay.de
böses blizzard, buuuuuuh :D
aber schön zu hören das überhaupt noch dran gearbeitet wird :)

aber bitte denk dran dann für beide replay-versionen eine funktion einzubauen :)
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Es geht in die nächste Runde!

Ich bin stolz darauf, WARP v0.6 ankündigen zu dürfen.

Features:
- Unterstützung von Replays ab Patch 9
- APM-Diagramm for jeden Spieler
- Aufgemöbelte Oberfläche
- Datenbank für das Speichern von eingelesenen Replays, die somit gleich nach einem Neustart wieder zur Verfügung stehen.
- Statusnachrichten

Wie kann man WARP verbessern?
Ich möchte noch einmal an euch appellieren: Zögert nicht auf http://trac.erichseifert.de/warp tickets zu eröffnen.
Es macht keinen Unterschied, ob du einen Fehler meldest oder einen Verbesserungsvorschlag oder neue Funktion vorschlägst. Du bist in jedem Fall erwünscht.

Beiträge zum Programm-Code
Einige Leute, die ich gefragt habe, sagen sie haben zu wenig Erfahrung mit Java und wollen nichts zu WARP beitragen.
Unterschätze deine Fähigkeiten nicht! Jeder Code ist gut genug.
Ich bin immer noch auf der Suche nach helfenden Händen. Lass es mich einfach wissen, wenn du dich dafür interessierst an der Entwicklung teilzunehmen.
 
Mitglied seit
02.09.2003
Beiträge
4.405
Reaktionen
0
warum schliesst sich das programm direkt nach dem man den folder eingelesen hat?
 
Mitglied seit
23.02.2007
Beiträge
20
Reaktionen
0
Bei mir macht es das nicht. :hum:

Wenn du windows benutzt, mach doch mal bitte folgendes:
- Eingabeaufforderung öffnen (Start -> Ausführen -> "cmd")
- In das Installationsverzeichnis von WARP gehen (cd c:\\pfad\zu\WARP)
- WARP ausführen ("warp.bat")
- Mir die Ausgabe der Konsole posten oder besser per PN schicken

Wär klasse, dann kann ich mir die sache ansehen ::]:
 
Mitglied seit
02.09.2003
Beiträge
4.405
Reaktionen
0
der befehl javaw ist entweder falsch geschrieben oder konnte nicht ausgefuehrt werden
 
Mitglied seit
02.09.2003
Beiträge
4.405
Reaktionen
0
hmm nachdem ich warp.jar ueber die konsole ausgefuerht hab funktioniert das ganze ohne das das fenster schliesst
 
Oben