roydejong / bssb.app Goto Github PK
View Code? Open in Web Editor NEWWebsite and API for Server Browser, a Beat Saber mod (https://bssb.app)
License: MIT License
Website and API for Server Browser, a Beat Saber mod (https://bssb.app)
License: MIT License
Had some ideas for reforming the 'trending maps' listing:
I know you are busing working on V2, so perhaps think about such things for the revision.
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.
BeatUpServer lobbies are cross compatible between 1.28.0 and older versions since this commit, which both public instances are now updated to.
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.
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.
BeatUpServer lobbies fail to announce, since their codes can be less than 5 characters long.
BeatUpServer lobbies created through a graph URL (i.e. https://bssb.app/game/roAOE, https://bssb.app/game/1V01v) do not list the associated master server at https://bssb.app/master-servers.
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.
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:
Thanks for taking the time to evaluate this idea.
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:
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: 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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.