Upvote Upvoted 135 Downvote Downvoted
1 2
dribble.tf - stv demo replay in browser
posted in Projects
31
#31
payload.tf
2 Frags +

This may just become the place to host demo reviews....

This may just become the place to host demo reviews....
32
#32
1 Frags +

you sir are a beast

you sir are a beast
33
#33
14 Frags +

good job me with an o

good job me with an o
34
#34
6 Frags +

If demo contains pauses player doesn't handle them. For example this https://demos.tf/384366 stops at 62 325 tick (whole demo contains 136 815 ticks). Player doesn't show rest of the match after pause.

Overview of demo. Pause in 3rd round.https://i.imgur.com/IRjxeK2.jpg

It seems 'setPause' packet contains pause data. It fires when pause starts and ends. So it can be used to get right tick after pause ends.

Messy reference code how it can be used for tick offsets after pause ends: https://github.com/mazatf2/DemoUI2.5/blob/4a3bc844eb8d9782f09c8cadc2a3e2bea095e066/gui-src/overlay-manager/src/demotool/demotool.worker.ts#L294

I haven't tested if DT_SceneEntitys props: 'm_bPaused', 'm_flForceClientTime', 'm_bIsPlayingBack' work for older demos (<2018). For 2018-2020 demos that I tested with demo.js and it seems they aren't preset.

If demo contains pauses player doesn't handle them. For example this https://demos.tf/384366 stops at 62 325 tick (whole demo contains 136 815 ticks). Player doesn't show rest of the match after pause.

[quote=Overview of demo. Pause in 3rd round.]https://i.imgur.com/IRjxeK2.jpg[/quote]

It seems 'setPause' packet contains pause data. It fires when pause starts and ends. So it can be used to get right tick after pause ends.

Messy reference code how it can be used for tick offsets after pause ends: https://github.com/mazatf2/DemoUI2.5/blob/4a3bc844eb8d9782f09c8cadc2a3e2bea095e066/gui-src/overlay-manager/src/demotool/demotool.worker.ts#L294

I haven't tested if DT_SceneEntitys props: 'm_bPaused', 'm_flForceClientTime', 'm_bIsPlayingBack' work for older demos (<2018). For 2018-2020 demos that I tested with demo.js and it seems they aren't preset.
35
#35
2 Frags +

Yo dis is crazieeeee! thank you

Yo dis is crazieeeee! thank you
36
#36
dribble.tf
9 Frags +
PootisPootisPootisPootisIf demo contains pauses player doesn't handle them. For example this https://demos.tf/384366 stops at 62 325 tick (whole demo contains 136 815 ticks). Player doesn't show rest of the match after pause.

Thanks for the detailed info. Looking into this, I believe demo.js does indeed successfully parse/play the entire demo, but the frontend tick # is not actually correct, as the tickrate is scaled down to 30TPS, resulting in the displayed tick values being 1/2 of what they should be.

I just tried removing the downscale, but running at 60TPS totally annihilates performance. I'm not super familiar with the demo.js parser, so I may just display the tick values as tick * 2, but it:

  • still doesn't account for paused ticks (they end up being "padded" to the end of playback)
  • may be slightly off the actual ingame tick (reference comparisons below)

---

I may just totally remove showing the tick #, and just display a playback time instead? e.g. [03:40 / 19:29]

Otherwise I could just "display" tick * 2 (kinda sus), but it will be inaccurate for demos with pauses.

---

Used match below to test (as it has a pause & a VOD on Youtube to reference).

Youtube: https://youtu.be/T2VHnG3N8fc?t=323

Comparisons : https://imgur.com/yK5E78N

Also seems there are some bugs that occur with certain types of STVs (maybe due to certain plugins?) or maybe pause, that cause PlayerResource data to be missing (so players show up pink/unknown). TBD...

Edit: yo we can't use emojis here?

[quote=PootisPootisPootisPootis]If demo contains pauses player doesn't handle them. For example this https://demos.tf/384366 stops at 62 325 tick (whole demo contains 136 815 ticks). Player doesn't show rest of the match after pause.
[/quote]

Thanks for the detailed info. Looking into this, I believe demo.js does indeed successfully parse/play the entire demo, but the frontend tick # is not actually correct, as the tickrate is [url=https://github.com/bryjch/dribble.tf/blob/dev/src/components/Analyse/Data/Parser.ts#L105]scaled down to 30TPS[/url], resulting in the displayed tick values being 1/2 of what they should be.

I just tried removing the downscale, but running at 60TPS totally annihilates performance. I'm not super familiar with the demo.js parser, so I may just display the tick values as [b]tick * 2[/b], but it:

[list]
[*] still doesn't account for paused ticks (they end up being "padded" to the end of playback)
[*] may be slightly off the actual ingame tick (reference comparisons below)
[/list]

---

I may just totally remove showing the tick #, and just display a playback time instead? e.g. [03:40 / 19:29]

Otherwise I could just "display" [b]tick * 2[/b] (kinda sus), but it will be inaccurate for demos with pauses.

---

Used match below to test (as it has a pause & a VOD on Youtube to reference).

Youtube: https://youtu.be/T2VHnG3N8fc?t=323

Comparisons : https://imgur.com/yK5E78N

[i]Also seems there are some bugs that occur with certain types of STVs (maybe due to certain plugins?) or maybe pause, that cause PlayerResource data to be missing (so players show up pink/unknown). TBD...[/i]

Edit: yo we can't use emojis here?
37
#37
4 Frags +

You're pretty much completely right, I never bothered adding pause handling, to do it properly would probably involve cutting out the pauses when caching the tick data and save the pause start/end tick so you can later translate the ticks back.

I've never done this because I've personally never had to open a demo in the browser that had a tick in it :)

You're pretty much completely right, I never bothered adding pause handling, to do it properly would probably involve cutting out the pauses when caching the tick data and save the pause start/end tick so you can later translate the ticks back.

I've never done this because I've personally never had to open a demo in the browser that had a tick in it :)
38
#38
4 Frags +
Edit: yo we can't use emojis here?

limitation of the site unfortunately, emojis nuke all the stuff after them for some reason

[quote]Edit: yo we can't use emojis here?[/quote]

limitation of the site unfortunately, emojis nuke all the stuff after them for some reason
39
#39
0 Frags +

Hello, I was using this for a demo review today, and I noticed rotating the camera was a little funky. Left mouse button rotates the camera around the world, but is there a way to rotate the camera around itself such that the camera's world position stays the same, but the viewing angle/rotation changes?

Hello, I was using this for a demo review today, and I noticed rotating the camera was a little funky. Left mouse button rotates the camera around the world, but is there a way to rotate the camera around itself such that the camera's world position stays the same, but the viewing angle/rotation changes?
1 2
Please sign in through STEAM to post a comment.