question

Ziii avatar image
Ziii asked

Simple process to auto connect and scale the servers?

Hi all,

I'm a newbie developing an online gallery app, using Unity & Mirror Networking and targeting to WebGL.

I need an invisible and smooth process for clients to connect to the servers, that clients won't need to do manual match making or server selection. Servers are hosted by playfab multiplayer service, and the servers should be available all the time, auto scale by player's need.

The Matchmaking system of playfab seems too complicated and not designed for my need. Maybe a server with backfill ticket can be useful? My plan now is to manage the servers with external service (e.g. Firebase), keeping a server list, and allocate new servers in client's request, or shut down extra ones.

I like to know if there is simpler ways to do that. Maybe I'm missing out some basic concept here?

Thanks in advance!

multiplayerMatchmaking
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
Seth Du avatar image
Seth Du answered

Backfill ticket won't meet your requirement, because it needs a matched ticket. The purpose of Backfill ticket is when the number of matched players in a queue is a scope and after the ticket is matched, server can open a slot for more players to match. It should be processed after a normal matchmaking is finished.

Multiplayer server has a feature of Standby, which can be configured in the build settings. Stand-By servers will be in a pending state waiting for players’ connection, it will cost little and can guarantee when a server instance is requested by players, it can provide service immediately. With the help of dynamic standby technology, when more and more stand-by servers turn to be live, inactive servers will be activated to stand-by mode.

>> to manage the servers with external service (e.g. Firebase), keeping a server list, and allocate new servers in client's request, or shut down extra ones.

I believe it is a feasible solution and you will need to manage an external server for multiplayer server management. There should be codes written in the server build that the instance will check the state of self and exchange the information with the external server, such as if there are any available slots for allocation.

Anyway, the lobby like feature is not supported in the current Multiplayer server. It is a service designed for session-based games and the Matchmaking system will work perfectly with it. To meet your requirement, a self-managed external server is necessary.

2 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Ziii avatar image Ziii commented ·

Thanks for answering. I'll go on with the solution.

I've another related question, that how can i active a server by remote request, after a server is allocated by RequestMultiplayerServer? Or it can only be activate by the dynamic standby service? I don't really understand the "standby to active" life cycle, neither do i find related topic in docs. Thanks!

0 Likes 0 ·
Seth Du avatar image Seth Du ♦ Ziii commented ·

RequestMultiplayerServer API will directly turn a stand-by mode server instance to active.

Standby and Active is simply the different state of a server instance. If you have reviewed the source code in the official sample of GSDK, https://github.com/PlayFab/gsdk. The server instance will be pended in a state of waiting for connection after initialization. APIs like RequestMultiplayerServer is like telling the instance the players to be connected.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.