Opened 10 years ago

Last modified 9 years ago

#2449 new enhancement

Store more lobby user statistics into the database. — at Version 7

Reported by: scythetwirler Owned by: scythetwirler
Priority: If Time Permits Milestone: Backlog
Component: Multiplayer lobby Keywords:
Cc: Patch:

Description (last modified by scythetwirler)

It would be nice to have profile fields such as Highest Rated Win, Average Rating of Opponents, and Win/Draw/Loss Statistics.

Change History (7)

comment:1 by Josh, 10 years ago

The original idea behind the database was to store primitive statistics and generate more complex statistics as needed. I think these things could be generated on request (storing average rating of opponents in the DB would be especially complex).

comment:2 by scythetwirler, 10 years ago

I think we should minimize the calculations needed on retrieval for performance since I assume that people may view profiles more times than they play rated games. Updating the average rating for opponents after every game should only comprise of

average_rating = (average_rating * num_games + new_opponent_rating)/(num_games + 1)
Last edited 10 years ago by scythetwirler (previous) (diff)

comment:3 by scythetwirler, 10 years ago

Status: newassigned

comment:4 by Josh, 10 years ago

I considered that, but that would result in an increasingly unmovable average opponent rating.

limit (num_games -> infinity) of ((average_rating * num_games + new_opponent_rating)/(num_games + 1)) = 0 delta change.

comment:5 by scythetwirler, 10 years ago

That is part of the purpose. :P It gives a general overview of the type of players a user prefers to play, whether the user likes to play people much better at the game or "farm" off lower rated players.

comment:6 by Stan, 10 years ago

Would be nice to have a reset also server side to be able to make your ratio higher if you had lost a lot of game in the past. Because if let's say you lost 100 games, it's hard to keep up.

comment:7 by scythetwirler, 10 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.