Woah, that's a lot of stars. This is a nice idea, but the formulas need work.
Before I start, let me mention that I have a
similar request which is asking for a team based scoring system. The only difference is that it allows teams of any level to be matched. The formulas in that request need some work and is likely not to receive the same attention as this request. If you decide to allow teams of any level to be matched, then I can let the mods kill that request. I will have to figure out the formula that allows to compare plays by lower ranking player to higher ranking player on an equal level.
Now let's get down to the formulas:
Team level = (Average stars of the 100 best performance of player 1, added to player2, 3, n)/n
This formula has 2 issues
- You are taking the top 100 best performances of some player. If you look at players' top performance section, you will notice that performance quickly degrades as you go down. The 100th performance would be anywhere between 7/8 to 1/2 of the top 1 performance. Moreover, what if a player has several 200pp performances and the rest 100pp performances and lower? Should that player drag the team lvl down because of it even if that player can do much higher difficulty than what you formula says? I suggest taking the top 20 or top 10 performances to provide better results of what the player is capable of.
- You are going by the stars, which is map difficulty for the top performances. Suppose a player has a top of 20pp D ranks on 5* maps. So the formula will justify that player can do 5* maps? You might as well get rekt.
TP = ( 1000+sqrt( Team score 2 [winning team] - Team score 2 [losing team]) )/100
This formula really is this:
TP = 10 + sqrt(avg(winning team) - avg(losing team])/100
This has several problems:
This is SOOOO farmable. The loosing team can just be losing combo on purpose, giving any team they get matched with points. And they wouldn't even get penalized for it. Brilliant!
There is unfairness if the teams are imbalanced. Suppose it's 1 vs 4. The one player get 3M and the four players get 1M each. According to your formula, the team of four wins. Where is the fairness in that? The team of four players have an advantage in quantity. It's more impressive that the one player manages to get a score much higher than any of the team of four individually.
Now to solve the problems:
Team level
This is the core of the formula you see. It equals to 1. That means what ever it is multiplied by would be equal to the value you multiply this by. The ratio you see in the formula is the ratio between the achieved score for the map divided by the max possible score achievable for the map, taking mod multipliers into account. According to this formula, a play of 750,000 out of 1,000,000 on a 5.2* map would be equivalent to a 3.55* play. The equivalent star diff goes up exponentially as the ratio approaches 1:1 until it reaches the difficulty of the map. You can play with the number here. This would be calculated for every play in the suggested top 20 or top 10 and then averaged to come up with the player's star level. Then this will be done for every player and that will be averaged together. So the formula would be this:
Team points
This one is more complicated. This can be done 2 ways depending on what you think is more fun to see. Would you rather see players getting more points the wider the score gap or more points the closer the score gap? If you think about it, the one with the closer score gap sounds counter-intuitive. How can a play of 1,000,000 to 999,999 be worth much more than a play of 1,000,000 to 100,000? With the current intuition, the team with 1M points should get much more points if the other team scored 100,000 than if the other team scored 999,999. But what would you rather see? An extremely close match which raises the stakes into a hype level as high as cookiezi's 700pp play, or just another looser vs winner match? In my opinion the points should be counted based on what kind of performance it gives to whoever is spectating, not for the teams.
I'll give you formulas for both ways, then you decide what will be more fun to see: a 1,000 team points extremely close call or a 1,000 team points overpowered winner vs looser.
More points for wide score gap:
This formula doesn't care who is winner and who is looser. The looser and winner is determined by the formula just by plugging in the results. The winner will receive a positive score result, and the loser will have a negative score result. Why negative? To penalize for loosing, as stated as one of the problems. Yes, there will have to be teams with negative team points. They should try harder to get those back
Also notice how it's a ratio of means. That means (no pun intended) that the players on the team will need to dependent on each other more. One player can't simply carry the team. One player with a score of 1M defeats four players all with scores of 999,999. This will make it fair for both sides and both sides shouldn't worry about being outnumbered. If a player fails, that would count as a 0 and the player should not be able to recover. If a player disconnects, then it will should also count as a 0 to prevent players disconnecting on purposes to boost the team's score if the disconnected player has a low score. Nothing can be done with accidental disconnects, not that anything has been done about it in the past.
Due to the relation between the two formulas, it can be simplified to Team A = -Team B or Team B = -Team A. This formula is based on the perception of gap between 2 values. The closer the gap, the more insignificant it is and vice-versa. I used scores from OWC 2015 to see what results this will give under score v2, and I suggest score v1 to be used for this formula. You can see the results here. As for mania, I suggest you multiply by 100 instead of 10.
More points for smaller score gap:
The formula for this would be:
Like last time, in this case Team A = -Team B. You can play around with the numbers here.
How I think players will behave to this kind of system makes things interesting. I see a lot of players bailing as soon as they think they can't make to the low score gap or will loose a good amount of points because they are lagging behind by some 10 points or so. However, the ones that go all the way through at achieve the low score gap will result in a rare event. A score ratio of 1,000,000 : 999,999 produces a huge amount of team points (230k), but this is very unlikely using score v1. If the ratio is 1,000,000 : 999,000 then it produces about 231 team points. Those 999 points would be worth a lot if targeted correctly, and that would be very impressive to see.
There are several minor problem with this formula. One is the event of a tie. That has to be a case to be handled separately. In in this event, I think it's fair to give both team an equal amount of team points equivalent to sqrt(score) or something similar to this.
Another one is that it is easier to reach a smaller score gap on easier map. In that case I suggest to multiply by star_diff.
Last but not least, players targeting the small score gap can make it easy by breaking combo a lot. It would be possible to get a lot of points for low scores in some edge cases. To fix this, I suggest multiplying by accuracy, where accuracy is a value from 0.0 to 1.0.
To make the formula more sensitive to difficulty and accuracy, I squared those.
The final formulas after fixing the problems are the following and you can play around with them here
Well that's all. I'll wait for response/criticism/etc.