Giter Site home page Giter Site logo

bakana808 / octogon-tool Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 7.43 MB

multifunction streaming tool for esport streams

Python 70.57% HTML 5.22% JavaScript 8.27% SCSS 15.94%
obs-studio streaming tool esports obs overlay melee smashgg smash-bros tournament

octogon-tool's Introduction

Octogon Panel

super early stuff

Preview Screenshot Preview Screenshot 2

what is this?

This is an all-purpose streaming tool for esports tournaments. while this was made for SSBM specifically, the codebase is being modeled such that supporting other games later is possible.

Current features:

  • A scoreboard control GUI and overlays
  • Smash.gg overlays
  • Spotify overlays

Downloads

Linux and Windows builds can be found on the latest release.

For other platforms, see the Running section for instructions on how to build and run Octogon.

Running and Building

Setup

  1. Install Python 3.
  2. git clone this repository to a folder, or click the "Code" button on the top of this page, click "Download ZIP", and extract it to a folder.
  3. Open a terminal in the folder (on Windows Explorer, Alt+D and type cmd in the address bar of the window).
  4. Run pip install -r requirements.txt

Then, to run the program run python main.py.

To build the program, run pyinstaller build.spec. The executable should be located in the dist folder.

Configuration

A config.json file will be created when this program is first run. In this config you'll find a few options that are left blank. You must set these manually for the Smash.gg integration to work.

smashgg_api_key: an API key required by Smash.gg to retrieve information from their servers. You can create an API key through Smash.gg here.

smashgg_tourny_slug: the ID of your tournament from your Smash.gg tournament page. For example, if the link to my tournament is https://smash.gg/tournament/octo-gon-8, then the slug is octo-gon-8. This is used to retrieve the start date and time for the countdown layout.

smashgg_event_id: the ID of the event to retrieve bracket and standing information from. You can find this by going into the settings for an event on Smash.gg. For example, if the settings page for my event is https://smash.gg/admin/tournament/octo-gon-8/event-edit/532752, then the ID is 532752.

To reload the configuration, please close and re-open the program.

Usage

1. Adding layouts to OBS

This program runs a server that serves HTML pages when connecting to certain URLs. This is intended for use with the "Browser" source in OBS. Browser Source

Be default, this program serves webpages to localhost:8000.

Example source URLs:

# scoreboard source (to be used with the background source)
# recommended size: 1920x1080
localhost:8000/scoreboard
localhost:8000/background  # includes a mask cutout for gameplay capture

# smash.gg sources
# recommended size: 500x1080 (can adjust for wider or narrower display)
localhost:8000/standings
localhost:8000/countdown
localhost:8000/bracket

# spotify source (shows the current song and artist if playing music on Spotify)
# recommended size: 1920x100 (can adjust to make narrower, note the text might get cut off)
localhost:8000/spotify

The most up-to-date list of sources can be found in server.py

2. Controlling the Scoreboard

When run, a window will open containing scoreboard controls. Octogon Panel

Edit the information on the window, then update the scoreboard overlay by clicking "Update".

3. Customizing

(Please note that the folder/file names are WIPs and may change at any time.)

Backgrounds

Backgrounds can be added into the assets/bgs/ folder. At this time, only assets/bgs/1.png is loaded.

HTML/CSS

HTML templates are located in templates/html, which are rendered using Jinja2 when serving overlays. SCSS files are used for styling, and can be found in style/html. These files are rendered automatically when they are modified.

Character Portraits

Character portraits can be found in assets/portraits/. These can be changed as long as they use the same filenames, however note that currently only the default color (Default.png) is used.

4. Troubleshooting

Having trouble with the app? Check the Troubleshooting page to see if your problem is listed there.

If not, feel free to open an issue explaining the problem.

Credits

BG from the screenshot: link

Server made with flask
GUI made with pyqt5
HTML templating made with jinja2
SCSS compiling made with scss\

and also, some GraphQL had to be written to interface with smash.gg's API.

octogon-tool's People

Contributors

bakana808 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

ketorol

octogon-tool's Issues

Add player stats source

Show things like:

  • win-loss rate
  • character preference
  • stage preference (the stage with the highest wins)

Information provided by smash.gg across all of this player's matches (if possible),
or from a previous event.

Add scoreboard source

[ ] Player names
[ ] Player score
[ ] Round Title

[ ] Character Selection / Portraits

Add Spotify source

will print out the title and artist of the currently playing song on Spotify, used to show viewers what song is playing

Add "background" source

Add source that chooses an image at random and sets the source background to that image.
Possibly chooses the image from a folder?

Why

This could be written better...

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.