SilenusTA / StreamRoller

Streaming Backend Software
GNU Affero General Public License v3.0
2 stars 2 forks source link

Overlays v1 #40

Open SilenusTA opened 1 year ago

SilenusTA commented 1 year ago

Need to get the overlays extensions started.

This is one of the essential features needed for when we start to get game extensions. There will be 2 features to start with 1) Passive overlays: these will just join an extensions channel and display data from it. This is how most current overlays work and already part of steamroller. Just need to create some examples/templates for people who want to do their own overlays to show how it is done 2) Dynamic(from a StreamRoller perspective) Overlays.

Add an overlay extension that can receive data directly and use existing overlay 'widgets' to display it rather than be hardcoded to one source of data like most overlays are.

This will allow other extensions to decide what to display. ie GTA might want to send in game dialog to display on screen, MSFS might want to send flight data.

This will allow the logic behind what is displayed to be decided somewhere other than the overlay. i.e. a banner display that can show multiple sources of text (TTS, game chat, subs, viewer donations) without any knowledge of the source.

This will allow configuration of what goes out on stream via the overlay to be decided in places like the live portal (maybe via clicking a checkbox to direct certain info like donations, channel point chat commands (maybe routed though chatbot etc) or maybe a game extension that want to send data to screen (no more need to know how to write an overlay so can focus on the game extension)

Message format will be something like OverlayDisplay ( overlay name, data to display, {extra options such as position, animation to use widget dependant ) eg 1) OverlayDisplay ( "DialGuage1", "220kts") 3) OverlayDisplay ("MusicDrumTsk","Good one x") 3) OverlayDisplay ( "FlyingEmotes","http://imagr.com/myaccount/myimage.gif",{speed,timeout}) 2) OverlayDisplay ( "HealthWidget3", "20", {position{150,200), animation(fadeup)}) 3) OverlayDisplay ( "Chatbox3", "some GTA chat message", {scrollspeed =1, fontsize = 22})