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
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
Photon - Multiple Networking SDK’s To Choose From
Multiplayer Game Development Made Easy | Photon Engine
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.
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
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 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
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
Was this helpful?