Hello,

I'm currently working on a cross-platform demo strategy analyzer for CSGO:
The goal of this soft is to play demo on a overview 2D map.

I understand that I'm running into quite bleeding edge and technical stuff.

First thing for this, I need to understand the CSGO demo file format.
So the pointers I gathered about this are quite few :

-CSGO protobuf Msgs:
http://hg.alliedmods.net/hl2sdks/hl2sdk-csgo/file/73e56a4a4d67/public/game/shared/csgo/protobuf

This is the most useful also the most confusing :
-Demo file format
https://developer.valvesoftware.com/wiki/DEM_Format

Any more information is warmly welcome :)

So from the previous link :

Frame {
       int ServerFrame;
       int ClientFrame; //ServerFrame and ClientFrame delta probably
correspond to client ping.
       int SubPacketSize;
       *buffer = new char[SubPacketSize]; // State update message?
       Packet pkt = (rest of frame as data exists) // All demo
commands are strung together in this area, structure below
       JunkData data = (unknown) // ex: 0x8f 5a b5 04 94 e6 7c 24 00
00 00 00 00 ... (40 bytes of 0x00 after the 0x24)
                                 // This could either be the end of
the frame or the start of the next frame.
}

Packet {
       char CmdType;
       int Unknown;
       int TickCount; //This only sporadically appears.
       int SizeOfPacket;
       *buffer = new char[SizeOfPacket];
}

Here are my questions:
1)How could we know the end of a frame? when we have a 0x00 ?
2)What does represent the *buffer ? The next raw  Packet? That would
then need to be unserialized?

Any help would be very appreciated so thanks in advance.

_______________________________________________
Csgo_sdk mailing list
[email protected]
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/csgo_sdk

Reply via email to