slmnio / slmngg-sfc Goto Github PK
View Code? Open in Web Editor NEWNew SLMN.GG website & server
New SLMN.GG website & server
Currently, the slmngg-server repository is separate to this one, though that repo only feeds this repo with data. It is worth moving them together so any server changes can be tied to the website.
The current foldy sheets (EventScenarios.vue) have been tuned for 4 team groups and only 2 team ties, as well as only using a binary system.
The updated foldy sheet should:
SLMN.GG and event subdomains have redirects that will need their functionality kept for the new site.
Vue-router does have some redirect functionality, but it might be something that is done pre- or post- router (eg on 404s it can check redirects)
The current slmn.gg/players allows you to search (and view all names) of every player on the system. It's probably worth making a filtered dataset of just names and IDs that we can load.
There needs to be a more concrete way of resizing the team name text of the ingame overlay. The current methods squish the overlay so that the team color slice or score get cut off.
Perhaps calculating it based on the entire width of the overall team section, which in turn can be database driven (for 4v4s or 2v2s)
We have had multiple events with multiple concurrent streams. As more production staff grow and more events can take place, we are more likely to have concurrent streams.
The current solution is multiple live matches in the navbar of the website, but a dedicated watch page could be very useful. If we take inspiration from lolesports.com, we can use build a page that has live match data and stream information. We already have stream links in Broadcast records, we could easily use a Broadcast record as a starting point (slmn.gg/watch/st4
?)
An issue I've had is not knowing which bpl-affiliated players are streaming right now besides one or two who already are popular. A page to show who is streaming right now and a link to their slmn.gg page would be cool. Some similar ones to look like would be like Lichess
Colours and theme styling are taking more time than they should. There's a lot of repetition and similarly written code to do the same thing.
Some solutions:
Whenever the dev site is updated, the data server is restarted through PM2. This means all of the cached data is emptied and all clients must reconnect.
However, whilst clients do automatically reconnect, they don't rejoin the rooms (ie item updates) so the clients are essentially frozen in time until they are force refreshed.
A good fix for these would:
As the server cache will be empty, it's important to check that re-sending the item data doesn't just send empty data, especially during a broadcast, especially since clients will reconnect instantly and the server has just restarted.
Potentially this could be done hand-in-hand with a full site reload when a new commit is pushed.
We can use the commit number on the server and client to check if the version if the same. There is a discussion to be had about refreshing pages during broadcast - is it worth having a manual refresh option? Should it affect both website AND broadcast clients?
I feel that in theory it should be manual only to avoid messy reloads, but in practice it should be fine to have automatic reloads. If the update is pushed away from broadcast, there's no problem and it's wanted to have everything reload to test changes. If the update is close to or during a broadcast, these are usually emergency or late updates and having everything reload at once is desired over having broken or old code running.
Especially on the embedded standings on the break page.
flex-shrink-0 everything except the team name itself
Having a custom domain that acts as a minisite (bpl.slmn.gg/schedule -> bpl.gg/schedule or owlet.slmn.gg -> owlettournament.com/schedule) would be great for including other broadcasts and for branding.
This probably isn't too hard but might require a new table or record for minisites.
I think some sort of sorting function broke the player/matches area
In the Wikipedia race, you have to navigate through articles to find two matches items. The same could be done with SLMN.GG, for example connecting two random players without using Events.
Commands like !casters and !schedule can be automatically generated through the Broadcast records. It could even be tied to a stream itself so that it never needs to be updated again!
In the list of a player's teams and events, there should be a section added with Casted Events: [] [] [] []
In the Player's SubPageNav, the matches tab (which highlights the matches that players have participated in as a staff member) shows if a player has any player relationship - even if just a team or event role.
The Resurge 4v4 tournament is held this weekend, and some overlay tech still needs to be ported to this new system in order for it to function. Some parts aren't necessarily needed to move over at this stage.
At the moment, SLMN.GG is mainly just a directory of information. It would be nice to have some text on each entity to give some more background information. We could use a News item in the backend if we wanted to.
Examples:
Match and player information is probably not necessary. We already have show notes, but maybe we could have a link on match pages to a news item about it?
We already have something similar with About pages on some Events, but this hasn't been used that much. We could expand this a lot to other entities.
It would be nice to have a personal key that producers can use instead of renaming all of their OBS browser sources.
Instead of using /broadcast/st4/ingame
, a producer could use /client/slmn/ingame
which ties to a Client record on the SLMN.GG Airtable. The broadcast can then be set and updated there.
The teams list page needs transitions for when team themes are loaded. This could probably be done globally through the subcomponents it uses, as well as a global css style for the transition.
Schedule matches need to use placeholders and dummy items where possible so they always have 2 team items, otherwise it breaks styling.
We can use the power rankings code from preds.slmn.io and integrate it into the site.
The benefits are it would automatically work with all of the data and theme data from events.
This was probably a conscious choice, or something to do with waiting for loading, but we should allow teams without themes to show on overlays. Give them a default gray theme and call it a day. Teams will show if they have an empty theme object.
The development bar shows on dev.slmn.gg but should not show on a live deployment. We need to be able to detect when a page is development or not and show the bar accordingly.
As with other broadcasts, it would be nice to show which maps are being played. We have almost all of this data already as part of the Maps record, we can expand on this.
There's a possibility to add some sort of map veto process, it may be out of scope to add it to the selection screen at this stage
Current functionality means any match with live: true
shows a link in the navbar to the match's detail page
SLMN.GG allows some remapping and style changes for some events and teams, for example:
slmn.gg/event/-bpl-id- -> bpl.slmn.gg
slmn.gg/event/-bpl-id-/teams -> bpl.slmn.gg/teams
This probably needs some fiddling with the router, see https://stackoverflow.com/a/53336716
There's a few things that are still a bit hard coded or messy that need to be changed. The current system of broadcasts using the event CSS is working well.
I'll use this issue to track anything else I find
The placements will always be 100% of what the final result is, and the placements only show the final placements, not the potential placement based on the matchups
Investigation required
The overlay should work when a team has no, or 2 colours (theme, text_on_theme). At the moment it will not show without the logo background triplet.
The site loads as a white page before doing anything else. We gotta change this to the 222 so we don't blind everyone
News items need their own page (/news/:slug), with rendered markdown and images
The new website hasn't been developed with mobile in mind. The live version has a mobile.css page that could be used as a starting point. Most things are just setting different flex styles and most of that design work has already been done, it just needs to be added to the new site here.
It will stay at the time it was first mounted at - ie it isn't re-computed.
Give good caster info: https://bpl.slmn.gg/detailed/q8y2WfcQ1wNDBA
Some teams have event->about markdown, will probably depend on #18 so we can yoink the markdown rendering.
This can be added as a sub-view for events.
To match other broadcast packages (and to improve the quality) it would be nice if the overlay animated as it was shown.
Since the overlay loads each entity in groups, it is usually not feasible to wait for everything to load from a cold refresh. Therefore, using things like the Page Visibility API (and maybe other things that work with OBS) to detect when the scene (and therefore the page) has been switched to and play an animation.
It would also be good to have it restart an animation, rather than just hiding the page whilst it isn't visible. This is so it can be seen in OBS previews.
ie viewing https://owlet.dev.slmn.gg/event/DCpmziCwLt288h/schedule sometimes doesn't update when https://owlet.dev.slmn.gg/schedule
This is probably due to some way we request the data from the server. Maybe it never registers the room? Needs investigation (and also probably something to look into so people go back to / instead of /event/x)
Overlays shouldn't show anything if only one team is active (since it'll default to the left anyway.
If we ever do anything with just one team, we can revisit this.
Add player relationships for Events to show their various roles (eg commisioner, producers etc)
Team -> accolades don't show on team pages
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.