QW-Group / ktx

KTX: a QuakeWorld server modification
GNU General Public License v2.0
51 stars 46 forks source link

STATS: Endgame stats overhaul #96

Open blaps opened 4 years ago

blaps commented 4 years ago

After long talks on discord, this is where we at: endstats_4on4 Still alot of questions remain, like do we really need 38 char max width these days?

jite commented 4 years ago

IMO the bottom part is better on the new one, but the top part (per player) is worse; it needs separators or better alignment. It’s really cluttery. Damage given/taken should IMO be written, right now it says ”DMG1234 TKN4321”, it’s not obvious that the first part is given damage, could be total? :)

Nice that you’re working on improving it, give it a couple more rounds to increase readability and it’ll kick ass ;)

deurk commented 4 years ago

Also suggested from closed linked issues :

wernerml commented 4 years ago

luxury !

suddendeathTV commented 3 years ago

Suggestion for end stats that would be interesting in a 4on4 stream scenario: 1) pellets hit/pellets fired from the boomstick (just like cells hit/cells fired with the LG, the boomstick accuracy % is sometimes misleading. 2) Damage done when not having a weapon (RL/LG/GL). We already have EWep dmg given, which is nice to see how much damage you dealt to enemy weapons, but it would be a very interesting stat to see how much damage you dealt without a weapon. Out of those 10k you might end up on, how much of that was done by a rocket launcher and exactly how much damage does the boomstick do through the course of a game?

These two suggestions would be big for streaming purposes, if possible.

/andeh

tcsabina commented 2 years ago

Recent discussion on Discord picked this topic up. Andeh showed the NQ variant:

   PLAYERSTATS   |    team    | kill | weapon | ping | IP
-----------------+------------+--------+------+----------------
 [sh] levon      | Yellow     |  50% |   26%  |   32 |
 AllBunsMAtter   | Yellow     |  41% |   27%  |    2 |
 #1 CD           | Blue       |  54% |   29%  |   12 |
 soros@boarder   | Blue       |  50% |   27%  |   17 |

    QUADSTATS    | quads | efficiency | enemy | self  | teammates
-----------------+-------+------------+-------+-------+-----------
 [sh] levon      |    1  |     11%    |    3  |    0  |      0
 AllBunsMAtter   |    3  |     20%    |    7  |    0  |      0
 #1 CD           |    3  |     25%    |    7  |    0  |      0
 soros@boarder   |    3  |     20%    |    9  |    0  |      0

    BADSTATS     | paks | self | team
-----------------+------+------+------
 [sh] levon      |    2 |   2% |   5%
 AllBunsMAtter   |    1 |   0% |   2%
 #1 CD           |    1 |   1% |   0%
 soros@boarder   |    3 |   5% |   6%

   EFFICIENCY    | bullets | nails | rockets | lightning | total
-----------------+---------+-------+---------+-----------+-------
 [sh] levon      |   29%   |   0%  |   28%   |    17%    |  26%
 AllBunsMAtter   |   29%   |  17%  |   30%   |    23%    |  27%
 #1 CD           |   33%   |  14%  |   32%   |    28%    |  29%
 soros@boarder   |   27%   |   9%  |   28%   |    29%    |  27%

    KILLSTATS    | frags | enemies | self | teammates | killed | dmgGvn | dmgTkn
-----------------+-------+---------+------+-----------+--------+--------+--------
 [sh] levon      |   18  |    18   |   0  |      0    |    18  |   3644 |   4188
 AllBunsMAtter   |   21  |    23   |   1  |      1    |    31  |   6111 |   4977
 #1 CD           |   26  |    26   |   0  |      0    |    22  |   5699 |   4911
 soros@boarder   |   19  |    23   |   1  |      3    |    19  |   3466 |   4844

   TEAMSTATS   |  Yellow      |  Blue
---------------+--------------+--------------
Q : 666 : Ring |  4 :  0 :  0 |  6 :  0 :  0
RL : LG : GL   | 17 : 11 :  9 | 17 :  6 :  8
SNG : NG : MH  |  6 :  7 :  6 | 10 :  3 :  8
RA : YA : GA   |  8 : 11 : 17 | 16 : 11 : 15
+RLPak : -RLPak|   +4   -15   |   +3   -11
Control        |     %20.7    |     %24.3

AllBunsMAtter was the match MVP.

4on4 example:

  PLAYERSTATS   |    team    | kill | weapon | ping | IP
-----------------+------------+--------+------+----------------
 tical           | Red        |  58% |   30%  |   40 |
 soros@boarder   | Red        |  86% |   26%  |   40 |
 woods           | Red        |  42% |   29%  |   65 |
 #1 KX           | Red        |  85% |   29%  |   42 |
 jbone           | Blue       |  25% |   27%  |   42 |
 npd dicks0rder  | Blue       |  16% |   19%  |  108 |
 AllBunsMAtter   | Blue       |  32% |   26%  |   40 |
 #1 CD           | Blue       |  27% |   27%  |   45 |

    QUADSTATS    | quads | efficiency | enemy | self  | teammates
-----------------+-------+------------+-------+-------+-----------
 tical           |    1  |     11%    |    0  |    0  |      0
 soros@boarder   |    2  |     25%    |    6  |    0  |      1
 woods           |    0  |    N/A     |    0  |    0  |      0
 #1 KX           |   15  |     19%    |   35  |    0  |      0
 jbone           |    2  |     40%    |    1  |    0  |      0
 npd dicks0rder  |    0  |    N/A     |    0  |    0  |      0
 AllBunsMAtter   |    0  |    N/A     |    0  |    0  |      0
 #1 CD           |    0  |    N/A     |    0  |    0  |      0

    BADSTATS     | paks | self | team
-----------------+------+------+------
 tical           |    2 |   4% |   3%
 soros@boarder   |    1 |   3% |   4%
 woods           |    2 |   7% |   4%
 #1 KX           |    0 |   3% |   3%
 jbone           |    2 |   1% |   2%
 npd dicks0rder  |    2 |   1% |   1%
 AllBunsMAtter   |    1 |   1% |   0%
 #1 CD           |    2 |   1% |   5%

   EFFICIENCY    | bullets | nails | rockets | lightning | total
-----------------+---------+-------+---------+-----------+-------
 tical           |   27%   |  17%  |   32%   |    26%    |  30%
 soros@boarder   |   24%   |  10%  |   28%   |    11%    |  26%
 woods           |   21%   |   0%  |   38%   |    13%    |  29%
 #1 KX           |   29%   | N/A   |   28%   |    30%    |  29%
 jbone           |   29%   |   0%  |   35%   |    26%    |  27%
 npd dicks0rder  |   19%   |   6%  |   32%   |    29%    |  19%
 AllBunsMAtter   |   22%   |  12%  |   36%   |    24%    |  26%
 #1 CD           |   28%   |  16%  |   28%   |    25%    |  27%

    KILLSTATS    | frags | enemies | self | teammates | killed | dmgGvn | dmgTkn
-----------------+-------+---------+------+-----------+--------+--------+--------
 tical           |   31  |    33   |   1  |      1    |    21  |   5022 |   5300
 soros@boarder   |   41  |    43   |   0  |      2    |     5  |   6266 |   3255
 woods           |   18  |    19   |   0  |      1    |    25  |   3377 |   4844
 #1 KX           |   69  |    72   |   2  |      1    |     9  |   8666 |   2888
 jbone           |   17  |    17   |   0  |      0    |    49  |   4211 |   7022
 npd dicks0rder  |    6  |     8   |   2  |      0    |    40  |   2522 |   5233
 AllBunsMAtter   |   23  |    23   |   0  |      0    |    48  |   5155 |   6311
 #1 CD           |   11  |    12   |   0  |      1    |    30  |   4388 |   4777

What do you think @blaps? And what about dimman's comment?

mushis commented 2 years ago

regarding the 38 char max width... could this be changed? without much impact?

shamilovtim commented 2 years ago

This is what I derived for QW's flavor of stats:

Kill Stats

    Name    | Frags | Deaths+ | K:D | Streak | 
RL Stats

    Name    | Took | Killed | Dropped | AvgDmg | DHit
Damage Stats

    Name    | DmgGvn | DmgTkn | EWep | TmDmg | 
Armor Stats

    Name    | GA | YA | RA | MH | 
Efficiency (hitscan)

   Name    | bul | lg | total |
Powerup Stats

   Name    | Q | Frags | Strk | P | Frags 

There is such a thing as information overload and too many stats so there are a number of "useless" stats that I chose not to include. Ring stats, efficiency on frequently spammed weapons (GL, RL, nails).

I saw some suggestions about removing avg dmg from RL stats given that it's thrown off by quad and agreed with that assessment but I haven't removed it from this list.

My idea for any stats overhaul would be to focus on the important information without overloading the user and to easily let them compare to the other players in the game so they can easily see the stat leaders for every table.

zigg1zagg1 commented 2 years ago

Overall i think the new design is a lot more readable, but the NQ example posted above makes it easier to compare stats imo, having each players stats in a table like that makes comparing say LG accuracy with other players much easier as you wont have to scroll to each players individual section.

Checking the "Top scorers" section is always quite fun, badplace.eu shows a few that dont get shown ingame such as Unluckiest spawner, which would be nice to have Screenshot 2021-12-14 161711 I also like how this shows the stats as if they are on the end game scoreboard rather than the console, but thats another issue i guess.

One thing i think is an issue with both the new and old layout is that it can be difficult to find the end score of the match at a glance, it should probably be on its own line, maybe alongside the map name also.

tcsabina commented 2 years ago

@blaps @suddendeathTV , I started to work on this finally.... took me a biiit of a delay, but anyway, I am on this.

I came up with a kind of new layout, compared to anything that has been proposed so far: ezquake022 ezquake023

I hope you guys gonna like it! Let me finish what I have in mind, and then we can discuss the fine tunings

shamilovtim commented 2 years ago

For me it's a little too maximalist. Personally I wouldn't want to scroll that much and have to look at that much data. If you look at the tables I outlined they combine several of these and only surface the most pertinent information. I can't imagine myself caring how many SSGs or GLs I killed or how many times I died with SSG or SG, or how many SSGs or GLs I picked up.

tcsabina commented 2 years ago

Hi shamilovtim,

I understand what you say but the difficulty is to find to golden-ratio between 'not too much' and 'too few'. As you see the discussion here (which is just a slight dump of what happened at Discord over this topic), we have to realize that every one of us prefers something else. So I made the following choice/decision: Show everything that is being tracked/calculated by the mod! If someone doesn't want to see a part/section, (s)he just scrolls over it! But noone will complain, 'xyz is missing'.

Unfortunately the KTX mod which visualizes this. Would be better if the client would do it, with the possibility of fine-tuning what you want to see as 'Endgame Stats'. There has been some attempts towards it: the server records a .json (or .xml) version of the statistics, next to the demo. Theoretically it would be possible that after the match is over, the client downloads the .json file and visualize it based on the user's preference/selection of columns, etc. But that would require more effort (in the client), compared to updating a few sprintf() calls in KTX ;).

Regards, Toma

ps: are you on QW discord? if yes, on what nick?

mushis commented 2 years ago

I came up with a kind of new layout, compared to anything that has been proposed so far: .. I hope you guys gonna like it! Let me finish what I have in mind, and then we can discuss the fine tunings

This is information overload. I think we are deviating. This ticket started in a good direction, but we are getting nowhere. I've got suggestions and a question. Suggestions:

  1. Lets focus on specific areas first, instead of doing a complete "overhaul" as the ticket name suggests.
  2. Having said that, lets start in one area. My suggestion is to start with the team statistics (the "bottom stats"). I think the new team statistics on the first post looks great, and it is a strong candidate for gathering consensus. Of course, it isn't perfect as it is (will it ever be?).
  3. Sugestion of improvement on the new team statistics: Maybe other stats can be added, as Shafter, unluckiest spawner, among others, can be added as well. But just not too many!

Questions:

shamilovtim commented 2 years ago

Consider the tables i put together a couple of comments up. I think it's valid to say people might complain there's something missing but you can slowly add missing things back if you must. With too much info you risk overwhelming the user and sacrificing the usability of the entire stats for edge cases.

tcsabina commented 2 years ago

Hi mushi,

This is information overload. I think we are deviating. This ticket started in a good direction, but we are getting nowhere...*

I appreciate your honest feedback, but we are far from 'getting nowhere' ;). I am already in the middle of this, and I started exactly from the opposite direction: the individual player starts. I am more or less done with the player stats, so I won't dump it, obviously. I am still not convinced that showing more is a problem. It is just a few extra scrolls on your scrollwheel ;). But I will keep this in mind! You are a valuable member of the community, so your opinion does matter, mushi!

* Its possible to have different end-game statistics depending on the game mode, right? I strongly suspect it is, so I would really create new tickets for it, one per gamemode.

Yes it is possible. Currently the instagib, lgc, and ctf modes have a little influence on the endgame stats. I mean, different stuff is printed based on those game modes.

* 38 character width limit??? is there an alternative? I don't see anyone discussing this.

This will be a tricky topic, I think. 38 is waay too low/few nowdays, but what is a reasonable limit, I don't know. Probably we will need a few test runs to see what people use.

Regards, Toma

tcsabina commented 2 years ago

PR #237 will take care of this

tcsabina commented 2 years ago

Documentation: https://github.com/QW-Group/ktx/wiki/Endgame-statistics

mushis commented 2 years ago

note 1: table format is too much for duel. too many lines with zeroes in it. note 2: I miss the summarized stats at the end. note 3: is it possible to add some colors?

here's a screenshot of the current table stats: image

tcsabina commented 2 years ago

Hey mushi! Thanks for the valuable feedback! I know you don't like the table format, still you take the time and effort to test, and give constructive feedback! Appreciate it!

Note 3: I am not sure how 'deep' we can colorize it. The original Endgame Stats used 2 colors: the default white, and the brown/redish, which is used for the header. I can find out what is possible. In the meanwhile what would you suggest for coloring? What text to what color?

Note 2: I can imagine... There are actually 2 possible layouts:

Note 1: Hmm, this could be, but show me a real duel endgame (not a 4on4 bot game ;)). The original Endgame Stats had a different screen in case of duel. But I see no point in reducing the shown statistics if there are only 2 players playing. I am not a dueler, I must admit, though.

Regards, Toma

mushis commented 2 years ago

note1: In duel, IMO, there's no need to show: weapon taken, weapon dropped, weapon kills, enemy weapon killed, weapon times. And ofc all the remaining Team related tables, and even the item times ("in control" stat was enough). but thats my opinion.

note 2: I meant the "match statistics" in the previous endgame stats. there's an example at the screenshot on the first post, the left one.

note 3: colors. a suggestion would be just like how bps did in the first post. looks good.

It's my pleasure to give feedback. I'm afraid with these table statistics the players will spend even less time looking at them, because they can't immediatly find what they are looking for and will give up faster. People are lazy. for the record, my suggestion, based on the work done by bps and others, is the following: image actually, in Summary, below, there are 2 options for kills/drops/damage,

Having said that, I appreciate what you did. But I would really like some sort of better summary at the end :)

qqshka commented 2 years ago

You can let clients to customise statistics format with setinfo, you can let them choose if client interested for example in Weapon efficieny, Item times, Weapons Times etc, or/and you can let them have two styles of stats, new one and old one (actually the one which mushi/bps sugests, it looks pretty concise).

Also, you can hack (one more time) ezquake so end game stats would be shown by client as some sort of HUD element rather than sent as text by server (or add on top of the server stats so other quake clients still would have some information), and probably could be shown mid-game to some degree (since some stats are rather "private" during the game), but it would be quite epic task.

tcsabina commented 1 year ago

Feedback from Milton:

tcsabina commented 1 year ago

Feedback from xero: the direct hits related stats are not there in the new format (p->ps.wpn[wpRL].hits)

tcsabina commented 1 year ago

feature request from Hangtime:

tcsabina commented 1 year ago

Feedback from Milton:

* Quadruns in the top performer section should be omitted if it is 0 (meaning that there is no Q in the game just played).

* In top performers table a % missing after efficiency

* new stat table: dmg per weapon

Added with https://github.com/QW-Group/ktx/pull/255

tcsabina commented 1 year ago

Feedback from Hangtime: The armor timers seems to be incorrect.

zigg1zagg1 commented 1 year ago

Some feedback on the new stats: If a player drops mid game the table alignmnent is thrown off ezquake298 If using a truetype font the table is also misaligned, not sure if that one can be fixed tho

Also, is there a way to see hits/misses with weapon efficency? in the old layout you could see cells hit/fired next to your LG accuracy.

More general feedback; the | character is used as a vertical column, but with most qw charsets it looks more like a : is there a better way of doing this? I also miss the colour coding of the old layout, made things easier to find. Would be nice to have for example "RL" in red, maybe even use the tp_name_* values?

zigg1zagg1 commented 1 year ago

ezquake301 would make sense to hide the friendkills section if all players had 0, especially in ctf which has no friendly fire

tcsabina commented 1 year ago

With PR #264 the Endgame Stats are reverted to the original style. The new stats can be shown with /laststats

tcsabina commented 1 year ago

Some feedback on the new stats: If a player drops mid game the table alignmnent is thrown off

Fixed in KTX v1.42

If using a truetype font the table is also misaligned, not sure if that one can be fixed tho

I guess a true type font is not using fixed with, so there is not much to do

Also, is there a way to see hits/misses with weapon efficency? in the old layout you could see cells hit/fired next to your LG accuracy.

There is a new table in KTX v1.42: weapon damage. Could be an alternative

More general feedback; the | character is used as a vertical column, but with most qw charsets it looks more like a : is there a better way of doing this?

Not sure. A dedicate character from the gfx.wad could be an option, but that is again customizable. So if it looks okay with one gfx.wad, might be completely different for another client with another gfx.wad.

I also miss the colour coding of the old layout, made things easier to find. Would be nice to have for example "RL" in red, maybe even use the tp_name_* values?

Maybe somewhere in the future I will play around with colors. But not now ;)

tcsabina commented 1 year ago

would make sense to hide the friendkills section if all players had 0, especially in ctf which has no friendly fire

done in KTX v1.42

tcsabina commented 1 year ago

Feedback from Hangtime: The armor timers seems to be incorrect.

Fixed in KTX v.1.42