AwesomeNET is a Unity multiplayer framework that allows you to easily add mulitplayer capabilities to your game. Completely without writing any networking code.
Principle of operation
To connect players with AwesomeNET you need two things. A server, running the .net Core AwesomeNET server software which consists of a matchmaking server and gameservers that host your individual sessions and a AwesomeNET client integrated in your Unity game. The client talks to the server via TCP to create, search, delete and join games. If the player decides to create a game the matchmaking server automatically creates a game server with a dedicated port that the players can join via the matchmaking. Once connected the server acts as relay that relays every game command to all the clients. This all happens without tossing around IPs or opening ports on the players side.
If you want to run an action synchronised over the network on every players game client you just need to add a script, the NetworkGameObjectConnector, to the game object. This script lists every public method of every script attached to the game object. After registering the method by selecting it in the inspector it gets assigned an id. Instead of calling a method locally like
Player.Fire() you just call it via AwesomeNET like this:
NetworkGameObjectConnector.ExecuteNetworkCommand.("Player.Fire"). This will execute
Player.Fire() for this specific game object on every connected game client at the same time. Of course this works also with methods that take any kind and any ammount of arguments!
To add multiplayer capabilities to your game with AwesomeNET you need a few things:
- A copy of AweseomeNET downloadable from the Unity Asset Store
- A computer or server running the AwesomeNET Server with
- A static global IP or a dynamic DNS solution
- .net Core installed
- the ports you want to use for game and matchmaking servers not blocked by the firewall
To see how you can archieve all this and how you can enable your game to talk over the network with AwesomeNET see the Getting started guide.