I made an auto-difficulty model

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Trumpet63
    Mostly Ignored
    • Mar 2011
    • 471

    #1

    I made an auto-difficulty model

    Hi. You may remember me from past hits such as:

    Skill rating: (Feb 2015)


    An AI model applied to FFRMania difficulties: (Jan 2018)



    Well, I’ve learned a lot since then. In 2020 I landed my first job as a data scientist. In 2021 I was given access to the FFR database and made a very basic statistical model that achieved a mean squared error of 35.9 on a set of 2684 FFR songs. It was nothing to write home about, but very few people had access to the FFR database, and fewer still had the skill or desire to create an auto-difficulty model. After I announced this model internally, it increased interest in the problem and led to the creation of the #difficulty-system channel in the FFR Discord server.

    I had, however, solved the problem to my satisfaction at the time. I had a serviceable difficulty model, which is what I needed to continue development of my rhythm game, so that’s what I focused on, until around December of 2022, a few months ago. I had quit my data science job, and while looking for greener pastures I had a lot of time to think about rhythm games. I want to be the best at understanding player skill, and that is supposed to be the selling point underlying my rhythm game project. After solving a lot of more pressing issues in my game, I eventually came to this problem again. My understanding of skill had basically stayed the same since my last model, and I knew I could do so much more with my data science experience, so I got to work.

    Around the same time I started working on the problem again, WirryWoo, who’s also a data scientist, consulted with me about an auto-difficulty model he was working on. It seemed interesting, if slightly over my head, so I offered as much advice as I could and generally just kept to myself. Then suddenly I made a breakthrough: 30.7 mean squared error using a machine learning technique I had just learned. This was insane. Not an incremental change, but a 14% jump in accuracy. At this point I was almost sure the problem was solved. I had used the technique, the one that everyone used, XGBoost, the most cutting edge AI model. Then, WirryWoo told me his model had an MSE of 24.4.

    Smash cut to today. 60 model prototypes later, I have achieved an MSE of 11.0. I've been delaying this announcement for a while since so many improvements have been happening so quickly, and even now there’s every chance that this model will be blown away in a few weeks, but at least I’m pretty close to being out of new ideas.

    Also, apologies to anyone else working on auto-difficulty that I’ve left out of this story. I wanted to keep it short and my memory of this isn’t that good.

    So anyways

    Here’s a spreadsheet of the model’s predictions for all the FFR songs, sorted so the worst predictions are on top:


    Here are some explanatory images:










    In closing,
    I'll say that I don't really expect FFR to switch over to auto-difficulty overnight. FFR has a long history of assigning difficulties manually, and as such the standards are very high, perhaps too high for any model to achieve. I personally would like to see an auto-difficulty model gradually integrated into the stepfile acceptance workflow. I think there is an appetite for it, especially among veteran difficulty consultants who are feeling a little burnt out after spending years debating with people about the now 3000+ songs on FFR. Still, switching to auto-difficulty seems like a tradeoff at best, and it's not yet clear what we'd be trading off for, and it's not really for me to say. It will take someone with authority and imagination to envision what FFR could become with improvements to automation. The best I can do is facilitate that process. I have uploaded the model to an API, and I will make it available to any staff members, for FFR internal use only.
    2014 October 7th 1:03 AM

    Zageron: Trumpet
    Trumpet63: yes, im here
    Zageron: You have a problem.
  • hi19hi19
    lol happy
    FFR Simfile Author
    • Oct 2005
    • 12194

    #2
    Re: I made an auto-difficulty model

    Kind of funny that even in the auto-generated difficulties, Reality and Gunkienen remain the standards for 85.


    Comment

    • MysticChromium
      welcomer person
      • Mar 2020
      • 50

      #3
      Re: I made an auto-difficulty model

      huh... neat

      Comment

      • gold stinger
        Signature Extraordinare~~
        Event Staff
        Game Manager
        FFR Simfile Author
        FFR Music Producer
        • Jan 2007
        • 6428

        #4
        Re: I made an auto-difficulty model

        Undici getting bumped down to 106 along with Bolt Thrower at 107 which is also Death Piano at 107 is yowza. Fireball being easier than LW69 is also wow, and would love to find the deciding factor in those.

        Some screenshots of ordered data from the spreadsheet that may help with discussion or parsing the data:

        Top 39 songs on difficulty:


        95 difficulty range:
        Last edited by gold stinger; 02-16-2023, 01:07 PM.
        Originally posted by YoshL
        butts.



        - Tosh 2014






        Comment

        • PrawnSkunk
          Administrator
          FFR Simfile Author
          FFR Administrator
          • Dec 2007
          • 3907

          #5
          Re: I made an auto-difficulty model

          I haven't been keeping up with this closely, but if the frame data can be easily manipulated, this API could be an interesting option for purely informational estimated difficulty of rates.

          Comment

          • benny58624
            FFR Veteran
            • May 2014
            • 352

            #6
            Re: I made an auto-difficulty model

            Cool, I tried the file with the biggest difficulty difference and it gave a sightread AAA, and that's with me being rusty

            That file's difficulty should definitely be lowered. In general, this model probably helps to easily find most files that should have their difficulty adjusted. Well done

            Comment

            • WirryWoo
              Forever Derbyless
              FFR Simfile Author
              • Aug 2020
              • 240

              #7
              Re: I made an auto-difficulty model

              Really awesome to see progress here. Keep up the great work Trumpet and hopefully the model will amount to something FFR can use in the future!

              I'm still working on building a difficulty model since I have been balancing my time between my job, my personal life and fun side projects like this. I have an API template written out, and I have pieces of the infrastructure built out so that the model continually updates as new songs appear in the engine. Right now, I'm considering an optimization approach to the problem but haven't programmed it yet. There's still quite a bit of work to be done on my behalf (:
                                 

              Comment

              • Rapta
                🡸Index🡻Is🡹Fun!🡺
                Profile Moderator
                FFR Simfile Author
                Global Moderator
                • Dec 2010
                • 1948

                #8
                Re: I made an auto-difficulty model

                Beautiful. Nice work!
                Old Quotes
                Originally posted by IwasAsquidOnce
                Note the left hand pinky. It stretches out into attack mode to make etienne's hand appear larger, an intimidation technique for the arrows.
                Originally posted by Mourningfall
                [3:51 PM] Mourningfall: i spent the second half of that song getting face fucked by a fly
                Originally posted by Xiz
                Hi I see rapta come play TWG next game
                Originally posted by xXOpkillerXx
                Rapta thinks alot about memes and fonts. I'd be inclined to think he's town because wolves wouldn't have time to meme would they ?
                Originally posted by Prawnskunk
                if we keep releasing engines that work on 1/4 of people's computers, we'll get there
                Originally posted by gold stinger
                do u even agrabah
                Originally posted by gold stinger
                Today at 12:53 AM
                I have no fucking idea how you were able to identify that specific line from meme show so you are basically an elder god of memes
                Originally posted by Psychotik
                When I think Mother’s Day, I think Venetian Snares.
                Originally posted by Haku
                have you heard someone mention eating pancakes to negate friday 13th?




                Originally posted by Prawnskunk at 10:53:56pm on 10/26/11
                OMFG VC! I want your programming fingers in or around my mouth OnO
                Originally posted by Storn at 3:03 PM
                We have so many batches open. Its like a backlog clearance sale. ALL FILES MUST GO!!
                Originally posted by ToonE156 at 11:07 PM
                You've never felt intimacy until you've practiced Jiu Jitsu ground techniques with the only girl in class

                Comment

                • Wayward Vagabond
                  Confirmed Heartbreaker
                  FFR Simfile Author
                  • Jul 2012
                  • 5866

                  #9
                  Re: I made an auto-difficulty model

                  Amazing work!

                  Comment

                  • Trumpet63
                    Mostly Ignored
                    • Mar 2011
                    • 471

                    #10
                    Re: I made an auto-difficulty model

                    Hey, this goes without saying, but thank you so much for the support everyone
                    2014 October 7th 1:03 AM

                    Zageron: Trumpet
                    Trumpet63: yes, im here
                    Zageron: You have a problem.

                    Comment

                    Working...