Coder Social home page Coder Social logo

Comments (23)

abraker95 avatar abraker95 commented on May 21, 2024 1

The code is not that hard to find and the repo is small. Here you it anyway

https://github.com/ppy/osu-performance/blob/master/src/performance/osu/OsuScore.cpp

from osu-performance.

abraker95 avatar abraker95 commented on May 21, 2024

Needs further explanation how this will help provided example patterns and resultant values by plugging in those patterns into proposed formula(s).

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

This whole repo in the pp calculation code.

Pretty sure your idea will do exactly the opposite of what you want to achieve. If i understand correctly, you want to buff spacing inconsistencies and the current meta is already about inconsistent maps.

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

If you compare a regular diff spike jump farm map to the rubik's cube map you're referring to you'll see that farm maps are actually far less consistent in object spacing. Your approach would only work on streams where spacing changes are actually hard to follow. It can't fix jumps and overall promotes more diffspikes instead of consistent difficulty (which is harder to execute)

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

It's already been like that from the beginning

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

I'm sure there will be thousands of examples where it'll break pp, but you're free to try, we can't be sure without data

from osu-performance.

abraker95 avatar abraker95 commented on May 21, 2024

So how many notes will the algorithm take into account? Since these examples use 5, I'll assume 5. So now let me evaluate some basic common patterns @ 180 BPM:

Double taps [xx-xx-x]:
000 ->333 : 333
333 ->666 : 333
666 ->1333 : 666
1333 ->1666 : 333
1666 -> 2000 : 333
1666 ->2666 : 666
Standard Deviation, σ: 156.97770542341354

Triple taps case 1 [xxx-xx]:
000 ->333 : 333
333 ->666 : 333
666 ->999 : 333
1333 ->1666 : 666
1666 -> 2000 : 333
2000 ->2333 : 333
Standard Deviation, σ: 124.10177275123833

Triple taps case 2 [x-xxx-x]:
000 ->333 : 333
333 ->999 : 666
999 ->1333 : 333
1333 ->1666 : 333
1666 -> 2000 : 333
2000 ->2666 : 666
Standard Deviation, σ: 156.97770542341354

Double taps are moderately hard, triple taps are easy enough. One triple tap case shows same result as double tap case, so amount of notes taken into account should definitely not be 5. Observing the timing intervals between notes in the example the stdev is significantly high for simple cases. In fact it will be higher the lower the bpm. So how does this help?

from osu-performance.

abraker95 avatar abraker95 commented on May 21, 2024

@abraker95 I am confused, please use X,Y coordinates or display it in osu map editor.

There are no X,Y coordinates because these examples do not depend on spatial configuration, and these are arbitrary examples. When you are testing formulas going into editor to make a pattern is cumbersome. You can plug in mathematical descriptions of patterns like I did to simplify and speed up formula validation.

Certain fix for bpm problem is using xy=k Hyperbola equation where x=S.D. and y=bpm results in k=value for further calculation.

I have no idea what this is saying

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

it will be the whole Last Klai stream that will be taken into account.

How are you going to determine where that stream begins and ends? Streams often have sliders on downbeats so you cant just assume "a lot of circles means stream".
You should also try and test your idea on other maps, rubik's cube is quite an extreme one and you shouldn't be balancing everything around just it

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

With values like this you better just look at delta's rebalance imo, rubik's cube is already 929pp for ss there

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

There's no issue yet, but there're: Incomplete document explaining things, source code and a web calculator

from osu-performance.

abraker95 avatar abraker95 commented on May 21, 2024

I don't think you understand how PP calculation works. No map data gets sent to osu servers because the map data is already stored on the servers. Which means spacingsdev would be calculated there too.

from osu-performance.

peppy avatar peppy commented on May 21, 2024

it is definitely something we can add - we have the facilities to store new variables for performance calculation use.

from osu-performance.

joseph-ireland avatar joseph-ireland commented on May 21, 2024

There is a full implementation of difficulty and PP in the main repo https://github.com/ppy/osu/tree/master/osu.Game.Rulesets.Osu/Difficulty, and tools to run it https://github.com/ppy/osu-tools

I feel like that should be in the readme somewhere, it's probably what most people are looking for when tehy click this repo

from osu-performance.

joseph-ireland avatar joseph-ireland commented on May 21, 2024

There is already infrastructure to do everything that you want, but the relevant code isn't just in this repo. This repo only contains code to load beatmap difficulty attributes from a database and calculate the PP of a replay. That's why there's nothing about object spacing here. The code that calculates these difficulty attributes and knows about object spacing can be found in the links I posted.

from osu-performance.

joseph-ireland avatar joseph-ireland commented on May 21, 2024

You don't need to just yet, you can do everything in osu-tools and the main osu repo, just install the recommended requirements and follow "getting started" from the osu-tools readme, then you can start editing stuff in osu.Game.Rulesets.Difficulty and see the results.

This repo is just for use on the server to quickly calculate pp without having to do the hard calculations every time. osu-tools also calculates pp, but calculates map difficulty too, and that part is likely what you want to change.

from osu-performance.

VINXIS avatar VINXIS commented on May 21, 2024

https://github.com/ppy/osu/blob/master/osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs#L57

from osu-performance.

stanriders avatar stanriders commented on May 21, 2024

Just test it and see the results
e: but first move public static double GetStandardDeviation(List values) { ... } and public static double StreamDeterminant(double deltadist,double deltatime) { ... } out of StrainValueOf or it wont compile

from osu-performance.

kornkaobat avatar kornkaobat commented on May 21, 2024

WhiteCat's new pp

from osu-performance.

kornkaobat avatar kornkaobat commented on May 21, 2024

Most comments I've made have been deleted due to me losing hope that this project will stride forward. A lot of temporary white paper is currently stored here : Osu! Dev Discord. More to come soon, especially my repo for anyone to use.

from osu-performance.

kornkaobat avatar kornkaobat commented on May 21, 2024

https://github.com/kornkaobat/osu-tools and subfolder https://github.com/kornkaobat/osu

from osu-performance.

kornkaobat avatar kornkaobat commented on May 21, 2024

For all of my old deleted comments see https://gitmemory.com/kornkaobat

from osu-performance.

kornkaobat avatar kornkaobat commented on May 21, 2024

idke.txt
gayzmcgee.txt
cookiezi.txt
whitecat.txt
ryuk.txt
vaxei.txt
Current pp values as of kornkaobat/osu#17

from osu-performance.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.