Giter Site home page Giter Site logo

bssb.app's People

Contributors

rcelyte avatar roydejong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

rcelyte

bssb.app's Issues

Trending stats ideas

Had some ideas for reforming the 'trending maps' listing:

  • make the min plays at least 2 before a map gets listed -- there are currently 23 'trending' maps with only 1 play this week, and 6 'trending' maps with only 1 total plays at all
  • if a map is on the top 50 or 100 all time listing, it is excluded from the trending maps list, or at least gets weighted down so much that it can only hit the top 20 or 50 spots if there is some kind of resurgence in plays that is highly exceptional
  • maps played in rooms with more players get a higher weighting
  • maps with low completion rates get lower weighting -- for instance a lobby started with 4 players, 2 players leaving in the middle or failing the map would set that map's weight lower than a map that every player completes with at least a C rating

I know you are busing working on V2, so perhaps think about such things for the revision.

Removal of 'Dedicated' entries?

I am curious if the removal of the 'Dedicated' list with the brief history has been removed permanently. It was useful to be able to go back and check a recent game and see who the other players were and which maps were played. If there is a problem with keeping it or maintaining it I understand, but If you assumed no one cared about it I can say at least one person did.

I appreciate the hard work you put in and am constantly amazed at the quality of this service.

Lobbies with code '0' fail to announce

Server Browser uses the PHP empty() function in multiple places when checking server codes. This function returns true for the string "0" due to numerical conversion, leading to announce failures for lobbies with that code.

This is particularly problematic for BeatUpServer, where 0 is the first value chosen when assigning codes for public lobbies.

Multiple announcers

Summary

We now support Quick Play lobbies, which means multiple players may be announcing it at the same time. We're effectively crowdsourcing the data. To handle this properly, we need to track the announcers and keep a lobby alive as long as there is at least one announcer.

Implementation

Data model changes

  • Player entity
  • Announcer entity

Logic changes

  • Create or update player/announcer data on Announce POST
  • Cancel announcer on Unannounce POST
  • Conditionally cancel game on Unannounce POST if no announcers remain

Notes

  • Not relevant for private games as only the party leader will announce

BeatSaver versioning issues - announce failures

It looks like announces can fail (HTTP 500) if certain levels are played in a lobby.

Specifically, this seems to happen for levels that have an old version in our database but a newer version exists on BeatSaver.

This error occurs because beatsaver_id is a unique index in level_records, but as it turns out, multiple versions with the same ID can exist.

Add 'trending' option for map list

I think that 'trending' would be a lot more useful than 'top 100' in the map lists. Top 100 get skewed towards older maps and does not show what people like to play currently.

The ranking could be using the following criteria:

  • Age of the map / first appearance of the map on multiplayer
  • Times map completed with more than 1 player using map (this could prevent someone trying to get a map moved higher by playing it by themselves and then giving up over and over)
  • Number of times completed in arbitrary time period vs previous arbitrary time period as a function of growth

Thanks for taking the time to evaluate this idea.

Beat Saber 1.16.3 / 1.16.4 support

Beat Saber 1.16.3 changes how multiplayer works, and the API will need to handle this correctly.

Relevant issue in the PC mod: roydejong/BeatSaberServerBrowser#33

The data model and announce processing will need to change:

  • API: There is now a "party owner" separate from the "connection owner", player model needs to be updated to reflect this
  • API: When the party owner leaves, the lobby will automatically transition to a new party owner, which means another player can take over host announcements mid-game at any time

For Quick Play games, there can also be multiple announcers. I think the best way to implement this is to allow multiple announcers, and prioritize the party owner or the oldest announcer. A game would then only disappear from the browser when no announcers remain.

Feature request: song/map history

Feature request: clicking on a map in the trending or top 100 list will go to a page which gives data on when it was played, which server it was played on, and possibly other available data. Since there exists the ability to click on a player name and get all stats on what they played, where, and when -- then is it also possible to do for maps? Thanks for considering this and I appreciate your valuable time.

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.