Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

WORKING IN PROGRESS

Master Server Kit

I. Abstract

When developing a dedicated multiplayer game, the master server is needed in order to orchestrates clients and rooms to the network. Master server should manage players and room connections, and also list rooms around the world.

This archive provides simple master server named MasterServerKit(MSK) which meets the basic features, such as creating rooms and sharing room lists over the network. Players are able to connect to the master server, create rooms in a lobby and also join other player's room.

It also provides multiple usefull methods, such as setting custom properties of the room and players, kicking players from the room, change the password of the room, sending messages to the players connected to the lobby and something else.

The rooms which are created by MSK is actually Unity's server instance, which means that MSK is designed for authorative game server model. MSK will orchestrates the unity server instance's ip and port so that other players can join the server instance using various realtime multiplay solutions, such as Mirror Network, NetCode and etc.

II. Features

  • Room Create rooms Join rooms, join random rooms Set room's password, open, private, custom properties Kick a player

  • Client Change player's nickname Set player's custom properties List rooms Fetch players connected

And more..

III. Setting Up

1. Master Server

a. Settings

There are two files in the builds directory. You can use the master server for Windows_x64 or Linux_x64. In the directory, there is a file named config.json which contains the configuration of the master server. Properly change the properties as the master server desired to be.

  • isHostDNS : does the host use DNS instead of IPv4?
  • MasterHost : address of the master server.
  • MasterPort : port number of the master server.
  • MaxConnectionsToMaster : maximum connections to the master server includes the players and room clients.
  • DispatchRate : packet dispatching rate of the server.
  • PortStart : starting port number of the unity server instance.
  • MaxInstanceCount : maximum unity server instance count.
  • UseVersionInInstancePath : MSK will uses the game version to execute the unity server instance.
  • ServerInstancePath : path of the server instance.
  • InstanceFileName : executable unity server instance file's name.

PortStart = 25000 and MaxInstanceCount = 100 mean that first created server instance will have port 25000 and the last created server will have 25099. If maximum instance count is reached, the next spawn request will be denied. The port will be automatically enqeued when the server instance is terminated.

If ServerInstancePath = C:\Users\MSLima\Desktop\ServerInstance and InstanceFileName = Build.exe, then the master server will execute a server instance in C:/Users/MSLima/Desktop/ServerInstance/Build.exe.

If UseVersionInInstancePath is set to true and client requested spawning server instance with version 0.0.1, then master server will execute server instance in C:/Users/MSLima/Desktop/ServerInstance/0.0.1/Build.exe.


#### b. Starting Master Server

Simply execute the file named below :

  • Windows : MasterServer.exe
  • Linux : MasterServer

If you see the screen below, master server is successfully executed.


### 2. Client & Server Instance #### a. Settings In `MasterServerKit/Config/Resources`, there is a `MskConfigClient` file which has config variables inside. Some variables should be configured before building the client or server instance.
  • Version : the game's version.
  • DnsForHost : does the host use DNS instead of IPv4?
  • Host : address of the master server.
  • Port : port number of the master server.

#### b. Starting Server Instance First of all, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskInstanceCallbacks`. `MonoBehaviourMskInstanceCallbacks` contains various server callbacks which is useful to control the server logic.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassInstanceConnectionControl:MonoBehaviourMskInstanceCallbacks{}

And simply call the method below to connect to the master server. Master server ip and port can be passed as arguments. Otherwise, it will use the default ip and port which are set in the MskConfigClient.

privatevoidStart(){MasterServerKit.Instance.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}publicoverridevoidOnRoomRegistered(){// Invoked when the room is registerd to the master server.}

Note that the room will be provided to players when the room is registered to the master server, not the time when a connection has been establisehd.


#### c. Starting Client Smiliar to the starting serverv instance, create an empty mono script and declare `Msk` above and inherit from `MonoBehaviourMskClientCallbacks` which provides server callbacks for the client.
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingMsk;publicclassClientConnectionControl:MonoBehaviourMskClientCallbacks{}

Then, call the method below to connect to the master server. Same as server instance, it will use the default ip and port which are set in the MskConfigClient if the ip and port are not provided.

privatevoidStart(){MasterServerKit.Client.ConnectToMaster();}publicoverridevoidOnConnectedToMaster(){// Invoked when connect to the master success.}

Once the client has been connected to the master server, various server methods can be used to create game logics.


## IV. Examples Examples are included in the UnityPackage. Please import the unity package into your unity project to explore the example situations.

About

Unity Master Server Kit

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages