forum

Add to top pp only if more pp (how-to)

posted
Total Posts
11
This is a feature request. Feature requests can be voted up by supporters.
Current Priority: +4
Topic Starter
elie520
Hello,

I think everyone here agrees that it's not normal to lose pp on a map with a new play. Nevertheless, it happens a lot, and can sometimes result in the loss of 10% (Maybe more ? I just know I once went from 130 to 117pp with a new play).

Of course, one cannot hope for the server to compute the pp of every plays before it chooses to update it to top pp or not. This would be to heavy for the server, that couldn't handle it (or if it is not too heavy, why on earth is it not already done that way? So I'm assuming it's too heavy).

I see 2 solutions to this problem, one partial (and very easy), and another (my fav) :oops: a little bit more implicated, but fairer in a sense.

Solution 1:
Simple: before the server adds a new pp play, it checks whether it's better or not than the current pp on the map. The only problem here, is that a replay is sent over to the server only if the score on the play is better than your previous record. And in that case, some good pp play could be omitted. This problem is resolved in solution 2 below.

Solution 2:
The idea is to implement a pp computation on the client side. Compute the pp value of one replay would be easy for the client, and it could do it after every play. Then, the client confronts with the server (the current top pp could even be cached locally to often save a communication), and if it's more pp than the current top on the map, then the replay is sent over to the server, which would then recompute the pp value of the play, to ensure that the play was not misvalued (via a hack on the client side for example). Finally, if and only if the new value is better than before, it's updated.

Again here, the server will not be more sollicitated than it now is.

The only "problem" here is that if the pp forumla is suppose the remain secret, then it could (and would) be reverse engineered with the client application. But I'm fairly sure that it's already been done more or less precisely, and it's not really a big issue (unless the current formula is flawed, in which case it should be fixed) is it?

Security-wise, it's the exact same, since the server recomputes when a replay is recieved.
~~~~~~~~~~~~~~~~~~

If you like the idea, please comment below which solution you prefer. If you don't like the idea, please enlighten me :)
abraker
You must be living in 2015

elie520 wrote:

The only "problem" here is that if the pp forumla is suppose the remain secret
pp formula is found here

elie520 wrote:

Of course, one cannot hope for the server to compute the pp of every plays before it chooses to update it to top pp or not
I don't think the overhead of calculating pp is significantly greater than choosing whether to overwrite pp or not based on score. The pp is calculated using score, not replay.


Anyway the only gamemode where this issue is still somewhat prevalent is taiko. Per-mod scoring should have eliminated 98% of this.
Topic Starter
elie520
Thanks for your instructive answer!

abraker wrote:

You must be living in 2015
Just started recently sorry.

abraker wrote:

elie520 wrote:

The only "problem" here is that if the pp forumla is suppose the remain secret
pp formula is found here
That's awesome, been looking for this for a momment :D Thx ! Ok it doesn't depend only on score (for example numberof misses, 50, 100, 300, max combo and parameters of the beatmap and mods), but it's indeed farily simple, you are right. By the way, idk why they didn't factorize
(_aimValue+_speedValue)*0.97^(_amountMiss)
intead of doing twice the multiplication by
0.97^(_amountMiss)
.

abraker wrote:

I don't think the overhead of calculating pp is significantly greater than choosing whether to overwrite pp or not based on score. The pp is calculated using score, not replay.
I do think so. On average, I'm pretty sure I played every map about 10 times (some only once, some more than a 100 times). If every play was sent, it would multiply the server overhead by 10. I don't think that's wanted since we can already see the servers lagging from times to time. Furthermore, the verification that the calculated pp is more than the previous value would replace the verification that the current score is higher than the previous one (which would not be needed anymore)

abraker wrote:

Per-mod scoring should have eliminated 98% of this.
Well I almost only play with the same mods (usually only HD), and I've experienced this a lot so it clearly doesn't do the trick. Furthermore, with solutions as above, the server would not have to differenciate mods anymore, and that would be a direct win. Indeed, the server currently needs to check whether the pp is greater with sent play's mods, for every mods entry there is in the player's records.
Kondou-Shinichi
WELL YES IM THE ONE TO COMPLAIN WHEN MY GLORIOUS CROWN 306PP WENT TO 298PP
but its just how it always worked, I dont really think its a big major problem tbh
Topic Starter
elie520
What is sad is that even though it's not a major problem, it is a problem, and the fix is easy, but... like any other popular game, there's noone there to improve the game.
Kondou-Shinichi

elie520 wrote:

What is sad is that even though it's not a major problem, it is a problem, and the fix is easy, but... like any other popular game, there's noone there to improve the game.
the fix is not as easy as you think, as the top score would always overwrite the lower one
if it was changed, the past score cannot be changed, since the top pp score has already been overwritten

elie520 wrote:

abraker wrote:

Per-mod scoring should have eliminated 98% of this.
Well I almost only play with the same mods (usually only HD), and I've experienced this a lot so it clearly doesn't do the trick. Furthermore, with solutions as above, the server would not have to differenciate mods anymore, and that would be a direct win. Indeed, the server currently needs to check whether the pp is greater with sent play's mods, for every mods entry there is in the player's records.
per-mod scoring wasnt only for pp....
Topic Starter
elie520

Kondou-Shinichi wrote:

the fix is not as easy as you think, as the top score would always overwrite the lower one
if it was changed, the past score cannot be changed, since the top pp score has already been overwritten

I'm sorry but I don't understand what you want to say. The solution is not about keeping the best score, but the best pp. And it's only overwritten if the new one is better.
jesse1412

elie520 wrote:

Kondou-Shinichi wrote:

the fix is not as easy as you think, as the top score would always overwrite the lower one
if it was changed, the past score cannot be changed, since the top pp score has already been overwritten

I'm sorry but I don't understand what you want to say. The solution is not about keeping the best score, but the best pp. And it's only overwritten if the new one is better.
This means that the best score is lost. You could go from rank 1 on a map to irrelevant in extreme cases.

The only solution is to store both best pp and best score.

Alternatively you could replace score with pp.
Topic Starter
elie520

jesse1412 wrote:

This means that the best score is lost. You could go from rank 1 on a map to irrelevant in extreme cases.
Oh you mean that if we do it the way I'm describing (which is essentially keeping pp value instead of score), we would lose the top50 ranks relevance. Indeed I didn't think about the top 50's ^^ Well indeed then there are two possibilities : either install the pp as the new relevant score, or keep both. In either cases, I don't think it's too much to remember for the server, but it'll indeed need a little structural change on the server side :/
Naoise
scorev2 is coming and nobody really cares about score anymore
pp > score
abraker

elie520 wrote:

By the way, idk why they didn't factorize... intead of doing twice the multiplication by
Trying to figure out what you meant by this

elie520 wrote:

On average, I'm pretty sure I played every map about 10 times (some only once, some more than a 100 times). If every play was sent, it would multiply the server overhead by 10. I don't think that's wanted since we can already see the servers lagging from times to time.
I believe that lag is more about play verification than calculating pp. The anti-cheat system, which is online, has to process your play either way. That will happen regardless whether you add local pp calculation or not. Overhead, which is the amount of time needed to process the play, would remain same. Might as well have pp calc happen online then, which is exactly how it work right now.
Please sign in to reply.

New reply