Giter Site home page Giter Site logo

slmngg-sfc's People

Contributors

cpbeaslin avatar jj1898 avatar mrlotu avatar oldenmw avatar slmnio avatar zusorio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

slmngg-sfc's Issues

Merge slmnio/slmngg-server into this repository

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.

Expand foldy sheets for more complex standings and tiebreakers

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:

  • Move from match win/loss to match scores (2-0, 2-1, 1-2, 0-2)
  • Deal with multiple ties across an arbitrary amount of teams
  • Accurately confirm a team's position when requested

Redirects

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)

Match pages

  • Register in router
  • Add data loading
  • Rebuild match page similar to existing page

Site players list

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.

Ingame overlay: sizing issues

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)

Add a multi-stream watch page

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?)

Community stream page

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 take a lot of development time

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:

  • Start using CSS variables (a good idea to be cleaner but won't work as well for more complex fallbacks)
  • Build better helper functions to be consistent

Work with reconnects and site updates seamlessly

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:

  • Implement rejoining rooms on client reconnect
  • Re-send all data to ensure it is up-to-date.

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.

  • Reload pages if they are running an old commit

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.

Investigate custom domains for minisites

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.

Add a "Wikipedia race" gamemode

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.

Expose endpoint for chat commands

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!

Un-ST4-ify new overlays

Some parts of the overlay still use the rounded styles that were added from Sub Tourney 4.

image

They should be changed so they follow the style of the rest of the overlays

Preparation for the Resurge 4v4 tournament

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.

  • Ingame controls on the launchpad need to be connected to the slmngg-server in some way
  • Countdown controls should be hooked up to the countdown display
  • A groups stage standings for the break overlay
  • Break overlay right section should be adjustable
  • Full screen standalone schedule
  • Full screen standalone standings
  • Roster standalone
  • Team (or match teams) match history?

Add more lore

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:

  • Event information as it is setting up, then a recap after it's finished
  • Team information to explain their story throughout their tournament run

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.

Add clients in front of broadcasts

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.

Add transitions to team list page

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.

Add power rankings

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.

Teams don't show on overlays without a theme

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.

Variable visibility of the development bar

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.

Add a map set screen

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.

  • Add map scores to Maps records? Would be good for the overlay.
  • Check if we need new HD images for each map when showing it on stream (currently they're built to be used as 200x200 or so)

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

Subdomains

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

Update overlays to make it easier to customise

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.

  • Overlays should have one class for the background (break/schedule/standings; top and bottom) - currently it's 4 separate ones

I'll use this issue to track anything else I find

Ingame overlay: Work with any colours

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.

News pages

News items need their own page (/news/:slug), with rendered markdown and images

Add mobile styling to all pages

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.

Event about

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.

Investigate OBS visibility

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.

Event staff page

Add player relationships for Events to show their various roles (eg commisioner, producers etc)

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.