v0.1.47
Lots of changes happening! Most importantly: there is now a built-in replay renderer. This does not use the existing minimap renderer code used in the Track discord bot and is an entirely new implementation. Thank you to folks in RAIN/-FTA-/ROUGH for helping test the alpha/beta builds, and .p_yk in particular for the feedback.
There will be some bugs. Feel free to mention them in the Discord or file an issue here.
This work is built upon the work of others who of course need to be credited:
- Monstrofil for the original Python replay unpacking code many years ago
- notyourfather for the original replay renderer
- Trackpad for sharing his knowledge and other contributors to the minimap_renderer for their work on the Python renderer over the years.
- lkolbly for the original Rust implementation of the replay unpacking code which helped jumpstart this program
- TTaro for helping with many things above, and his feedback/knowledge sharing over the years.
And a special thank you to Wargaming for absolutely nothing. Almost 1 year ago WG threatened to ban me and told me to restrict features in this program (which only analyzes replays and game data) for reasons. For example, seeing enemy captain builds because:
Regarding captain builds, we believe they are essential to a player's chosen playstyle and strategy. Since there is no in-game way to view an opponent’s commander skills and upgrades, we maintain that mods and tools should not provide this information either. This applies regardless of whether the mode is competitive or not. If players were able to access this data, they could anticipate enemy strategies, predict movements, and assess ship strengths and weaknesses (as builds can also introduce drawbacks), ultimately gaining an unfair advantage. Additionally, after a match, high-end clans could potentially use this data to predict strategies for future matches (And this can be more true for competitions and other special formats).
lol
WG depends on community creators to do work to better their game and community, yet offers little in return except a slap in the face.
App
- App now logs what it's doing again. Can be disabled in settings.
- Completely refactored the networking to happen in a background thread. Should help with app paint times if network is unstable or unavailable.
- Show confirmation dialogs for destructive or annoying actions
- Improve error message visibility in UI
- Refactor updating WoWs game dir to ensure state is properly cleaned up
- Ensure that unsupported game versions surface errors
- Swapped GPU renderer from
glowtowgpu. This may impact Linux users -- please file issues if we need to update build instructions.
Resource Unpacker
- Ensure builds are listed consistently and can load on-demand
Replay Inspector
- Add buttons for opening replays in game
- Holding ALT on with expanded replay details will show inverse damage dealt details (fixes #24)
Renderer
This is an entirely new feature. I have not tested this with operations or really any game mode other than Randoms / Co-Op. I fear it may break under an operation.
A rundown of what it can do:
- Realtime replay rendering with toggle-able options.
- Right-clicking on ships allows you to toggle some ship-specific things on and off (like their gun range and trails).
- Right-clicking anywhere allows you to annotate the replay view.
- The gear icon button on the replay controls allows you to toggle MANY things, listed below.
- The timeline button allows you to jump to timeline events.
- Timer within a team's score bar indicates the time it would take them to win the game at their current point accrual, similar to the Score Timer mod in-game.
- Floppy / Clipboard icons allow you to export to video.
- You can zoom in on the minimap.
Key bindings:
- Spacebar toggles play/pause.
- Left/right arrow goes forward/back 10 seconds.
- SHIFT + Left/Right arrow goes forward/back to the next timeline event.
- Up/down arrow adjusts the playback speed
Some info it does or can display:
- Selected ship armament (not always shown). Green = Torps, Pinkish = SAP, Blue = AP, Orange = HE.
- Ship aim direction. This is not turret direction, but rather where the player's aimpoint is.
- If a friendly ship is detected, it will have a yellow highlight.
- Submarine depth
- Ship configuration (artillery, detection, torp, etc. ranges)
- Consumable usage (including radar, hydro, sub surveillance ranges).
- HP bars
- Buffs and buff counters. The buff counters are a little hard to read at the moment and I'll be tweaking this in the future.
You might notice some text like this on the scoreboard:
In order to facilitate these as timeline events, I've added an "Advantage Score". You can see a breakdown by hovering the text:
(These values are obviously negative but this is more of a UI bug that I will fix later -- use the absolute values).
The thoughts behind this are to bucket a team's advantage into 4 levels:
- Absolute (damn-near impossible to throw)
- Strong
- Moderate
- Weak
There are factors in the scoring, which are definitely going to change over time.
-
time_to_win(max ±3.0) — Who reaches the win score first from cap income?- Only one team can reach it: ±3.0
- Both can reach it, >30s apart: ±3.0
- Both can reach it, >10s apart: ±2.0
-
score_gap(max ±3.0) — Current point difference- 400+ points: ±3.0
- 200+ points: ±2.0
- 100+ points: ±1.0
-
projection(max ±2.0) — Projected final score gap (current score + cap income × time remaining, capped at win score)- 300+ point gap: ±2.0
- 150+ point gap: ±1.0
-
cap_control(max ±1.5) — Cap count difference, weighted by time remaining (fades to 0 under 2 minutes since caps can't earn much)- 2+ cap lead: ±1.5 × time_weight
- 1 cap lead: ±0.5 × time_weight
-
hp(max ±1.0) — HP ratio difference (only when all entity data is known)- 25%+ difference: ±1.0
- 15%+ difference: ±0.5
-
ship_count(max ±1.0) — Ship alive ratio difference (only when all entity data is known)- 20%+ difference: ±1.0
Total = sum of all six. Mapped to levels:
- Absolute: ≥ 7.0 (needs 3+ strong signals aligned)
- Strong: ≥ 4.0
- Moderate: ≥ 2.0
- Weak: ≥ 0.5
- Even: < 0.5
Bug fixes from beta1 to now:
- Use fonts from game and fix scaling + show torpedo ranges
- Should now be able to toggle ship configs on/off and have them reflected in the rendered video
- Might have been a weird regression where CPU renderer was always used. GPU renderer should be used now unless it doesn't support your GPU.
- Planes now carry ship/player names. It's a bit noisy for fighters near CVs so I might tweak this more in the future.
- Fix submarine depth indicators
- Fix hydrophone minimap spotting showing incorrectly
- Renderer settings panel is now a scroll container
- Rendering to video now shows progress bar
- Armament status should sync between rendered video and realtime renderer
- Persisted setting to control whether your own ship config shows
- Shell tracers should now be team/div/self-colored
- Make overlapping ship config labels rotate around their circle to avoid collisions
Full Changelog: v0.1.46...v0.1.47