05-16-2015, 01:32 AM
(This post was last modified: 05-16-2015, 02:00 AM by BuddyFriendGuy.)
I decided to start a new thread since this has different focus from my original thread.
What I'm trying to do here?
What demo parsers are out there?
I was able to find two existing parsers:
Any other recommendation?
Is there a format documentation (beside the source code)?
If I really have to invent the wheel, is there a document? Obviously if everything fails I'll go read the Darkplaces code, but I'm hoping somebody has figured that out so I don't have to.
What I'm trying to do here?
- As I explained in my other thread, I believe watching demos of oneself and others, in a game one participated in, is very educational, especially for new players. I'm hoping to write code to make available a config option on the server to allow users to download the demo files, right after the game. I want to read the demo files to expose some information (such as user name) on the file name. I also want to make sure there's no private data (such as IP address) in the demo file.
- This one came to me when I was adding a filter for the demo file list in the game Media menu. I think in addition to search/sort the filename, if we can parse the demo files, we can allow the users to search/sort by time, map names, servers, players, game types, etc.
- With the ability to parse the console message's timestamps in the demo file, video makers like @Antibody can have easier time locating clips.
What demo parsers are out there?
I was able to find two existing parsers:
- Sl@va has some basic parser written in Haskell. However, I don't know Haskell well enough to create a clean and safe environment on a production server (and would like to avoid cabal hell on my system).
- GreEn`mArine's NexuizDemoRecorder has some JAVA code to process the demoPacket, but it mostly only reads timing data, not other data such as scores, events, chats, etc.
Any other recommendation?
Is there a format documentation (beside the source code)?
If I really have to invent the wheel, is there a document? Obviously if everything fails I'll go read the Darkplaces code, but I'm hoping somebody has figured that out so I don't have to.