Feature request for categories with multiple players - Hide times that are not PB for any player
8 years ago
New Jersey, USA

Link to Category: http://www.speedrun.com/Portal_2#Cooperative_Game

Hi, I am a moderator of Portal 2. Our co-op category has many submissions that probably shouldn't belong because Personal Bests do not override old runs unless Player 1 and Player 2 are the same as an existing run. For example, there is a run with Klooger as Player 1 and Betsruner as Player 2, and another run with Betsruner as Player 1 and Klooger as player 2. In addition to this, both Klooger and Betsruner have better times playing with other players. The result is that this inflates the leaderboard and people's ranking appears to be much worse than it should really be.

We would like add a display option on multiple player categories to hide all runs that are not a Personal Best for any of the runners playing. As long as it is the personal best of at least one of the runners, it should remain shown. I'm not sure if this will be difficult to implement on the site's backend... but I'm hoping it can be done. Please let me know if this is something that can be worked on by the development team.

Thanks, Znernicus

G-lint, Avetixz and 2 others like this
French Southern Territories

I totally agree with this, the places counter are a bit weird since Klooger has done runs with so many players ...

United States

Adding this functionality would probably impact load times substantially unless a good way was found to do it. Every run would have to be checked against runs for all players. A workaround solution seems hackish and possibly detrimental if made available to other boards.

(I locked the older thread, the new information in it is redundant and the old information is very outdated.)

New Jersey, USA

Hmm... maybe forget the option to hide/show these extra runs, just run a comparison once on the leaderboard and strip out the runs that shouldn't stay. The check against the rest of the runs on the leaderboard would then only be done when someone submits a new PB... it would be checking to see if there are any old PBs that can be removed due to the addition of the new one.

Granted, I realize this is still pretty complicated to program.

New Jersey, USA

actually... I imagine when new runs are submitted there is already some check for an existing one to replace. We'd just have to add an exception where if the run that would be replaced is another runner's PB, it stays.

United States

I believe the notion of a PB is calculated every time the run is loaded right now, which probably isn't optimal. It gets similarly complex when we would go to delete a run if the PBs were cached.

Vienna, Austria

Me myself as a dev don't see a too big problem with that. It may even be used in general since it would reduce loading times and would allow async loading. My Idea for this is the following:

  • Load the entire Page, but not the leaderboards yet!
  • Echo a (Java-)Script (-Tag) into the Page (when it's getting loaded) which will load the Leaderboards via AJAX.
  • When the Script has loaded it, it simply appends the leaderboard to the page. Either with an Iframe as entire result, or formatting it and appending it into a specified div (or whatever tag).

When loading the Leaderboards via AJAX, you simply send a request with Arguments (if needed) which define how the leaderboards should be loaded/calculated/parsed, etc. With that you can check the PBs and Times server or client wise (client for less work on the server) and the page would still be loaded.

Bavaria, Germany

I've added this as an option, 'Player obsoletion mode'. There's a couple of possible modes, which should suit your requirements.

Edited by the author 7 years ago
New Jersey, USA

Thank you! The descriptions for each mode look good to me.