Glossary

Description of commonly used terms

Actor

Actor is the authoriative server for your game. It manage the game state, handles player request so big screen does not get overwhelm.

Actor should be authoritative, meaning actor should be the one tracking game state and making gameplay decision such as when a game is won, how much score is awared to players.

While BigScreen and Client have restricted access to the platform, Actor has full access to the platform within the scope of this game. Actor is able to update user scores in leaderboard, modify user inventory, etc, whereas many of these are operations are not allowed from BigScreen or Client side.

Actor runs along side RMB and has a direct local connection to RMB. Game developer upload their actor binary to the platform and it will be loaded when a session starts.

There are two different types of Actors - Motherships and Satellites.

BigScreen

BigScreen refers to the game UI on the streamers/host screen. It's the screen that players and viewers are actively watching.

BigScreen is used to show things like join codes, game instructions, etc.

BigScreen also manages the lifecycle of the session.

When the BigScreen makes the call to create a new session, this also creates a room and actor instances.

When the BigScreen ends the session, it removes the room instance and discards the running actor.

BigScreen application should end the session before quitting.

Client

The Client is what the player uses to interact with the game. Usually this is through a mobile device.

Player join the game by entering a join code displayed on BigScreen.

Note that Client cannot send message directly to BigScreen. Client must send message to Actor.

Mothership Actor

In general, mothership handles core game state and BigScreen message.

Mothership also sends game state to Satellites.

Room Message Bus (RMB)

Game play communication are sent through Room Message Bus. RMB is essentially a router that send message to a target (ie BigScreen, Client, or Actor). BigScreen and Clients do not connect to each other directly.

Each session has one RMB mothership and at least one RMB satellite. BigScreen connects to the mothership, whereas Clients connect to one of the satellites. The default limit is 250 clients per satellite. If more players join the session, mothership will request more satellite to be assign to the session. This is how the platform scales to facilitate thousands of players.

Lobby Service

Lobby is a service that manage sessions. BigScreen send request to Lobby to create a session (room). Lobby at first assigns one mothership and one satellite. As more player join, RMB mothership will request Lobby for more satellite to be assign to the session.

Satellite Actor

Satellite actor communicates with a subset of Clients (usually about 250 clients). Each session can have more satellites added as more players join.

Satellite actor handles player message and take advantage of concurrent satellite process to do most of the work. It should forward the new game state to the Mothership to be consolidated.