Bug #1227

Real time SR win percentage doesn't display

Added by Spyhawk about 1 month ago. Updated 5 days ago.

Status:Fixed% Done:

100%

Priority:Low
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 about 1 month ago

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

Revision 10068c80
Added by Spyhawk 5 days ago

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

History

#1 Updated by Spyhawk about 1 month 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 about 1 month ago

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

#3 Updated by Spyhawk 9 days ago

  • Status changed from Feedback to Fixed

#4 Updated by Spyhawk 9 days 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.

#5 Updated by Spyhawk 5 days ago

  • Status changed from In Progress to Fixed

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

Also available in: Atom PDF