Git Product home page Git Product logo

esas18-layouts's Introduction

ESA Marathon

The greatest speedrunning event Europe has ever seen

Requirements

  • Go
  • Docker / RethinkDB
  • Gulp
  • Npm

Local development

  1. Set up your local .env file base don the .example.env
  2. Download dependencies with go get and npm install (or yarn)
  3. Run docker-compose up -d to initialize the Database
  4. Migrate the DB by running go run cmd/dbinit.go (add --seed to insert default data)
  5. Compile styles, js and html with npm run gulp
  6. Run fresh or go run main.go
  7. Add some cool features

Production build

  1. Clone repository and set up .env file
  2. Run docker build -t esa:latest .
  3. Run docker-compose up -d
  4. (First time setup) Run docker exec -it {containerID} /bin/sh and go run cmd/dbinit.go --seed

esas18-layouts's People

Contributors

cbenni avatar zoton2 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

esas18-layouts's Issues

Handle having 2 streams

The 2 streams will be 2 different "events" on the tracker, a config option is needed which can be specified what stream the bundle is currently running for, so it gets the information for the correct event. We also need to add both event's donation totals together to show on the omnibar, don't know if this will be done bundle side or repeater side though yet.

Indicator for co-op runs

Going to do it differently than last events where there was an icon on the runner name bar, maybe put it in the "game additional details" bit?

Omnibar information for other stream

We kind of did this last year but relied on the information from the Twitch API for the game name. We could do this again this year but use a middle-man server that stores the data.

Twitch sub stuff

  • Showing new subs/resubs (using a tool currently being made by CBenni).
  • Sub goals, everytime the sub points increases it will add towards some stretch goals.

Layout for Super Mario 64 70 Star race relay

Fuzzy is going to give me a list of everyone taking part, in the correct order. We need to be able to display all this on screen, with some buttons in the dashboard to switch between the runners in the relay, for both teams. We could also put Fuzzy and 360Chrism's information on the screen too, as they will be hosting it.

Intermission screen with flexible space

For this event's intermission, make it so it always shows the next run, but there can also be a flexible space that rotates between showing various things: more runs, adverts, prizes etc.

"Technical difficulties" screen

Can just be an image, something to display if you need to cover the screen (also to be used with the emergency button on ESAKeys).

Add heavy logging/more testing for tracker API

During ESA Winter, we had an issue where bids/prizes randomly would disappear from my queries to their search API, and I don't know why. Try to test this, or if there is no time, try to add logging to see if this happens during this event.

Add some sort of border to the flags

Currently the flags sometimes look a bit strange when they contain yellow, because they are inside a box which is also yellow.

image

I tried to mess around with borders but they seemed to mess up the padding/margins I already am using, so I will need to figure this out properly at some point.

Fix bundleDependencies in package.json

The formatting is completely wrong and I only just noticed that, oops. Dunno if it really needs to be fixed but leaving a note here so I remember and do need to fix it.

Change the way "Game Layout" elements are handled

Currently most of them are added when we need them, which makes changing game layout annoying because you also need to fill in the current information again. Making it so the relevant elements always exist and are just hidden when not needed is probably a better idea.

This would just be for elements with information in, things like the camera and game areas are OK to be added dynamically.

Sponsor Videos

At some points, we want to play sponsor videos between runs; what video is played depends on the run/time. The hosts will be able to trigger a video to be played back, but the video that is actually played back should be the correct one. Either could just use a web player or somehow make OBS play the video? You might be able to change a Media Source's settings in OBS using websockets (see https://github.com/Palakis/obs-websocket/blob/4.3.2/docs/generated/protocol.md#setsourcesettings)

List of things to do before the event starts

(More will be added as things are remembered.)

  • Start ads automatically on switch to the appropriate scene (if it contains (ads)).
  • Fix styling of upcoming runs on intermission.
  • Remove the HTML background when/where it is not needed.
  • Improve player name coding on game layouts/make it show more than 1 person in the team on the race layouts.
  • Add subs to the omnibar. [wait for CBenni?]
  • Add tweets to the omnibar (similar to subs). [wait for CBenni?]
  • Add prizes to the intermission.
  • Add bids to the intermission.
  • Create the intermission with the hosts name and all the sponsor logos at once (and hopefully the current song).
  • Change host dashboard back to showing StC stuff with API access (see #17 ).
  • API access to play sponsor videos.
  • Parse emote tags in sub messages on the omnibar.
  • Make an override so race layouts can be used for co-op runs.
  • Add finish times to race layouts.

re-instate charity text on dashboard screen

Host should have 2 buttons on Streamdeck to do with managing the dashboard

[ Prizes ]
Shows upcoming prize text in left column

[ Charity ]
Shows charity hint texts in left column. Copy per winter. Pressing multiple times shows different texts.

MPD random is bad

The "random" mode is far from random and on start up plays the exact same songs in the exact same order, which isn't good when you have 2 streams. Shuffle might be better but just re-orders the playlist, so would need re-shuffling every so often.

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.