Unity Fast Paced Multiplayer
A Unity project to build the base functionality for a Authoritative Server, with Lag Compensation, Client side Prediction/Server side Reconciliation and Entity Interpolation
WARNING: Unity has announced they are working on a new multiplayer framework and deprecating UNet on Unity 2018.4 (LTS). I should not work on this anymore since it will be deprecated. There are still alternatives to develop your multiplayer project, read here for official Unity support. Otherwise, I'd also recommend you to check out Bolt, a Multiplayer Framework by Photon. Thanks to all the supporters that helped me through the development of this repository!
Based on the references:
- Unity Networking Tutorial Part 1 - Introducing the HLAPI
- Unity Networking Tutorial Part 2 - Client Side Prediction and Server Reconciliation
- Unity Netowrking Entity Interpolation Part 1 - Break Into Components
- Unity Networking Entity Interpolation Part 2 - Clientside Input Buffering
- Fast-Paced Multiplayer by Gabriel Gambetta
- Networked Physics by Glenn Fiedler
- Valve Developer Multiplayer Networking
- Valve Developer Latency Compensation
- Unity Networking Official Repository
I'm currently working on a multiplayer project, and I use this repository for testing, but later on, I hope to create a strong foundation with this to use as a substitute to the Network Transform component on server-authoritative games.
What's this about?
This is a work in progress framework to help developing server authoritative games on Unity. It is recommended for fast paced multiplayer games such as shooters or racing games. This does not provide any type of server or database solution, as it only acts on the sync methods of the entities. Head over to the wiki for further knowledge and usage guides.
How to test
- On the top menu, click Tools>Quick Build
- Choose a folder to deploy your test build
- Click Tools>Run Server to run the authoritative server
- Click Tools>Run Client to run a simulated client (You can press F1 to toggle movement simulation)
- Run the game on the editor then select Client on the Network HUD
- Move around and watch the sync between the different game windows