Master Server Kit is a complete library that allows you to host your UNET-based multiplayer game on a dedicated server.
If you are using UNET as the networking library for your game, Unity Multiplayer Services are an excellent way to get player-hosted games up and running without worrying about the details of setting up your own server infrastructure. But, sometimes, you just need to host your game on a dedicated server. Consider the following scenarios:
- Custom backend: You need to be in total control of your game backend. This could be for a variety of reasons: player authentication, player data storage or advanced matchmaking facilities, increased ability for monitoring or maybe you just have the team and expertise needed and prefer to do everything in-house.
- Server-side authoritative game logic: Your game needs to be secure against player hacks. In player-hosted games, one of the clients acts as the server. This means that a malicious client has the potential to alter the outcome of the game. Whether this is important or not will depend on the specifics of your game, but sometimes you really need to be safe against this type of cheats. Running the game logic on an independent, authoritative game server that you control is the best way to ensure that.
Running your game on a dedicated server has therefore several advantages over player-hosted games:
- More protection against malicious clients.
- No artificial CCU limit.
- No need for NAT punch-through or relay servers. Clients are never connected directly to each other but through a dedicated server instead.
- You only pay for setting up and maintaining your servers (which can be your own machines or a third-party cloud provider like Digital Ocean).
The main drawback is that, of course, you are in charge of everything. You need to pay for the hosting of your servers (unless you physically own them) and make sure they are always available to your players. As they say:
"With great power comes great responsibility."
Master Server Kit has been specifically created to help you with this task. We want you to focus on making a great game instead!
Master Server Kit provides the following features:
- Player registration and authentication (which can be bypassed if desired).
- Guest mode.
- Support for both world-based and room-based games.
- Matchmaking supporting public and private games. Independent game server instances are dynamically spawned and destroyed as needed.
- Zone servers that allow you to distribute the game server load across different machines (useful for load balancing or region-based matchmaking).
- Player properties system that can be used for implementing currencies and achievements with persistent storage in a database. Default implementations are provided for SQLite, MySQL, MongoDB and LiteDB.
- Chat with support for public and private messages and an unlimited number of channels.
- Complete and extensively documented C# source code. Customers have access to the private repository of the project.
- Compatible with games using UNET, including games that use the Network Manager component.
- Includes demo that showcases the functionality of the kit.