Half-life2 engine Demo parser

Support for Demo Playback Tools
Post Reply
Message
Author
Opulent
Site Admin
Posts: 87
Joined: Sun Apr 22, 2018 5:57 pm
Location: USA
Contact:

Half-life2 engine Demo parser

#1 Post by Opulent » Wed Jun 27, 2018 9:08 pm

I'm looking for a non-steam-required demo block parser for Half-life 2 engine games.
There are 4 or 5 parsers that use the SDK, but I need an offline one.

I know, I know. I'm dreaming, but I thought it never hurts to ask.
FPS Demo Master
http://www.opulentdemos.us

Opulent
Site Admin
Posts: 87
Joined: Sun Apr 22, 2018 5:57 pm
Location: USA
Contact:

Re: Half-life2 engine Demo parser

#2 Post by Opulent » Sun Mar 03, 2019 8:10 pm

Well, I did some research on this.

I looked at this ( https://github.com/YaLTeR/HLDemo ), but it only builds a library for frame information for HL demos.
So, then I looked at this ( https://github.com/YaLTeR/DemTools ) and this ( https://github.com/YaLTeR/hldemo-rs ) which do parse the demo for header information and extremely basic demo frame information. Nearly useless to me and nothing more than what I have personally written, but it is nice to see some steps in the right direction.
He does have a more current one that reads the camera data from the ____ which I didn't bother modifying to make it useful But it could be. Just swap out the camera function for the player events function and look for the gamestate information.
So, I took a shot at version 3 and 4 engine demos.
This ( https://github.com/markus-wa/demoinfocs-golang ) is the most promising I have seen. The first demo parser that parses the frame data for CSGO demos.
After learning Rust and Go and overcoming the fact that NOTHING is documented. Oh, and when did Fedora turn into a pile of fucking shit? I installed Fedora29 so all of these new compilers and C++ functionality would work. I literally hate every single fucking thing about Fedora29. It is the OPPOSITE of what Linux is supposed to be... or used to be anyway. It was worst multi-tasking OS I've ever used.
Anyway, once I got it to actually install and compile, I got it to output this:

Code: Select all

_____________________>NEW SCORE 0
_____________________>Teamstate SCORE 0
_____________________>Teamstate ClanName 
_____________________>NEW SCORE 0
_____________________>Teamstate SCORE 0
_____________________>Teamstate ClanName 
pashaBiceps g2a.com <USP-S (HS)_ olofmeister
TaZ g2a.com <USP-S (HS)_ dennis
Snax g2a.com <USP-S (HS)_ wenton
neo g2a.com <USP-S (HS)_ twist
Lekr0 <Glock-18 (HS)_ byali g2a.com
Lekr0 <Glock-18 (HS)_ neo g2a.com
pashaBiceps g2a.com <USP-S (HS)_ Lekr0
__>RoundEndReason 8
_____________________>NEW SCORE 1
_____________________>Teamstate SCORE 1
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <MP9 (HS)_ dennis
byali g2a.com <MP9> olofmeister
pashaBiceps g2a.com <P90> wenton
Lekr0 <Desert Eagle> pashaBiceps g2a.com
neo g2a.com <MP9 (HS)_ Lekr0
twist <Tec-9 (HS)_ neo g2a.com
byali g2a.com <MP9 (HS)_ twist
__>RoundEndReason 8
_____________________>NEW SCORE 2
_____________________>Teamstate SCORE 2
_____________________>Teamstate ClanName Virtus.pro
pashaBiceps g2a.com <MP9> olofmeister
wenton <Glock-18 (HS)_ pashaBiceps g2a.com
neo g2a.com <M4A1> dennis
neo g2a.com <M4A1 (HS)_ wenton
neo g2a.com <M4A1 (HS)_ Lekr0
Snax g2a.com <MP9 (HS)_ twist
__>RoundEndReason 8
_____________________>NEW SCORE 3
_____________________>Teamstate SCORE 3
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <M4A1> olofmeister
byali g2a.com <M4A1 (HS)_ Lekr0
wenton <AK-47> pashaBiceps g2a.com
neo g2a.com <M4A1> wenton
twist <AK-47> byali g2a.com
dennis <AK-47 (HS)_ neo g2a.com
Snax g2a.com <HE Grenade> dennis
Snax g2a.com <MP9> twist
__>RoundEndReason 7
_____________________>NEW SCORE 4
_____________________>Teamstate SCORE 4
_____________________>Teamstate ClanName Virtus.pro
olofmeister <AK-47 (HS)_ pashaBiceps g2a.com
neo g2a.com <AWP> twist
Snax g2a.com <AK-47> wenton
Lekr0 <AK-47> Snax g2a.com
dennis <AK-47> neo g2a.com
byali g2a.com <M4A1 (HS)_ olofmeister
byali g2a.com <M4A1> dennis
TaZ g2a.com <M4A1> Lekr0
__>RoundEndReason 8
_____________________>NEW SCORE 5
_____________________>Teamstate SCORE 5
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <M4A1> twist
dennis <AK-47 (HS)_ neo g2a.com
olofmeister <AK-47 (HS)_ pashaBiceps g2a.com
wenton <AK-47 (HS)_ TaZ g2a.com
olofmeister <AK-47 (HS)_ byali g2a.com
Snax g2a.com <M4A1> olofmeister
wenton <AK-47 (HS)_ Snax g2a.com
__>RoundEndReason 9
_____________________>NEW SCORE 1
_____________________>Teamstate SCORE 1
_____________________>Teamstate ClanName fnatic
wenton <AK-47 (HS)_ neo g2a.com
byali g2a.com <M4A1> Lekr0
dennis <AK-47 (HS) (WB)_ TaZ g2a.com
pashaBiceps g2a.com <M4A1> olofmeister
wenton <AK-47 (HS)_ pashaBiceps g2a.com
wenton <AK-47 (HS)_ Snax g2a.com
wenton <AK-47> byali g2a.com
__>RoundEndReason 9
_____________________>NEW SCORE 2
_____________________>Teamstate SCORE 2
_____________________>Teamstate ClanName fnatic
twist <AK-47> neo g2a.com
twist <AK-47 (HS)_ pashaBiceps g2a.com
TaZ g2a.com <USP-S> twist
wenton <AK-47> TaZ g2a.com
dennis <AK-47 (HS)_ byali g2a.com
Lekr0 <AK-47> Snax g2a.com
__>RoundEndReason 9
_____________________>NEW SCORE 3
_____________________>Teamstate SCORE 3
_____________________>Teamstate ClanName fnatic
dennis <AK-47 (HS)_ pashaBiceps g2a.com
neo g2a.com <M4A1> dennis
olofmeister <AK-47 (HS)_ neo g2a.com
byali g2a.com <M4A1> twist
Lekr0 <AK-47> byali g2a.com
__>RoundEndReason 1
_____________________>NEW SCORE 4
_____________________>Teamstate SCORE 4
_____________________>Teamstate ClanName fnatic
olofmeister <AK-47 (HS)_ neo g2a.com
pashaBiceps g2a.com <MAG-7 (HS)_ olofmeister
Lekr0 <AK-47 (HS)_ pashaBiceps g2a.com
Lekr0 <AK-47 (HS)_ byali g2a.com
Snax g2a.com <M4A1> Lekr0
dennis <AWP> Snax g2a.com
dennis <AWP> TaZ g2a.com
__>RoundEndReason 9
_____________________>NEW SCORE 5
_____________________>Teamstate SCORE 5
_____________________>Teamstate ClanName fnatic
Snax g2a.com <AWP (HS)_ olofmeister
byali g2a.com <FAMAS> twist
Lekr0 <AK-47 (HS)_ byali g2a.com
pashaBiceps g2a.com <M4A1 (HS)_ wenton
Lekr0 <AK-47 (HS)_ neo g2a.com
pashaBiceps g2a.com <M4A1> dennis
pashaBiceps g2a.com <M4A1> Lekr0
__>RoundEndReason 8
_____________________>NEW SCORE 6
_____________________>Teamstate SCORE 6
_____________________>Teamstate ClanName Virtus.pro
TaZ g2a.com <FAMAS> wenton
Lekr0 <AK-47 (HS)_ TaZ g2a.com
Snax g2a.com <AWP> twist
Snax g2a.com <AWP> dennis
neo g2a.com <MP9> Lekr0
olofmeister <AK-47 (HS)_ byali g2a.com
pashaBiceps g2a.com <M4A1> olofmeister
__>RoundEndReason 8
_____________________>NEW SCORE 7
_____________________>Teamstate SCORE 7
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <AK-47> dennis
wenton <AK-47 (HS)_ pashaBiceps g2a.com
neo g2a.com <AK-47> olofmeister
Lekr0 <AK-47 (HS)_ byali g2a.com
neo g2a.com <AK-47> twist
TaZ g2a.com <M4A1> wenton
neo g2a.com <AK-47 (HS)_ Lekr0
__>RoundEndReason 8
_____________________>NEW SCORE 8
_____________________>Teamstate SCORE 8
_____________________>Teamstate ClanName Virtus.pro
pashaBiceps g2a.com <M4A1> olofmeister
byali g2a.com <M4A1> twist
byali g2a.com <M4A1> wenton
dennis <p250 (HS)_ byali g2a.com
neo g2a.com <AK-47> Lekr0
dennis <M4A1 (HS)_ TaZ g2a.com
pashaBiceps g2a.com <M4A1> dennis
__>RoundEndReason 8
_____________________>NEW SCORE 9
_____________________>Teamstate SCORE 9
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <AK-47 (HS)_ dennis
Lekr0 <AK-47 (HS)_ byali g2a.com
neo g2a.com <AK-47> wenton
Snax g2a.com <Five-SeveN> Lekr0
neo g2a.com <AK-47> twist
neo g2a.com <p250> olofmeister
__>RoundEndReason 8
_____________________>NEW SCORE 10
_____________________>Teamstate SCORE 10
_____________________>Teamstate ClanName Virtus.pro
_____________________>NEW SCORE 10
_____________________>Teamstate SCORE 10
_____________________>Teamstate ClanName fnatic
_____________________>NEW SCORE 5
_____________________>Teamstate SCORE 5
_____________________>Teamstate ClanName Virtus.pro
byali g2a.com <Glock-18 (HS)_ olofmeister
TaZ g2a.com <Glock-18 (HS)_ Lekr0
Snax g2a.com <Glock-18> dennis
wenton <USP-S (HS)_ pashaBiceps g2a.com
twist <USP-S (HS)_ neo g2a.com
TaZ g2a.com <Glock-18 (HS)_ wenton
byali g2a.com <Glock-18 (HS)_ twist
__>RoundEndReason 9
_____________________>NEW SCORE 11
_____________________>Teamstate SCORE 11
_____________________>Teamstate ClanName Virtus.pro
Snax g2a.com <MAC-10 (HS)_ wenton
twist <SSG 08> Snax g2a.com
olofmeister <CZ75 Auto (HS)_ neo g2a.com
pashaBiceps g2a.com <MAC-10> TaZ g2a.com
pashaBiceps g2a.com <HE Grenade> olofmeister
byali g2a.com <AK-47 (HS)_ twist
byali g2a.com <AK-47 (HS)_ Lekr0
dennis <AK-47 (HS)_ byali g2a.com
pashaBiceps g2a.com <MAC-10 (HS)_ dennis
__>RoundEndReason 9
_____________________>NEW SCORE 12
_____________________>Teamstate SCORE 12
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <MAC-10> wenton
byali g2a.com <AK-47 (HS)_ twist
Snax g2a.com <Tec-9> Lekr0
byali g2a.com <AK-47 (HS)_ dennis
Snax g2a.com <Tec-9 (HS)_ olofmeister
__>RoundEndReason 9
_____________________>NEW SCORE 13
_____________________>Teamstate SCORE 13
_____________________>Teamstate ClanName Virtus.pro
pashaBiceps g2a.com <AK-47 (HS)_ dennis
olofmeister <M4A1> pashaBiceps g2a.com
neo g2a.com <MAC-10> wenton
neo g2a.com <M4A1> olofmeister
Lekr0 <UMP-45 (HS)_ TaZ g2a.com
byali g2a.com <AK-47> Lekr0
neo g2a.com <M4A1> twist
__>RoundEndReason 9
_____________________>NEW SCORE 14
_____________________>Teamstate SCORE 14
_____________________>Teamstate ClanName Virtus.pro
pashaBiceps g2a.com <AK-47> twist
wenton <Five-SeveN (HS)_ Snax g2a.com
Lekr0 <FAMAS> byali g2a.com
TaZ g2a.com <AK-47 (HS)_ Lekr0
dennis <FAMAS (HS) (WB)_ pashaBiceps g2a.com
wenton <AWP> TaZ g2a.com
neo g2a.com <M4A1> wenton
dennis <FAMAS> neo g2a.com
__>RoundEndReason 8
_____________________>NEW SCORE 6
_____________________>Teamstate SCORE 6
_____________________>Teamstate ClanName fnatic
TaZ g2a.com <AK-47 (HS)_ Lekr0
olofmeister <AWP> byali g2a.com
olofmeister <AWP> neo g2a.com
pashaBiceps g2a.com <AK-47> dennis
Snax g2a.com <AWP> olofmeister
TaZ g2a.com <AK-47> wenton
Snax g2a.com <AWP> twist
__>RoundEndReason 9
_____________________>NEW SCORE 15
_____________________>Teamstate SCORE 15
_____________________>Teamstate ClanName Virtus.pro
neo g2a.com <AK-47 (HS)_ olofmeister
twist <CZ75 Auto> pashaBiceps g2a.com
TaZ g2a.com <AK-47> twist
Snax g2a.com <AK-47> wenton
Snax g2a.com <p250 (HS)_ dennis
byali g2a.com <AK-47 (HS)_ Lekr0
__>RoundEndReason 9
_____________________>NEW SCORE 16
_____________________>Teamstate SCORE 16
_____________________>Teamstate ClanName Virtus.pro
Which gives you this! YAY! :

Code: Select all

Virtus.pro
fnatic

Virtus.pro  CTWin
Virtus.pro  CTWin
Virtus.pro  CTWin-BombDefused
Virtus.pro  CTWin
Virtus.pro  CTWin
fnatic      TerroristsWin
fnatic      TerroristsWin
fnatic      TerroristsWin
fnatic      TerroristsWin-TargetBombed
fnatic      TerroristsWin
Virtus.pro  CTWin
Virtus.pro  CTWin
Virtus.pro  CTWin
Virtus.pro  CTWin
Virtus.pro  CTWin

Virtus.pro  10 - 5  fnatic

Virtus.pro  TerroristsWin
Virtus.pro  TerroristsWin
Virtus.pro  TerroristsWin
Virtus.pro  TerroristsWin
fnatic      CTWin
Virtus.pro  TerroristsWin
Virtus.pro  TerroristsWin

_______________________________
Virtus.pro CT 10 - 5  fnatic T
Virtus.pro  T 6 - 1  fnatic CT
_______________________________
Virtus.pro  16 - 6  fnatic
_______________________________
Kills:
byali			18
dennis		13
Lekr0			15
neo			27
olofmeister	10
pashaBiceps	18
Snax			19
TaZ			11
twist			7
wenton		13
_______________________________
Deaths:
byali			15
dennis		17
Lekr0			19
neo			14
olofmeister	19
pashaBiceps	14
Snax			7
TaZ			9
twist			20
wenton		17
_______________________________
However, it only works for CSGO demos and thus it is worthless. So I wasted a whole day on my curiosity for an answer to my question. Oh well.
FPS Demo Master
http://www.opulentdemos.us

Post Reply