Debug Records

Hallo,
ich versuche gerade Debug Records zu erstellen, beim Abspielen bekomme ich aber:
[18:43:10] Playback error: Debug rec overflow!
[18:43:10] Record: Binary unpack error: C4IDPacket: could not unpack packet id xx!

Bei verschiedenen Aufnahmen unterscheidet sich xx meistens, z. B. 09, 49, b2…

Um die DebugRec-Engine zu erstellen habe ich das //#define DEBUGREC in Zeile 32 von C4Include.h wieder einkommentiert. Liegt der Fehler vielleicht daran dass man noch mehr ändern muss?

Das ist normal: Wenn man Debugrecs benutzen will, muss man die immer erst reparieren weil sie gerade wieder jemand kaputt gemacht hat.

Debug Rec Overflow heisst, dass ein Paket im Record ist, das im Playback nicht auftrat. Schau mal nach, welches das ist.

Danke. Im Moment weiß ich noch nicht, ob Debug Records überhaupt nötig sind, daher werde ich erstmal bei normalen Aufnahmen bleiben.
Das Paket (in DebugRec.firstPkt()) beim Overflow ist übrigens ein C4PktDebugRec mit eType=RCT_Random. Es sind allerdings noch mehr Pakete übrig geblieben: C4Playback::DebugRec enthält wenn der Overflow auftritt 13600 C4PktDebugRec-Pakete.

Was genau macht Debug Record eigtl? So für Nichtwissende klingt das durchaus interessant…

DebugRecs schreiben einfach alles mit was passiert (jeden Scriptaufruf zB). Damit kann man wohl zB Desyncs leichter finden.

Wie geht:
In OpenClonk musst du dafür in den Optionen ein Häkchen setzen.
In ClonkRage musst du dafür die Engine selbst kompilieren.

Und ohne Ahnung von der Engine zu haben hilft dir das in beiden Fällen nicht weiter, schätze ich. :slight_smile:

Wie Zapper schon sagte werden Aufnahmen um Debug-Informationen erweitert, d. h. sie enthalten dann nicht nur das, was benötigt wird um die Runde nachzubilden sondern es wird z. B. auch jeder Random()-Aufruf protokolliert (RCT_Random).

Hier ist die Liste der Record Chunks die nur in Debug Records vorkommen:
https://git.openclonk.org/openclonk.git/blob/0f050f03439821fdf2c5e57cb6b406481c393126:/engine/inc/C4Record.h#l60

Ich habe nun endlich die Lösung gefunden: Man muss einfach #define DEBUGREC_EXTFILE "DbgRec.c4b" in C4Record.cpp auskommentieren.