• EN
  • FR
  • Flow - Streaming Utility


    Twitch streaming has been very popular for a while now, and it’s not hard to see why. Real-time content creation makes the experience way more engaging. However, working in real time have their challenges. The more you have to do at the same time, the harder it is to focus on content.

    How it was handled

    The way streamers handled this problem in the past was to form a team of moderators, who would manage the chats, the bot commands, twitch special features like predictions, etc. This is not a perfect solution as it requires a lot of work from the moderators to keep commands up to date at all times while being there at every stream. Smaller streamers may have issues forming a team of moderators. And lastly, moderators have a limited access to the tools a streamer can use, which means they may not be able to help the streamer in any scenario.

    Flow tries to solve this problem by automating common tasks and making it easier to focus on the “fun” part of streaming, including chat interactions, gaming, and more.

    For example, Minecraft streamers all have a common command to display the textures they are currently using, as the game is heavily focused on modding. Viewers will want to know those textures and those commands are made to give them that information. However, a lot of streamer will change those textures a lot, which often leads to outdated information for viewers.

    Flow access the game’s logs output and track the textures used in the game so it can automatically update the information for viewers. This way, viewers will always have the most up-to-date information about the textures used in the game.

    Flow Screenshot

    Challenges

    Here are some challenge I faced during Flow development.

    Adaptability

    Streamers have different tooling and different ways of doing things. There are a lot of different Twitch Bots doing the same things. Streamers can also have their own custom bots. They will use a lot of different Minecraft clients. One of the challenge Flow faced was integrating flawlessly with all of those different services. The user should have the same experience with every tool.

    Customization

    Flow cannot just work, it needs to fit the streamer’s way of doing things. Therefor, Flow has a lot of customization options to makre sure the stream stays the way the streamer wants it to be. The experience should be better but not different from what the streamer offers.

    User Experience

    We previously talked about how Flow needs to integrate with all services. We also talked about challenges of doing real time streaming and focus. So we know our user have no time to spend on troubleshooting.

    Screenshot of the preview feature

    Performance

    As Flow is targeting gaming streamers, we need to take into account that the user’s computer is running a game while encoding video in real time. This lets only a little spot for Flow without impacting the stream or the game’s performance in any way. Flow is built using Tauri and Rust to achieve this.

    Features

    Here are the different features Flow have for the first release.

    Automatic Commands

    Some informations are getting tracked by Flow and updated upon change. This let the user totally forgot about the commands. The user can modify the command template and insert a variable that will be replaced by the correct information. A preview is shown to the user so they can see how it will look with the actual data. The user can define aliases so replace information with another so they can not leak private infos or give more information than what was detected. For Minecraft resource packs, it’s common to find a download link next to them. This can be added with an alias.

    Announcements

    Announcements will be done in the chat when something is updated. This can be useful in multiple scenarios. For instance, on VODs, user cannot type commands to get the information they want as bots works in real time. Which means the only way to get the information would be to either finds someone who did type the command in the chat replay, or to time travel. Leaving a trace of the change in the chat makes sure the data will always exists alongside the VOD.

    Automatic Scene

    Stream sniping is another big challenge of real time content creation because the streamer can easily be tracked down. Stream snippers will try to join the same game as the streamer to ruin it. The most common way to fight against it is hiding the screen so it is harder for a malicious actor to understand where the streamer is and when will he start a game. Hiding the screen all the time can be very annoying to manage and it is very easy to forgot to unhide the screen when the game has started. Flow can track what the streamer is doing and manage the screen for them by connecting to the streaming software they use through a websocket.

    Bots Support
    • Custom Bots : Full Support for every feature
    • Streamer’s account : Full Support for every feature
    • Nightbot : Support for most features
    • WizeBot