Saw some rumblings around about the need for a catch PP rework again so figured I’d share some thoughts on what I’ve been messing around with the past few months using a version of lazer that produces “mostly” accurate SR values.
It’s just gone past the four year mark for when catch star rating and performance points were overhauled in late 2014. Whilst the SR changes were at the time a huge improvement over the previous version, it has become painfully clear that catch SR still has big issues with representing the difficulty of a beatmap.
So in an attempt to inspire some hope in a community that has mostly given up on ever seeing a much needed “PP rework” I wanted to talk about some actual possible changes to the SR calculation. Keep in mind I’m no programmer or mathematician, I don’t have a solid understanding of how half this system works but I’m still confident I have found areas that can be improved.
I haven’t included any values here due to the limited setup I’ve been using, this is more for an idea of a starting point and what changes are worth pursuing.
Edge Dash BonusCurrently maps with numerous edge dashes (regular dashes that are very close to the hyperdash trigger distance) are very underrated. There’s an existing bonus for edge dashes but it’s simply not big enough, increasing this is an easy fix but tuning the exact amount will require some trial and error.
Hyperdash BonusThere’s currently a small bonus for both hypderdashes and edge dashes on a direction change. This bonus doesn’t do much for edge dashes but the bonus really adds up in higher difficulty specifics where hypderashes are frequent. Whilst hypderdashes are challenging for new players, a bonus like this gets too large on Overdose level difficulties where the hyperdash itself is not difficult but rather how it’s used.
Splitting this bonus into separate bonuses for edge dashes and hyperdashes allows for better tuning of both. Greatly reducing the hyperdash bonus really helps to bring down the inflated SR values for specifics vs converts/hyperdashless maps.
(Hypderdash bonus only applies on direction changes so hypderdash chains don’t get even sillier than they already are)
Speed ScalingThis is a simple issue, catch SR scales too much with speed. High BPM is overrated and part of why maps like Image Material have such high star ratings. Reducing the base speed scaling but keeping the speed scaling on direction changes similar is probably the best approach to balancing this.
Some maps are fairly dependant on speed and reducing the scaling can result in them being relatively underrated so tuning this will take some real trial and error. Though after four years of speed being so dominant I don’t think too many people would mind such a meta shake up.
A big limitation of the setup I used is the inability to test mods. I simply don’t know how changing speed scaling would affect doubletime and halftime but I’d assume reducing speed scaling would nerf doubletime. As far as I understand the difficulty calculator doesn’t currently consider the change in catcher speed, just the change in speed of the map. Adding a catcher speed scaling factor is probably the way to go about balancing DT and HT.
Direction Change BonusThis would be the biggest change as it’s not just value tweaking but adjusting the logic. Currently there’s a bonus when there’s a direction change, which makes sense but due to the simple logic it leads to flowing patterns getting a much larger bonus than antiflow patterns. Compare
these two patterns and where the direction changes are.
The “flow” pattern on the left is easier because the direction change is made on the note after the hyperdash finishes so the speed boost from the hyperdash is gone.
The “antiflow” pattern is noticeably harder, it requires more precise movements to make the direction change whilst hyperdashing because of the speed boost.
Despite this, the bonus is being applied to the movement after the direction change (represented with a black line) and doesn’t consider the movement before it. This leads to the flow pattern getting an enormous boost whilst the antiflow pattern sees very little. By scaling the direction change bonus with the distance and speed of the movement before it we now have a method to consider flow and antiflow patterns.
This seems very promising in the limited testing I’ve been able to do. The infamous flow stream pattern seen above is no longer the ticket to big SR values like it is now and antiflow patterns are actually rewarded.
Balancing this scaling is not easy. I saw good results from having a base direction change bonus that functions like the current but much smaller and then a much larger bonus that scales based on the movement before the direction change (antiflow). This ensures flowing direction changes still contribute to SR which is important for lower difficulties.
Widely Spaced StacksThis is the best term I could come up with to describe
a pattern like this as seen in
Sing’s Master on Getty vs. DJ DiA – DropZ-Line-Check it out in editor at 01:15:002 (1) -. Deleting this one slider reduces the star rating from 9.40 to 5.60
Stacks like these can be caught without requiring any movement from the player yet despite this they massively inflate the overall SR. The tricky bit is the initial positioning of the catcher, after that there’s no input required yet the longer and denser the stack, the greater the SR.
This is an issue currently on live, though only on a handful of ranked beatmaps, but it can become even worse when tweaking values like the edge dash bonus. It’s a bug and it needs a fix.
My proposed solution works like this:
- Check for direction change
- Check if distance of movement is <= catcher size
- Check if distance of current movement is equal to distance of previous movement
- Scale SR addition by time, 1.00x at 100ms down to 0.00x at 50ms
This could be considered a hacky solution but I was surprised by how well it appears to work. The checks try best to isolate the conditions of these stacks. They’re usually created by sliders, hence the requirement for identical distances, and it scales with speed because that’s when this bug really gets silly. The impact on innocent beatmaps seems very minimal if there’s any at all though I’ve not been able to check all too thoroughly.
Hopefully this can help provide a starting point for changes and show that the situation isn’t as hopeless as you might think. These changes won’t fix everything, but they should shake up the meta for the better and bring better balance to converts vs specifics.
Sadly, until catch star rating on lazer matches stable there’s not much work that can be done as all the tools provided for PP development are dependant on lazer. But once that’s fixed I hope there’s enough interest to get a group together with the know-how to actually start making some improvements.