Half-Life Demofile Tools
From Sukimashita
Version: 0.0.0 - RSS Changelog - Browse Repository - Devtalk
Contents |
[edit] About
This project aims to provide specifications and a library for processing Half-Life based gameplay recordings in the Half-Life demo file format.
Most of the information was acquired using loads of coffee, byte-level RE research, optimistic guessing and the fact that the recording system is based on the Quake 1 DEM file format.
The information provided should be useful for developers who wish to properly parse the DEM file format for various use cases (server-based anti-cheat tools, log generation, automatic metadata creation of user-uploaded recordings or similar).
The specifications and library are in it's early stages, however the current implementation used in DemoFreak is able to parse everything within a DEM file except delta encoded data.
The library will be free software, licensed under the GNU GPL and open for contributions.
[edit] Specifications
Watch this space for HLDEMO specs. The most recent copy will always be available in the repository.
[edit] Recent Changes
- 2007-03-29 R7 by mszulecki
Change servermessage indexing to hex and add more cstrike related game message structures. - 2007-03-19 R6 by mszulecki
Add a lot of server message related documentation - 2007-03-07 R5 by mszulecki
Remove wrongly placed horizontal line. - 2007-03-07 R4 by mszulecki
Fix typo. - 2007-03-07 R3 by mszulecki
Add rough prototype of specifications and license info for the library/tools.
[edit] Tools
The following included tools should demonstrate the use of the library and possibly be used stand-alone:
- hldemotool - Parse demo files and dump/extract all or specific information
[edit] Download
No releases yet. The source can be checked out from the official repository.
[edit] Development
The official repository can be found and checked-out at:
https://svn.sukimashita.com/repos/hldemo/trunk
Checkout using:
svn co https://svn.sukimashita.com/repos/hldemo/trunk/ hldemo
[edit] FAQ
Feel free to edit this part and add any questions you might have.
- Why?
- Due to various requests on getting to know how DemoFreak is able to read all the information from Half-Life based demo files I came up with the idea to write down everything into a public specification and possibly offer a library for developers to use. While there are some specs on the internet about parsing basic information, only DemoFreak, aside of HL itself, has so far read extended information which was not useful due to it's closed-source nature.
[edit] Bugs
There is currently no bugtracking system setup.
[edit] Links
Related projects: