Bug #1227

Real time SR win percentage doesn't display

Added by Spyhawk 7 months ago. Updated 3 months ago.

Status:Fixed% Done:

100%

Priority:LowSpent time:-
Assignee:Spyhawk
Category:Mod generic
Target version:2.77
OS: Arch:

Description

Sometimes, the estimated win percentage doesn’t display in the scoreboard.
Investigate (seen on TM server).

2019-04-14-170915-fueldump.jpg (318 KB) Spyhawk, 14.04.2019 17:12

2019-04-14-171010-fueldump.jpg (277 KB) Spyhawk, 14.04.2019 17:12

1076
1077

Associated revisions

Revision a52eb271
Added by Spyhawk 7 months ago

game: fixed SR win percentage not always displaying, refs #1227

Revision 10068c80
Added by Spyhawk 6 months ago

mod: only send delta rating in intermission, refs #403 #1127

Revision cfe54ca4
Added by ryven 3 months ago

mod: fix old demo playback, fixes #1320

  • refactored code a little to enhance gdb experience
  • fixed old demo playback was broken due to out of bounds array writes
    upon skill rating parsing

refs #403 #1227

History

#1 Updated by Spyhawk 7 months ago

  • Priority changed from Normal to Low
  • % Done changed from 0 to 20

The issue seems to come and go accross a single game. Interestingly, it seems the axis percentage is sometime gone, and sometimes both percentage are gone (but never the allies percentage alone). Since the allies percentage is computed on the basis of the axis percentage server-side, it looks like the win percentage is correctly done at ant time, but the values aren’t always sent correctly to clients for display. See CG_ParseSkillRating() for the client end. This looks like some sort of overflow happening on the server end just before sending the values (maybe when server is highly populated?).

In any case, the win percentage is done correctly. This is only a minor display issue.
Possible solution: increase buffer size in G_SendSkillRating().

#2 Updated by Spyhawk 7 months ago

  • Status changed from New to Feedback
  • % Done changed from 20 to 100

#3 Updated by Spyhawk 6 months ago

  • Status changed from Feedback to Fixed

#4 Updated by Spyhawk 6 months ago

Actually not fixed. The issue seems still present with a high number of players (30+ connected).
Either the buffer wasn’t previously increased enouh, or it’s something else. (note: it’s most probably something else...)
Edit: The max length of a string passed to Cmd_TokenizeString is limited to MAX_STRING_CHARS (1024 char) anyway, so increasing it client side won’t do much(?). Instead, try optimizing what is passed and when it is passed:

  • optimize by sending whole rating directly instead of mu and sigma. These value aren’t used client side in scoreboard/debriefing anyway. (done already).
  • optimize by sending delta rating only in intermission. These values aren’t used in in-game scoreboard, only in intermission. (done)

#5 Updated by Spyhawk 6 months ago

  • Status changed from In Progress to Fixed

Code has been optimized, and I cannot reproduce locally anymore (with 32+ bots).

#6 Updated by Spyhawk 3 months ago

  • Status changed from Fixed to In Progress
  • % Done changed from 100 to 90

Reopening. Looks like a similar issue happens with SR display client side (same code as map bias is used to send the info to clients).
Closing, the issue isn’t client side (see #403 for more robust code commits).

#7 Updated by Spyhawk 3 months ago

  • Status changed from In Progress to Fixed
  • % Done changed from 90 to 100

Also available in: Atom PDF