Difference between revisions of "Dedicated Server Kit Introduction"

From gamevanilla wiki
Jump to: navigation, search
m (Protected "Dedicated Server Kit Introduction" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
Line 2: Line 2:
 
|
 
|
  
Master Server Kit is a complete library that allows you to host your UNET-based multiplayer game on a dedicated server.
+
Dedicated Server Kit is a complete library that allows you to host your UNET-based multiplayer game on a dedicated server.
  
 
== <strong>Why?</strong> ==
 
== <strong>Why?</strong> ==
  
If you are using [https://docs.unity3d.com/Manual/UNet.html UNET] as the networking library for your game, [https://unity3d.com/services/multiplayer 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:
+
There are lots of options for P2P networking out there but, many times, you just really need to host your game on a dedicated server. Consider the following scenarios:
  
* <strong>Custom backend:</strong> 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.
+
* <strong>Custom backend:</strong> 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, monetization schemes, increased ability for monitoring or maybe you just have the team and expertise needed and prefer to do everything in-house.
 
* <strong>Server-side authoritative game logic:</strong> 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.
 
* <strong>Server-side authoritative game logic:</strong> 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.
  
Line 22: Line 22:
 
  "With great power comes great responsibility."
 
  "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!
+
Dedicated Server Kit has been specifically created to help you with this task. We want you to focus on making a great game instead!
  
 
== <strong>Features</strong> ==
 
== <strong>Features</strong> ==
  
Master Server Kit provides the following features:
+
Dedicated Server Kit provides the following features:
  
* Player registration and authentication (which can be bypassed if desired).
+
* Player registration and authentication.
* Guest mode.
+
* Player data persistence in a MySQL database.
* Support for both world-based and room-based games.
+
* Game room-based matchmaking functionality. Independent Mirror-based game server instances are dynamically spawned and destroyed as needed as players join and leave games.
* Matchmaking supporting public and private games. Independent game server instances are dynamically spawned and destroyed as needed.
+
* Networking library-agnostic REST API written with Go using battle-tested techniques and standards. While the kit supports Mirror-based game server instances by default, support for other networking libraries is technically possible.
* Zone servers that allow you to distribute the game server load across different machines (useful for load balancing or region-based matchmaking).
+
* Complete Go and C# source code.
* 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.
+
  
 
|}
 
|}

Revision as of 06:54, 8 July 2020

Dedicated Server Kit is a complete library that allows you to host your UNET-based multiplayer game on a dedicated server.

Why?

There are lots of options for P2P networking out there but, many times, you just really 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, monetization schemes, 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."

Dedicated Server Kit has been specifically created to help you with this task. We want you to focus on making a great game instead!

Features

Dedicated Server Kit provides the following features:

  • Player registration and authentication.
  • Player data persistence in a MySQL database.
  • Game room-based matchmaking functionality. Independent Mirror-based game server instances are dynamically spawned and destroyed as needed as players join and leave games.
  • Networking library-agnostic REST API written with Go using battle-tested techniques and standards. While the kit supports Mirror-based game server instances by default, support for other networking libraries is technically possible.
  • Complete Go and C# source code.