sourencho / ungroup_game

A multiplayer game about temporary alliances written with a custom engine in C++ and SFML
13 stars 1 forks source link

Show variance for average values in server termbox metrics #196

Open sourencho opened 4 years ago

sourencho commented 4 years ago

I was just testing my client against the remote server and although I had an "average drift" of 3 (gameplay should be smooth at this number), i was experiencing a lot of snapback. You can kind of see it in this gif: ungroup_snapback

I think this is because even though on average the metric was doing well, it had a lot of variance. I pinged the server and saw a lot of variance:


64 bytes from 45.79.106.21: icmp_seq=45 ttl=54 time=9.170 ms
64 bytes from 45.79.106.21: icmp_seq=46 ttl=54 time=8.339 ms
64 bytes from 45.79.106.21: icmp_seq=47 ttl=54 time=55.735 ms
64 bytes from 45.79.106.21: icmp_seq=48 ttl=54 time=130.032 ms
64 bytes from 45.79.106.21: icmp_seq=49 ttl=54 time=8.619 ms
64 bytes from 45.79.106.21: icmp_seq=50 ttl=54 time=39.570 ms
64 bytes from 45.79.106.21: icmp_seq=51 ttl=54 time=7.623 ms
64 bytes from 45.79.106.21: icmp_seq=52 ttl=54 time=9.156 ms
64 bytes from 45.79.106.21: icmp_seq=53 ttl=54 time=9.065 ms
64 bytes from 45.79.106.21: icmp_seq=54 ttl=54 time=9.991 ms
64 bytes from 45.79.106.21: icmp_seq=55 ttl=54 time=26.506 ms
^C
--- 45.79.106.21 ping statistics ---
56 packets transmitted, 56 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 7.623/40.768/211.696/54.035 ms
copacetic commented 4 years ago

I wonder if variance is exactly what we want maybe "bad packets" is more useful, like a count of packets with a high cmd drift

On Sun, Apr 26, 2020, 11:36 PM Souren Papazian notifications@github.com wrote:

I was just testing my client against the remote server and although I had an "average tick delta" of 3, i was experiencing a lot of snapback. You can kind of see it in this gif: [image: Uploading ungroup_snapback.gif…]

I think this is because even though on average the metric was doing well, it had a lot of variance. I pinged the server and saw a lot of variance:

64 bytes from 45.79.106.21: icmp_seq=45 ttl=54 time=9.170 ms

64 bytes from 45.79.106.21: icmp_seq=46 ttl=54 time=8.339 ms

64 bytes from 45.79.106.21: icmp_seq=47 ttl=54 time=55.735 ms

64 bytes from 45.79.106.21: icmp_seq=48 ttl=54 time=130.032 ms

64 bytes from 45.79.106.21: icmp_seq=49 ttl=54 time=8.619 ms

64 bytes from 45.79.106.21: icmp_seq=50 ttl=54 time=39.570 ms

64 bytes from 45.79.106.21: icmp_seq=51 ttl=54 time=7.623 ms

64 bytes from 45.79.106.21: icmp_seq=52 ttl=54 time=9.156 ms

64 bytes from 45.79.106.21: icmp_seq=53 ttl=54 time=9.065 ms

64 bytes from 45.79.106.21: icmp_seq=54 ttl=54 time=9.991 ms

64 bytes from 45.79.106.21: icmp_seq=55 ttl=54 time=26.506 ms

^C

--- 45.79.106.21 ping statistics ---

56 packets transmitted, 56 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 7.623/40.768/211.696/54.035 ms

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/SourenP/ungroup_game/issues/196, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIBOZZI72ATDO7JJFSFVYTROURXTANCNFSM4MRUJZFQ .

sourencho commented 4 years ago

How about both? We can have a "warnings" panel that's spitting out warnings like server SPS < 20 or Client 3 Average Drift hit > 7 (20) while still showing the data in another panel.

This way it's still transparent what the warnings are based on and you don't need to rely on just the warnings' interpretation of the data

sourencho commented 4 years ago

We could have a warning section per client and one for the server so one spammy client doesn't prevent us from seeing other warnings

copacetic commented 4 years ago

gotta consider terminal screen real estate. soon might need to add a way of going into different terminal "views"! like give me more data on a specific client :)

both works for me, could all be part of the players table with a count of discarded due to drift updates in the last 10 seconds or something like that.

I've been thinking about your point about out of order packets or packets which are actually ahead of the server , might be worth tracking how often this happens in the long run or handling it more robustly.

for now though I think we can feel quite confident in the performance of the server at least and should focus on client quality improvements mostly

On Mon, Apr 27, 2020, 3:05 PM Souren Papazian notifications@github.com wrote:

We could have a warning section per client and one for the server so one problematic client doesn't spam

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SourenP/ungroup_game/issues/196#issuecomment-620260624, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIBOZYTBDHJ5ZHSWTN4HT3ROX6UFANCNFSM4MRUJZFQ .