Easy Code For Vivox
  • Introduction
    • Official Links
    • Getting Started
      • Wheres The Code
      • Setup EasyCode in My Project
    • Setup Demo Scenes
      • Vivox Developer Portal
      • Unity Gaming Services (UGS) Dashboard
    • Things To Consider
    • FAQ
  • Development Info
    • Design Decisions
    • Release Notes
      • v2.0
      • v1.3
      • v1.2
      • v1.1
      • Template
    • Not Supported
  • Easy Code For Vivox
    • How do I setup EasyCode?
      • Setup Your Credentials
    • How do I do this in EasyCode?
      • Login / Logout
        • Login Properties
        • SetTransmissionMode
        • Login Events
      • Join / Leave Channel
        • Audio Channel
          • Audio Channel Events
        • Text Channel
          • Text Channel Events
        • Channel Events
      • Send Messages
        • Message Events
      • Mute / Unmute
        • Mute / Unmute Events
      • Subscribe to User Events
      • Volume / Audio Settings
        • Audio Device Events
      • Text To Speech ( TTS )
        • TTS Events
    • Vivox Access Tokens
      • Unity Cloud Code
    • Supported Vivox Events
      • Callback Methods
    • Folder Structure / Info
      • / Demo Scenes /
      • / Documentation /
      • / Examples /
      • / Plugins /
      • / Resources /
      • / Scripts /
      • / Settings /
    • Common Errors
  • API Info
    • EasySession.cs
    • EasyManager.cs
      • Main Methods
      • Vivox Event Callbacks
    • Easy3DPositional.cs
    • EasyVivoxUtilities.cs
    • EasySettings.cs
    • Extension Methods
      • EasySIPExtensions.cs
      • GameObjectExtensions.cs
      • TTSMessageExtensions.cs
      • UIExtensions.cs
      • VivoxExtensions.cs
      • EasyDebug.cs
    • EasyEvents.cs
  • Dependency Injection
    • Zenject vs Extenject
    • Install Dependencies
    • Inject Classes
  • Dynamic Events
    • Dynamic Events
    • Tests
    • Gotchas
    • Dynamic Async Events
      • Dont Do
    • Event Examples
  • Related Info
    • How do I do this in Vivox?
      • Conference Chat
    • Pre-Processor Directives
    • How to set iOS Info.plist for Unity?
    • Unity Gaming Services
  • The Future
    • Roadmap
    • Todo / Notes / Changelog
Powered by GitBook
On this page
  • Networking
  • Vivox Access Tokens
  • Player Interactions in Multiplayer Games

Was this helpful?

  1. Introduction

Things To Consider

PreviousUnity Gaming Services (UGS) DashboardNextFAQ

Last updated 2 years ago

Was this helpful?

Recommended to have some experience using the Unity UI and C#. This project is intended to be Indie friendly and to provide easy interactions with the Vivox Unity SDK. Built specifically for people who don't have time to learn how to use Vivox from scratch.

Networking

Although it’s not necessary, for almost all game types that will implement Vivox you will need a networking solution such as the following. There are more solutions so do your research before choosing the best solution for your game.

Keep in mind MLAPI has become Unity’s fully adopted network solution called NetCodeForGameObjects.

NetCode for GameObjects

FishNet

Mirror

,

Mirage

MLAPI

Photon - Multiple Networking SDK’s To Choose From

DarkRift

Vivox Access Tokens

Even after you have chosen a networking solution, to get your game approved by Vivox for production status (out of sandbox mode) your players need to get authorization tokens (used for secure voice communications and keeps your Vivox credentials out of client / game / app code) from a dedicated server or possibly use cloud lambda functions(tested it with Amazon Lambda and it works) to receive proper Vivox Access Tokens. You can choose to keep your player count under < 5000 player limit and in sandbox mode but it still poses a security risk and not recommended. Also limits your game from being successful.

With all this in mind this asset does not provide networking code or solve the problem of getting Vivox Access Tokens(VAT’s) from a dedicated server. This asset does provide production code methods and examples but still poses the problem of requesting VAT’s directly from the client. One solution is to have a custom game server request the VAT’s from Vivox’s servers and then pass the VAT to the client so they can connect securely.

Unity now provides easy to setup dedicated game servers called Multiplay so you can stay within the Unity Eco-System. You can also use AWS EC2(Azure and Google provide similar options) or AWS GameLift. These options can be more expensive and more difficult to setup and maintain in the long run. Do your own research

Player Interactions in Multiplayer Games

This makes it borderline impossible to send direct messages to players because players will have no knowledge of who is currently online. Your players would have to actually know each other or meet on a forum or Discord community and exchange usernames to be able to communicate with each other.

With this in mind if you are using a dedicated server, you can implement your own functionality. If you're not using a networking solution (or don’t want to implement your own system) then I would recommend using one of the following multiplayer friend/leaderboard integrations. There may be better options or for your game so do your research.

Unity Lobby Service

Unity Friends

Playfab

SteamWorks.Net SDK

GameSparks

Firebase

Google Play SDK

Apple SDK

You can now use as a serverless option and stay within the Unity Eco-System instead of other solutions such as AWS Lambda, Azure Functions, Google Cloud Functions that run portions of your code in the cloud so you don't have to setup/pay for a dedicated game server.

Vivox has provided an example to get started creating VAT's for your app/game using Unity Cloud Code.

Also, at the time of this writing Vivox Presence Feature does not support access to information on any players connected to their server (currently buggy). **Update** in favor of .

Unity's Networking Stack - NetCodeForGameObjects
FishNet Networking
Mirror Networking – Open Source Networking for Unity (mirror-networking.com)
MirageNet/Mirage: Easy to use Network library for Unity 3d (github.com)
MLAPI | Game Networking Stack
Multiplayer Game Development Made Easy | Photon Engine
DarkRift Networking
Unity Cloud Code
Cloud lambda functions, a new computing concept (luneba.com)
What are Vivox Access Tokens (VATs)? – Vivox Developer Support
Vivox Access Token Overview
Read more here
Presence Feature will likely get deprecated
Unity Friends
Unity Lobby service
https://create.unity.com/friends-save-the-date
Microsoft Azure PlayFab | Full Stack LiveOps, Real-time Control
Steamworks.NET - Steamworks.NET
https://aws.amazon.com/gamesparks/
Firebase (google.com)
Friends in Unity games | Android game development | Android Developers
Introduction - Game Center - Technologies - Human Interface Guidelines - Design - Apple Developer