RFC 0012 an alternative proposal

Brice Culas
6 min readMay 19, 2019

--

This article is a follow on my previous article about the future of video component extension.

To learn more about the RFC 0012 update, you can check my other story

In this article, I will talk about my vision based on my experiences and vision of the video components.

A little background

I have been making twitch Extension for about a year, I have 2 published extensions Live Requests and Quests, an open source boilerplate for newcomers and an open source NPM package for Vue/Vuex developers.

I have been watching Twitch streams since 2011, I’ve streamed for a year and a half and I moderate various type of channels, going from 10 viewers to thousands.

I work as a full-stack developer and I specialize in interactive experiences. Video components were the perfect fit for me, creating interaction on top of a live video is an amazing topic.

But with the RFC 0012, Twitch will remove all the creative freedom behind video component extensions.

The update

You can find the details here

In short, we are standardizing where component Extensions live on the channel and how viewers will interact with them.

- Jon Bulava / Developer Advocacy @Twitch

From numerous studies, viewers expressed that extensions being visible at all time and at different locations on the stream, reduced the quality of their viewing experience

- Camille / Product Designer for Extensions @Twitch

In my opinion, the update is too centered around viewers. The approach is “if viewers interact with extension, streamers will use them more” and I believe it should be the opposite. We should center the effort to the streamers, not the viewers because they can easily engage their community by having momentum in the stream where the video components would be a perfect fit.

Let’s take a simple example, why does some streamer have chatbot mini-games that work really well and some don’t?

Most of them will be linked to 2 factors:

  • It matches their content
  • They engaged their community to use it.

So streamers are the key factor to have more people using extensions.

Then we have to make sure the viewers have a great experience using the extensions.

I will take some time to explain my idea on how we could have an update streamer centered. A part of it will be based on the work of Camille, Product Designer for Extensions, who worked on the update.

Reducing the mess on the screen

The RFC 0012 already offers a great solution for it, only display one video component at the same time and the anchor point is on the right of the stream.

The advantages:

  • One video component at the same time, it creates a nice and clean UI
  • Simple UX for viewers, video component extensions are always on the same area
  • Near the chat, perfect for interactions

The sidebar

On the current proposal, all the activated extension are available on the side-bar.

This design brings several problems, extensions are still fighting for attention and space, known brands are advantaged, it’s up to the viewer to decide part of what is displayed on the stream which prevents the streamer to have a controlled content.

Furthermore, this design brings the necessity for a top bar which includes the name of the extension, an icon to open the configuration, an icon to close the extension. This is a problem with the video component extension designs because they were not created with a windowed system in mind.

What I propose is to only have one video component extension accessible. The accessible video component can be changed only by the steamer and his editors during the stream. The viewers can only hide it, they can’t switch to another extension.

Base idea

Here are the modifications:

  • The top bar has been removed,
  • The controls are now on the side
  • Only one video component can be accessed at the same time.

Do you need to start a poll? You just switch to a poll extension. You are playing? Start your reaction extension. Don’t want anything covering your stream, just deactivate the current extension.

With this system, we give back the power to the streamer on their content. And we avoid forcing video component extension developers to redo all their extensions and the use of an opaque background.

This would include adding a way to switch the video component extension from the streamer dashboard.

(I currently don’t have an idea for the UI on the dashboard, so might update the article later for it or if someone has a proposition)

Making it work for everyone

Not everyone uses the Twitch dashboard, some people use other tools like Streamlabs OBS, StreamDeck, StreamPuppy or chatbots.

To ensure these tools can be used to change the extensions we would need to add API endpoints to edit them.

For example, an OBS plugin could switch the scene and automatically move to a specific extension.

Overlapping with video overlay extension

We solved the problem of the inconsistent UX for video component but we still have a problem with video overlay.

Video overlay extensions take 100% of the width and 100% of the height of the stream. So a video component extension is always on top which prevents the clicks to be passed to the video overlay extension.

Various studies showed that viewers were confused when overlay extensions wouldn’t work because transparent components were placed on top of them.

- Camille / Product Designer for Extensions @Twitch

The problem with the current update is that all the work and constraint is being done by video component extensions, without really solving the overlapping issue.

To allow video overlay extensions to not display data and adapt their UI to the video component extension on top of it, we need to pass its position to the video overlay extension.

To do this, we can use the onContext(callback:function) method from the javascript helper.
We will just add a new field in the parameter object that will only be available for video overlay extensions

componentSize:{
position: 'right' // alignement of the extension on the screen
height:number // height of the extension in %
width:number // width of the extension in %
}

Ok, but I built a game integration, like Darwin project, I need to have all the video player when something happens in the game.

For this, we will a new extension capability available only for video overlay extensions. this capability will allow the extension to call 2 methods

  • focus() will make the video component disappear if there is one displayed
  • unfocus() will make the video component extension appear again.

Here we solved the various problem of the update. But we still have some problems to solve to guarantee a great experience for users.

Review process

The current review process does not include a design review of extensions. To ensure the quality of the work and be sure the experience will be great, we need to a review of the design of extension too.

Activation flow

Activating extension is not a great flox at the moment.

There are numerous steps, I talked about it on this forum post

But there is also the problem that streamers can’t preview the extensions. They have to go live to see if everything looks great on their stream.

Streamers should be able to preview how an extension will look without having to start a stream.

Timing

I do believe this update should wait until at least TwitchCon San Diego. So we have time to discuss, improve and find a proper solution.
Then Twitch can use TwitchCon to market these changes.

Conclusion

Thank you for taking the time to read this article, If you have any suggestion on how to improve it feel free to tell me.

--

--

Brice Culas
Brice Culas

Written by Brice Culas

@Brecii / FullStack developer @LoneStoneStudio. I build Interactive experiences & Twitch tools!

No responses yet