A golang library and dear-imgui ui to explore War Thunder replay format
Project has 2 components:
inspector - application gui library where you can toy around with the replays, view packets and interact with parser results (with pluggable gui tabs)
wrpl - standalone library for parsing replays (with pluggable parsers)
Do go build in main directory to get a sample application that launches inspector gui.
Important
Information provided may be incomplete/innacurate. If you want to propose imporvements feel free to open issue, pull request or contact me via Discord @flexcoral (343418440423309314) (invite).
- Basics
- Parsing most of the static binary header
- Showing settings BLK (if present)
- Showing results BLK (if present)
- Opening and parsing packet stream
- Opening multiple individual replay files at the same time
- Server replays
- Downloading server replay from session ID
- Opening segmented server replay and combining them
- Packets
- Parsing chat packets
- Parsing award packets
- Parsing kill packets
- Parsing full precision ground unit movement packets
If you want to access those, feel free to ask.
- Parsers
- Camera angles
- More MPI events (critical/fatal damage)
- Complete kill packet decoding
- Aircraft state (by LivingTheDagor)
- Most of ECS system (by LivingTheDagor)
- Tabs
- ECS component end entity view
- Complete kill log view
- Map view (ground unit paths, kills and camera angles on the minimap with playback)
- Packet diffing, generally capability for easier comparing of packets from replay to replay
- Potentially syncing packets and video stream for better context awareness in packet view
If you wrote a gui tab or a parser feel free to open pull request. A lot of work was done in private repository with no plans on publishing, if you want to take a look at it or ask questions feel free to contact me.
This project would've not been here if StatShark devs didn't troll me in their discord, but on a serious note big thanks to:
- Sgambe33's WT-Plotter (C++) (general motivation, head start)
- wt_blk (Rust) (parsing BLK blobs)
- llama-for3ver's wt_replay_decoder (Rust) (parsing packet stream)
Both ui and lib (wrpl) are under GNU Affero General Public License v3
In repository root there is a TTF font (HackNerdFontMono-Regular.ttf) that is not part of wrpl-inspector distribution and is provided for easier setup until cimgui-go figures out the backends so that default font renders all the utf segments. It is licensed with Bitstream-Vera and MIT.
wrpl-inspector and wrpl library are not affiliated with or endorsed by Gaijin Entertainment. War Thunder is a registered trademark of Gaijin Entertainment. All rights reserved.
