Master Server Toolkit

Deployment Explained

Estimated reading: 6 minutes 327 views

What do we mean by Deployment with MST?

Deployment, specifically Software Deployment, is the steps necessary to correctly deploy your MST builds for the Server of your choice and the correct software builds to provide to your customer. 

This is the stage where you are happy with the product you made, but now you want to test your product (I.E. Game) with it being hosted on a Server and have your players (Clients) join in the fun.

There are several, varied ways this could be done, but for sake of understanding and ease of learning, I will explain one possible way.

Our Example Scenario

Example Conditions:

  • So we made a really cool game and it has 3 unique levels (scenes).
  • We want to have it be server authoritative, where the server controls the rules, and the game logic. The clients send their requests to the server, and the server decides how to handle those requests.
    • This is a common setup
  • We know we want our actual server to be on the amazon cloud
    • You can utilize any number of cloud or non cloud-based server solutions. We are simply using this as an example.

** Now that we have our example scenario written out, how do we deploy this properly?

 

MST Scene Builds Explained

In order to fully understand deployment for the server and our clients, we need to take a look at what builds means, for MST.

In MST there are typically three types of scenes.

  • Master Server and Spawner Scene (I.E. Our Server Logic)
    • Typically contains the following game objects:
      • Master Server
      • Spawner
      • Connection to Master
  • Client Scene (I.E. our Player)
    • Typically contains the following game objects:
      • Main Camera
        • Our player’s point of view
      • Directional Light
      • Event System
      • Connection Master
        • This connects us to the MST Server
      • Client Manager
        • This is for Authentication
      • Screenshot Maker 
        • (not needed but nice to have)
      • Terminal
        • (not needed but nice to have)
      • Master Canvas
        • Think of this as the varied menus leading our players towards the game room, and their own unique player menus.
      • Room Client
      • Room Server
  • Room Scene(s) (I.E. Our Game Levels)
    • Can be one scene or many scenes
    • Typically contains the following game objects:
      • Main Camera
        • Shared Camera instance, which is utilized for each player’s perspective.
        • Although there is just one camera, each new client (player) that joins the room, gets their own camera instance, based off this camera)
      • Level Environment (I.E. Arena in the below screenshot)
      • Directional Light
      • Master Canvas
        • Canvas that is unique to the room specifically, and much like the camera mentioned above, shows unique details related to the room, and the client specifically.
          • Each client has their own unique instance of this
      • Event System
      • Player Spawner
        • Spawns our prefabbed player
        • Spawns usually at the start of the room loaded
      • Room Client
      • Room Server
      • Terminal
        • (not needed but nice to have)
      • Connection to Master
        • This connects us to the MST Server

How to build for deployment

Important:

Please be sure to review the to ensure your understanding of building scenes, and the NEED to be sure you switch platforms, for each and every build!

Deployment for Server:

  1. Build the Server Build containing Master Server Toolkit and Spawner
  2. Build the Room Build containing all of your Room Scenes, with the first Room Scene (I.E. First Game Level) set as active
    1. In our Scenario above, we would open the room scene for game level one, then add a room scene for game level 2 and also add a room scene for game level 3, where game level 1 remains active
  3. Now Transfer the 2 Builds (Server Build and Room Build) to the appropriate directory on your server.
    1. Keep in mind, your server only knows where the room exe file is via the Spawner Game Object in your Server Build so be sure it matches the server your deploying too’s directory as indicated here:
      1. *Advanced tip, you can modify the room exe location using the application.cfg file for the room builds, assuming you have created the option for this.
        1. To learn how to develop this option, review the script named “BasicRoomsAndLobbiesBuild.cs

Deployment for Client:

  1. Build the Client Build containing your Client Scene AND all of your Room Scenes, with the first Client Scene  set as active
    1. In our Scenario above, we would open the client scene first, and then add a room scene for game level 1, add a room scene for game level 2, and also add a room scene for game level 3, where the client scene remains active

 

Conclusion

Assuming you carefully followed all the outlined directions, above, noting importantly the following:

1) You have ensured the Game Object “Connection to Master”  has the same correct IP information, across all scenes (Client, Master, and Room(s))

2) You have ensured Firewall allows inbound/outbound connections for the ports you specified for MST Connections

3) You have followed all proper best practices, including ensuring you are using the “switch platform button” each time you perform a build

You should have a test build working, with any number of Clients, connecting to your Server hosted on AWS, (as per our example scenario) !

Share this Doc

Deployment Explained

Or copy link

CONTENTS

Developer and Links

How to Contact FishNet FirstGearGames: https://www.firstgeargames.com/ FishNet L...

About FishNet

Meet the Developer of FishNet The developer of FishNet is known as FirstGearGame...

Enhanced Guide: In-depth Features and Usage

⚓ FishNet Deckhand – Features & Access Levels The FishNet Deckhand bot i...

About FishNet Deckhand

What is FishNet Deckhand? Welcome to FishNet Deckhand, an advanced, AI-enhanced ...

Quick Start Guide: Navigation Made Easy!

Commands Overview ⚓ FishNet Deckhand Bot Commands & Features The FishNet D...

About this Guide

This Guides Purpose This guide is designed to be a comprehensive resource for un...

FishNet Deckhand

FishNet – Networking Evolved

About this Guide

This Guides Purpose This Guide is intended to serve as a “Best Practices G...

Deployment Explained

What do we mean by Deployment with MST? Deployment, specifically Software Deploy...

Best Practices

Some of my best practices when utilizing MST Obviously, if not already done, alw...

Master Server Toolkit

Chat Icon Close Icon