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.

circle-exclamation

NetCode for GameObjects

Unity's Networking Stack - NetCodeForGameObjectsarrow-up-right

FishNet

FishNet Networkingarrow-up-right

Mirror

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

Mirage

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

MLAPI

MLAPI | Game Networking Stackarrow-up-right

Photon - Multiple Networking SDK’s To Choose From

Multiplayer Game Development Made Easy | Photon Enginearrow-up-right

DarkRift

DarkRift Networkingarrow-up-right

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.

circle-info

You can now use Unity Cloud Codearrow-up-right 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)arrow-up-right

What are Vivox Access Tokens (VATs)? – Vivox Developer Supportarrow-up-right

Vivox Access Token Overviewarrow-up-right

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.

circle-check
circle-info

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 arrow-up-rightin favor of Unity Friendsarrow-up-right.

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 servicearrow-up-right

Unity Friends

https://create.unity.com/friends-save-the-datearrow-up-right

Playfab

Microsoft Azure PlayFab | Full Stack LiveOps, Real-time Controlarrow-up-right

SteamWorks.Net SDK

Steamworks.NET - Steamworks.NETarrow-up-right

GameSparks

https://aws.amazon.com/gamesparks/arrow-up-right

Firebase

Firebase (google.com)arrow-up-right

Google Play SDK

Friends in Unity games | Android game development | Android Developersarrow-up-right

Apple SDK

Introduction - Game Center - Technologies - Human Interface Guidelines - Design - Apple Developerarrow-up-right

Last updated