forum

New Combo Scoring System? (ComboVloop)

posted
Total Posts
4
Topic Starter
ANGELF708
Introduction
In my short time playing Osu, I’ve noticed a recurring theme. The scoring system is very heavily criticized. One of the issues I’ve heard in particular being the combo score. To be precise I heard it in the following video:



Misses early on don’t matter as much as misses in the end game. The video above explains it better than I probably could, so I really recommend you watch that. I’m not entirely opposed to this “issue,” because personally I think it makes the game more fun, as the farther you get in a song the more pressure there is to not miss. (Maybe I’m just a masochist who enjoys stress.) I do however understand Osu is considered an ESport and therefore a fair and mathematically “correct” scoring system is important to the core fanbase. (Obviously otherwise, it wouldn’t be a point of mass-debate.)

Anyway, I’m not entirely sure if anyone has suggested a similar solution, but I have tried going through forum posts and did a little Googling, and I didn’t see anything similar to a solution like this:

Concept Explanation
The looping system would simply calculate the combo by looping it back around. For example, let’s say you get a combo of 100 before missing your first beat. Then your final combo at the end is 50. In this case we would add the first combo (100) by the final combo (50) for a total of 150 combo to be multiplied by the score achieved in those two time frames, or simply (although not quite accurately) the combo would loop back around. This way misses will/should be weighted equally.

For the “Real Example” section below, I’ll score in, what I’m going to call, “post”. For those unaware, Osu scores on a live note by note basis, (we’ll call this “live,”) so that each note is multiplied by the combo score at the time of its click. I just think “post” is more fair. “Post” is essentially scoring each note in its combo by the total combo at the end of each combo. (Hopefully this makes sense, explaining this isn’t very easy.)

Finally, I’ll score it using scores of 1, 2, and 3, (“ANGEL” scoring system) in the “Real Example”, as opposed to scores of 50, 100, and 300. (“Base” scoring system) These numbers, honestly, just make more sense to me, because the “Base” scoring deviation feels kinda random. Also the numbers are way bigger than they need to be. Especially considering that there was (atleast at one point) a bug where if you scored too high, the binary memory would run out and you would get a negative score. So why have such big numbers when they literally cause leaderboard breaking bugs! If you really like those big numbers though, or have reason to believe the original scores are more fair, then I’ll add a result for “base” using those scores. It shouldn’t matter either way. (Also when it comes to spinner I’ll add the same way Osu does. By number of full rotations, but instead of 100 points per full rotation I’ll just do 2.)


What if you FC?
If you FC the map, then the total combo would just be multiplied by two, so no you won’t get an infinite score, by infinitely looping, hence the addition of “(although not quite accurately)” above. (Although the concept of infinity + your actual score would be cool to see on the leaderboard.)

Real Example



Above is the example video I used. I calculate this new scoring system using the following Python code:
values = [] #add the hit scores here (remember the miss = 0, 50 = 1, 100 = 2, and 300 = 3)

#add a shit ton of the same score in a row to values
def addAshiton(value, amount):
  for index in range(0, amount):
    values.append(value)

addAshiton(3, 9)
values.append(2)
addAshiton(3, 22)

print(values)
valuesFinalIndex = len(values) - 1

#calculate the combo including looping
def calculateCombo(values):
  combos = [0]
  combosIndex = 0
  if(0 in values):
    for index in values:
      if(index != 0):
        combos[combosIndex] += 1 
      else: #index == 0
        combos.append(0)
        combosIndex += 1
    #add the last index to the first index
    combos[0] += combos[combosIndex]
    combos[combosIndex] = 0
  else:
    combos[combosIndex] = valuesFinalIndex * 2
  return combos

combos = calculateCombo(values)
print(“Combos Array: “, combos) 

#multiply the combo by the scores
def calculateTotalValues(values, combos):
  combosIndex = 0 
  totalValues = [0]
  totalValuesIndex = 0
  for index in values:
      if(index != 0):
        totalValues[totalValuesIndex] += index * combos[combosIndex]
      else: #index == 0
        totalValues.append(0)
        totalValuesIndex += 1
        combosIndex += 1 
  #valuesFinalIndex = len(values) - 1
  totalValues[0] += values[valuesFinalIndex] * combos[0]
  return totalValues

totalValues = calculateTotalValues(values, combos)
print(“Total Values Array: “, totalValues)

#add all of the scores togther
def calculateFinalValue(totalValues):
  finalValue = 0
  for index in totalValues:
    finalValue += index
  
  return finalValue

finalValue = calculateFinalValue(totalValues)
print(“Final Value: “, finalValue)

#final score calculation
def calculateScore(finalValue):
  difficultyMultiplier = 1 #This depends on a lot of factors, see Osu Wiki: https://osu.ppy.sh/wiki/en/Gameplay/Score/ScoreV1/osu%21
  modMultiplier = 1 #in “Real Example” We just do no mods
  score = finalValue * (1 + (difficultyMultiplier * modMultiplier / 25))
  return score

score = calculateScore(finalValue)
print(“Score: “, score)

For the calculateScore function I just used the equation provided on the wiki, substituting my own combo and adjusting for using the “post” method mentioned in the “Concept Explanation” section of this post. Notice how we set the difficulty multiplier to just 1. I would set it to an actual difficulty multiplier, but on the wiki it shows a very complex equation, with variables I don’t have access to. Furthermore I didn’t add spinners because that requires the number of full spins, and I’m tired.

If you know even a little bit of python you could test this system out yourself. You just have to put in all of your scores. (which can take a while) I also added the addAshiton (Add a Shit ton) method to allow you to add multiple of the same score in a row at once.

The original score according to Osu is 38,338. Using my code in the “ANGEL” scoring system, the score is 6,319. Using my code in the “Base” scoring system, the score is 625,456. And finally just in case the deviation had a reason I’ll use scores, 1, 2, 6. (ANGELd) This scoring system results in a score of 12,509.
Here is all of these listed out:


  • Original - 38,338
    ANGEL - 6,319
    Base - 625,456
    ANGELd - 12,509

Conclusion + Addressing the Issues
From what I’ve heard and read, I know this doesn’t even begin to scratch the surface of issues people pull from the current scoring system. Furthermore I didn’t even talk about the PP system. (Mostly because I don’t get it. I understand that the formula is some combination of aim, speed, accuracy, and strain according to the Osu wiki, but they never show an actual formula, and I have no clue what “strain” is. If you know please explain below, I beg of you!)

This would basically be ScoreV3, or something along those lines. Personally I like the sound of ScoreVloop! (Score the Loop) Although I much prefer a separation. ComboV2/ComboVloop for the changes made to the combo scoring. And ScoreV3/ScoreANGEL/ScoreANGELd for the changes I made to the main scoring system. (Even though that’s not exactly the point of this post.) Setting it out like this would allow for a more modular scoring system so we could have for example: ScoreV1 + ComboVloop, or ScoreV2 + ComboVloop.

And finally if you view my account history, I’ve not been playing for very long, so I probably am completely clueless and this entire post was a waste of energy. Luckily, I enjoy writing pointless essays! /gen (over 1000 words long btw lol, not including this sentence obviously.)

Also one more thing! Assuming this system actually makes sense, maybe I’ll make a mod to use this scoring system. Depends on my energy levels/Community Enthusiasm/Ease of Modding Access and Documentation in Osu.
anaxii
Oh wait, this is potentially a great idea that you are suggesting here! I'm very bad at programming so I won't say more about that, but maybe it will interest the devs or other people I guess? To be honest I would like to test the ScoreV3/ScoreVloop in game :)

By the way, did you notice this issue as soon as you watched Willy's video or just before?
Voidedosu
I don't want to sit here and be like "I didn't understand this so I'm throwing it out!", but A.) I really do not understand what you're doing, and B.) Whether or not Osu is a E-sport because it has the OWC or other tournaments (I'm presuming) should not dictate the way it is scored, it should be the other way around.

The way Osu does its scoring is fine and does not need to be changed. The scores obtained are certainly exaggerated due to the more exponential means of getting more points from a higher combo, and I totally get the frustration of tanking your ability to place in the leaderboards because you missed 50-60% in, but as you mentioned that's part of the challenge. Plus, we should not be changing the way Osu is scored to be like those other games just because it is not like those other games (which seems to be what the argument boils down to).

And sure, I'll admit to some bias for it because I'm an SS player and I don't see these issues at all because I rarely ever submit scores with misses, but I don't think that's a big factor in my opinion. The only place we "need" a "fairer" scoring system is for tourneys like OWC, and even then I still find it a bit dubious.
Topic Starter
ANGELF708

I AM VERY SMART wrote:

Oh wait, this is potentially a great idea that you are suggesting here! I'm very bad at programming so I won't say more about that, but maybe it will interest the devs or other people I guess? To be honest I would like to test the ScoreV3/ScoreVloop in game 🙂

By the way, did you notice this issue as soon as you watched Willy's video or just before?
Thank you!

Willy points out the issue in the video. (Although maybe he doesn't exactly call it an issue, but I certainly took it that way.) For about 2 days after, I completely forgot about it, until I was in class today. I tried out Osu mobile for the first time, and while I can't exactly remember how the dots connected in my brain, the loop system idea just occurred to me. I then spent the rest of the class period, and then a little less than 4 hours out of my afternoon, writing the code and typing up my post. Hopefully, that answers your question. I was a little confused by what you meant. 🙂

Voidedosu wrote:

I don't want to sit here and be like "I didn't understand this so I'm throwing it out!", but A.) I really do not understand what you're doing, and B.) Whether or not Osu is a E-sport because it has the OWC or other tournaments (I'm presuming) should not dictate the way it is scored, it should be the other way around.
Absolutely they shouldn't, and I'm not really saying that this would be a change to the base game. Remember that ScoreV2, is not in the base game either. It is a mod that is used in said tournaments. I just don't think that ScoreV2 did enough, and that all it really did was mitigate certain combo biases and other things, without really solving the issue. (Atleast to my understanding.)

At its core, all you need understand is, that in this system your initial combo, and the combo you end the song with will add on to each other. In other words the combo you end the song with will loop back to your initial combo. Hopefully that clears it up for you??? I'm sorry its a really difficult concept for me to explain. All the other changes I made were rather minor.

Voidedosu wrote:

The way Osu does its scoring is fine and does not need to be changed. The scores obtained are certainly exaggerated due to the more exponential means of getting more points from a higher combo, and I totally get the frustration of tanking your ability to place in the leaderboards because you missed 50-60% in, but as you mentioned that's part of the challenge. Plus, we should not be changing the way Osu is scored to be like those other games just because it is not like those other games (which seems to be what the argument boils down to).
I'm not entirely certain which "other games" you're referencing. I like Osu the way it is, and my concept is one pulled straight out of my own ass. I'm not really a rhythm gamer. Besides maybe Just Dance, Osu is the only rhythm game I've ever been invested in.

Voidedosu wrote:

And sure, I'll admit to some bias for it because I'm an SS player and I don't see these issues at all because I rarely ever submit scores with misses, but I don't think that's a big factor in my opinion. The only place we "need" a "fairer" scoring system is for tourneys like OWC, and even then I still find it a bit dubious.
Yeah, we don't need a fairer scoring system. This was honestly just an alternative I cooked up for fun. I play for ranking rather than score myself. (Although admittedly I do try to get my S and SS's to the top of my local leaderboard so that they show up next to the song in the select screen)

Thank you for being interested in my concept enough to send a reply! Critical analysis of a concept at its core is always of vital importance! :)
Please sign in to reply.

New reply