Things To Consider

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

Unity's Networking Stack - NetCodeForGameObjects

FishNet

FishNet Networking

Mirror

Mirror Networking – Open Source Networking for Unity (mirror-networking.com),

Mirage

MirageNet/Mirage: Easy to use Network library for Unity 3d (github.com)

MLAPI

MLAPI | Game Networking Stack

Photon - Multiple Networking SDK’s To Choose From

Multiplayer Game Development Made Easy | Photon Engine

DarkRift

DarkRift Networking

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.

You can now use Unity Cloud Code 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.

Cloud lambda functions, a new computing concept (luneba.com)

What are Vivox Access Tokens (VATs)? – Vivox Developer Support

Vivox Access Token Overview

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.

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

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

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** Presence Feature will likely get deprecated in favor of Unity Friends.

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 Lobby service

Unity Friends

https://create.unity.com/friends-save-the-date

Playfab

Microsoft Azure PlayFab | Full Stack LiveOps, Real-time Control

SteamWorks.Net SDK

Steamworks.NET - Steamworks.NET

GameSparks

https://aws.amazon.com/gamesparks/

Firebase

Firebase (google.com)

Google Play SDK

Friends in Unity games | Android game development | Android Developers

Apple SDK

Introduction - Game Center - Technologies - Human Interface Guidelines - Design - Apple Developer

Last updated