luludotdev / beatsaver-reloaded

BeatSaver Again
ISC License
178 stars 49 forks source link

Visual cues for map types (data visualization) #31

Closed joshwcomeau closed 5 years ago

joshwcomeau commented 5 years ago

Platform

This feature request concerns: (select all that apply)

Details

Different people like different kinds of maps. Some might like a barrage of chaos, while others would prefer intricate patterns that flow well. Some people really care about lighting, while others are purely interested in the blocks.

Beyond preference, there are also some accessibility concerns. For example, I have bad knees, and have to fail (and subsequently delete) maps with wall patterns that force you to duck under them. I'd love to be able to know this information before investing the time downloading/syncing/trying the song.

I think there should be some sort of UI widget that would help showcase the substance of a map.

Preferred Solution

Dance Dance Revolution, my all-time favourite rhythm game, had an interesting solution to this problem: they included a radar chart that shows exactly where the song's challenges are:

DDR radar chart

From this chart, I can quickly deduce that this song is essentially a stream of arrows, with very few "jumps" (two arrows at once) or "holds" (leaving your foot on an arrow for a long time), and so you can see its "AIR" and "FREEZE" scores are super low.

Rubric

I'm still pretty new to BeatSaber, and so I'm probably not the best person to come up with a rubric for the axes, but I imagine something like:

These might be too ambitious, in that it may not be feasible to algorithmically evaluate the "flow" of a map, but they're just ideas. Potentially they could be user-submitted scores?

I'm interested in possibly contributing to this project! I've been building stuff with React since 2014, and I particularly enjoy making interesting, dynamic UI elements, so please do let me know if there are other projects that could benefit from this skillset =)

luludotdev commented 5 years ago

This seems a little out of the scope of BeatSaver. It is primarily a store of beatmaps. Other services (ie BeastSaber) exist for this kind of thing.

My recommendation to anyone wishing to work on this is to consume the BeatSaver API for map data and do analysis on the maps on-demand, similar to what ScoreSaber does for PP.