Documentation

Support

Vivox Unreal SDK

Vivox Unreal SDK

Integration with the Vivox Unreal SDK

Learn how to integrate the Vivox Unreal Software Development Kit into your project.
Read time 2 minutesLast updated 2 months ago

Note
The Unreal SDK does not currently support using Vivox with Unreal's Live Coding feature in Unreal 5.2.
Vivox provides group text and voice communications through channels. Users can communicate with each other by joining the same channel. Channels support the following functionality:
  • Voice
  • Voice rendered with 3D effects (positional/directional audio)
  • Text
  • Muting a user for oneself
  • Muting a user for all users in the channel
  • Forced removal of a user from a channel (“kick”)
Channels have the following characteristics:
  • Channels are identified by channel IDs.
  • Channel IDs are assigned by the game.
  • Channels are platform agnostic - game clients running on different platforms interoperate with each other.
  • Channels are created on demand, and inactive channels consume no Vivox resources.
Users have the following characteristics:
  • Users are identified by user IDs.
  • User IDs are assigned by the game and must be unique to each user.
  • Users that are not logged in to the system consume no Vivox resources.
  • Users can subscribe to the presence of other users. Presence is a status and message that a user can optionally share with other users, regardless of whether either user is in a channel.
To expose Vivox capabilities to players, a game developer must perform the following actions:
  • Determine how to map player IDs to Vivox user IDs.
    • Ensure that there is one Vivox user per game player.
    • Typically, games use the player ID as a portion of the Vivox user ID, because the player ID is already unique to the player.
  • Determine how to map game audio and text-enabled object identifiers to Vivox channel IDs.
    • Typically, games use the game object identifier as a portion of the Vivox channel ID.
    • Audio or text-enabled game objects include the following examples:
      • Guild channels
      • Team channels for team versus team match play
      • Lobby channels
      • Private conversations between two players
      • Physical regions in a game world that map to 3D audio spaces
  • Determine the client platforms that are supported by a game.
  • Integrate the game client with the Vivox Core SDK to ensure that the following actions occur:
    • When a player logs in to a game, the corresponding user is logged in to the Vivox system.
    • When a player activates a game object (for example, joining a guild channel or entering a particular region in a game), the player is placed into the corresponding Vivox channel.
    • When a player wants to see the presence information of another player, the game client creates a subscription relationship between the corresponding Vivox users.
    • When text messages are available in a channel, display those text messages in the game.
  • Modify the game server to deliver Vivox access tokens to game clients (if a game developer wants to secure access to the Vivox voice system).
    • A Vivox access token is a JSON Web Token that grants the holder of that token a one-time permission to execute a particular Vivox operation.
    • The following operations are controlled by access tokens:
      • Signing in to Vivox as a specific user
      • Joining a specific Vivox channel as a specific user
  • Optionally modify the game server to communicate directly with the Vivox Voice Server by using the Vivox Server to Server Web API, which allows you to perform the following actions:
    • Drop or kick a user or all users from a channel
    • Mute or unmute a user or all users for everyone in a channel