Genvid Tutorial Video 1: The Genvid SDK Overview
The Genvid SDK allows game developers to create and deliver premium interactive broadcasts to livestreaming audiences. At the highest level, the Genvid SDK provides a comprehensive game-streaming solution that is scalable and supports a wide range of player and viewer interactions. Using our solution, you can run the Genvid Services in the cloud and broadcast gameplay to the whole world. Our technology allows spectators to view and participate in the stream using just their browsers.
Using the Genvid SDK, you can create a brand new, fully-customizable experience for viewers and grant them the ability to interact with the game in any way that you choose. The Genvid SDK provides a robust streaming and data exchange architecture so that developers can focus on creating amazing experiences with new revenue potential.
The Genvid SDK is composed of the following three major parts:
- Spectator Game-client – renders and streams the view of the game that viewers will watch.
- Genvid Services – receive and encode that stream along with data from the game.
- Genvid Overlay – receives the broadcast data and allows viewers to watch and interact with the live stream and the game through it.
Let’s start with the game client and take a look at the example GenvidTanks Sample project. This game was made in Unity, and implements the Genvid SDK via our Unity Plugin. The Genvid SDK also provides a plugin for the Unreal engine. For proprietary engines, it’s not difficult to use the C-based API to automatically capture video and audio and send custom game data back and forth between spectators and the game.
Please note that in the GenvidTanks Sample, both the spectator client and Genvid Services are running locally for ease of setup. In a production deployment, both would be running in the cloud.
The video and audio data is sent from the Unity application to the Genvid encoding service running in the cloud. From there, the encoded data is sent to live streaming services such as YouTube Gaming or Twitch. Genvid Services handle custom game-data and game-events that allow for a unique interactive experience for the stream viewers.
For the GenvidTanks Sample, aside from just watching the stream, the Genvid SDK provides an additional overview of the game stats and scores rendered as a web overlay on top of the video stream. Viewers can also cheer for their favorite tank and can vote for the next spawnable loot in the game world by interacting with the overlay.
For more information on how to configure live-streaming, please see documentation here.
Data Streams Overview
The Genvid SDK handles the transmission of data between the spectator game-client and the viewers through different types of data streams, depending on the type and frequency of the data being sent. The game can send generalized data streams such as audio, video and synchronized supplemental data such as the game state, as well as annotations, or one-time events such as the player getting killed. This data contains a time code so that it always belongs to a specific time in the game. The game can also send immediate, real-time notifications to viewers for data such as the game being finished. The overlay can send events back to the game for interactions such as viewers voting on their favorite player. Both notifications and events are sent as quickly as possible and neither contain time codes. Finally, the producer who is running the game can send direct commands to control the game, such as to start a new round.
In this example, we will deploy the Genvid Services to a local Windows machine to make setup easy and for testing purposes. In a production deployment, this component runs on a cloud service like Amazon Web Services. A suite of monitoring tools is available to allow you to easily keep track of the server’s health and view logs. The tools also help with scaling servers and deploying updates to ensure that your game is running smoothly.
Overhead and Cost
Genvid’s goal is to facilitate incredible experiences between streamers and viewers while reducing development and maintenance overhead. The Genvid SDK is free to integrate – we only charge for world streaming on a per viewer basis. In addition, the heavy lifting of video streaming is handled by streaming platforms such as YouTube or Twitch, so the infrastructure to run Genvid servers can be lighter and cheaper to operate in the cloud. Finally, the Genvid SDK does not collect or store user data. You as the developer have full control and ownership of player and game data.
In Parts 2, 3, and 4 of this tutorial video series, we will demonstrate how to start and run the GenvidTanks Sample project. First, we’ll look at running the project in the Unity editor. Then we’ll demonstrate how to set up and run the Genvid Services on your local machine. Finally, we’ll take a look at how the web overlay for the sample is implemented.