Skip to content

Commit 2632c91

Browse files
jabbacakesNoelStephensUnityVic-CooperDSchroerr-mach
authored
Develop into main for NGO 1.11.0 (#1332)
Co-authored-by: Noel Stephens <[email protected]> Co-authored-by: Vic Cooper <[email protected]> Co-authored-by: Dominick <[email protected]> Co-authored-by: Rémi MACH <[email protected]> Co-authored-by: LagowiecDev <[email protected]> Co-authored-by: amanda-butler-unity <[email protected]> Co-authored-by: Griffin of Innatical <[email protected]> Co-authored-by: Christopher Pope <[email protected]> Co-authored-by: Steve Diniro <[email protected]> Co-authored-by: s-omeilia-unity <[email protected]> Co-authored-by: Alex Martin <[email protected]> Co-authored-by: Monaxys <[email protected]> Co-authored-by: Flap27 <[email protected]> Co-authored-by: NRTnarathip <[email protected]> Co-authored-by: Elfi0Kuhndorf <[email protected]> Co-authored-by: CodeSmile <[email protected]> Co-authored-by: Frank Luong <[email protected]> Co-authored-by: Sue Arkin <[email protected]> Co-authored-by: Johann Ruwet <[email protected]> Co-authored-by: KreutzerCode <[email protected]> Co-authored-by: Dominick <[email protected]>
1 parent 8e03175 commit 2632c91

File tree

130 files changed

+14310
-809
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+14310
-809
lines changed

docs/learn/distributed-authority-quick-start.md

+6
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,12 @@ public class ConnectionManager : MonoBehaviour
150150
}
151151
```
152152

153+
:::note
154+
155+
It's important to wait until `OnClientConnectedCallback` has been triggered before spawning objects. Spawning objects early will result in errors and unexpected behaviour.
156+
157+
:::
158+
153159
2. Add the `ConnectionManager` component script you created to the *NetworkManager* object.
154160
![add connection manager](/img/learn/distributed-authority-quick-start/create-connection-manager.png)
155161

docs/release-notes/ngo-changelog.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ The following content tracks features, updates, bug fixes, and refactoring for t
88

99
| Release | Date | Changelog |
1010
|---|---|---|
11-
| 2.0.0-pre | 2024-06-17 | [2.0.0-pre](https://docs.unity3d.com/Packages/[email protected]/changelog/CHANGELOG.html) |
12-
| 2.0.0-exp | 2024-04-02 | [2.0.0-exp](https://docs.unity3d.com/Packages/[email protected]/changelog/CHANGELOG.html#200-exp2---2024-04-02) |
13-
| 1.10.0 | 2024-07-22 | [1.10.0](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/blob/release/1.10.0/com.unity.netcode.gameobjects/CHANGELOG.md) |
11+
| 2.0.0-pre.4 | 2024-08-21 | [2.0.0-pre.4](https://docs.unity3d.com/Packages/[email protected]/changelog/CHANGELOG.html) |
12+
| 2.0.0-exp | 2024-06-03 | [2.0.0-exp](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/blob/develop-2.0.0/com.unity.netcode.gameobjects/CHANGELOG.md#200-exp5---2024-06-03) |
13+
| 1.11.0 | 2024-08-20 | [1.11.0](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/ngo%2F1.11.0) |
14+
| 1.10.0 | 2024-07-22 | [1.10.0](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/ngo%2F1.10.0) |
1415
| 1.9.1 | 2024-04-18 | [1.9.1](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/ngo%2F1.9.1) |
1516
| 1.8.0 | 2023-12-12 | [1.8.0](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/ngo%2F1.8.0) |
1617
| 1.7.1 | 2023-11-15 | [1.7.1](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/ngo%2F1.7.1) |

docusaurus.config.js

+4
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,10 @@ module.exports = {
240240
label: "2.0.0-pre",
241241
path: "current",
242242
},
243+
"1.11.0": {
244+
label: "1.11.0",
245+
path: "1.11.0",
246+
},
243247
"1.10.0": {
244248
label: "1.10.0",
245249
path: "1.10.0",

tools/porting-to-dgs/client-vs-dgs.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ The following table lists some pros and cons of using a client-hosted hosting ap
4141
| Client-hosted games are simpler to debug and profile compared to dedicated server-hosted games (your development PC can also run the host, a DGS might run on specialized hardware). | Players can more easily cheat because they have physical access to the server. |
4242
| The above makes it great for LAN (local area network) parties. | Client-hosted games don’t scale well. Player hardware usually isn’t capable of hosting game sessions with hundreds of connections. |
4343

44-
✝ However, some games might generate more traffic (compared to compute resources), which might make a client-hosted game more expensive than using a service like Game Server Hosting (Multiplay) if relying too much on Relay.
44+
✝ However, some games might generate more traffic (compared to compute resources), which might make a client-hosted game more expensive than using a service like Unity Multiplay Hosting if relying too much on Relay.
4545

4646
## Dedicated server-hosted games
4747

48-
A dedicated server-hosted game is a game that runs server builds on hardware that’s dedicated to hosting the game. The dedicated server might be in an [on-premise data center](./hosting-considerations.md#developer-hosted-cloud), in the [cloud](./hosting-considerations#developer-hosted-cloud), or made available through a [managed service provider](#managed-service-provider), such as Unity’s [Game Server Hosting](https://docs.unity.com/game-server-hosting). In any case, players don’t usually have access to the server build.
48+
A dedicated server-hosted game is a game that runs server builds on hardware that’s dedicated to hosting the game. The dedicated server might be in an [on-premise data center](./hosting-considerations.md#developer-hosted-cloud), in the [cloud](./hosting-considerations#developer-hosted-cloud), or made available through a [managed service provider](#managed-service-provider), such as Unity’s [Multiplay Hosting](https://docs.unity.com/game-server-hosting). In any case, players don’t usually have access to the server build.
4949

5050
Games that benefit most from a dedicated server-hosted hosting approach include those that:
5151

@@ -61,9 +61,9 @@ The following table lists some pros and cons of using a dedicated server hosting
6161
| There’s no extra lag due to relay based connections. | You must consider scalability because the number of players connected to your server fleet can change drastically in a short time. |
6262
| You have more control over performance and quality of service since you as a developer control the hardware the server runs on. | It can quickly get expensive, depending on how you host the server build. |
6363
| It’s easier to think about the server part of your code and the client part of your code when there’s no overlap like a client-hosted game. | It’s more complicated to debug because you usually need to run the production build in a virtual machine for testing. |
64-
| Clients don’t require as much performance because they'ren’t responsible for the processing and bandwidth overhead involved with hosting. | You have to keep a server build and a client build. |
64+
| Clients don’t require as much performance because they aren't responsible for the processing and bandwidth overhead involved with hosting. | You have to keep a server build and a client build. |
6565
| You don’t have to worry about host migrations or what to do when the host player disconnects. ✝ | |
6666
| You don’t have to worry about the unfairness of the host having zero latency or lag. | |
67-
| You have the option of using a managed service provider like Game Server Hosting, which allows you to focus on other aspects of your game. | |
67+
| You have the option of using a managed service provider like Unity Multiplay Hosting, which allows you to focus on other aspects of your game. | |
6868

6969
✝ However, you still need to accommodate for unexpected server failures. These failures are less likely to happen, but you still need to handle them with appropriate error messaging.

tools/porting-to-dgs/game-changes.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Games using a DGS hosting approach rely on automation to handle startup events a
7474
Instead of using in-game menus on start-up, you’ll need to implement an automated startup flow that will `StartServer()` automatically, then wait for your clients to connect. This is also when you might want to set up a lobby in your lobby service or advertise yourself as “ready” to your hosting provider and matchmaking service. After your service knows you’re ready, it can redirect clients to your server.
7575

7676
:::note
77-
If you’re interested in using other Unity services for your multiplayer game, see [Lobby](https://docs.unity.com/lobby), [Game Server Hosting](https://docs.unity.com/game-server-hosting), and [Matchmaker](https://docs.unity.com/matchmaker).
77+
If you’re interested in using other Unity services for your multiplayer game, see [Lobby](https://docs.unity.com/lobby), [Multiplay Hosting](https://docs.unity.com/game-server-hosting), and [Matchmaker](https://docs.unity.com/matchmaker).
7878
:::
7979

8080
### Automate closing the lobby
@@ -126,7 +126,7 @@ Starting a new game with connected players and keeping the same game session is
126126

127127
### Automate exit codes
128128

129-
Many hosting providers, such as [Unity’s Game Server Hosting service](https://docs.unity.com/multiplay/), watch your server and react to exit codes. For example, if you have a bug resulting in `StartServer` failing, you can call `Application.Quit(1)` with exit code `1`. Exit codes greater than `0` let the hosting provider know something went wrong and the provider can automatically react to this appropriately by trying to reboot your server or just destroying it.
129+
Many hosting providers, such as [Unity’s Multiplay Hosting service](https://docs.unity.com/multiplay/), watch your server and react to exit codes. For example, if you have a bug resulting in `StartServer` failing, you can call `Application.Quit(1)` with exit code `1`. Exit codes greater than `0` let the hosting provider know something went wrong and the provider can automatically react to this appropriately by trying to reboot your server or just destroying it.
130130

131131
## General game changes
132132

@@ -296,9 +296,9 @@ I've also seen self-signed certificates used for "offline" purposes, such as enc
296296
The content in this section might only apply to some hosting providers. Other hosting providers might have zero bandwidth costs for in-datacenter and ingress transfers.
297297
:::
298298

299-
Some hosting providers manage build updates for you and charge for in-datacenter and ingress transfers. One such hosting provider is [Unity’s Game Server Hosting (GSH)](https://docs.unity.com/multiplay/) solution (Multiplay).
299+
Some hosting providers manage build updates for you and charge for in-datacenter and ingress transfers. One such hosting provider is [Unity’s Multiplay Hosting](https://docs.unity.com/multiplay/) solution.
300300

301-
If you use GSH, you can make sure there’s no downtime between updates. GSH performs [build updates and rollouts](https://docs.unity.com/game-server-hosting/legacy/how-do-differential-updates-work.html) in the background. However, you can still [optimize your builds to reduce your bandwidth costs](https://docs.unity.com/game-server-hosting/legacy/cost-optimization.html). For example, you can speed up the update process (and incur fewer charges) by ensuring you have as few changes as possible between build versions.
301+
If you use Multiplay Hosting, you can make sure there’s no downtime between updates. Multiplay Hosting performs [build updates and rollouts](https://docs.unity.com/game-server-hosting/legacy/how-do-differential-updates-work.html) in the background. However, you can still [optimize your builds to reduce your bandwidth costs](https://docs.unity.com/game-server-hosting/legacy/cost-optimization.html). For example, you can speed up the update process (and incur fewer charges) by ensuring you have as few changes as possible between build versions.
302302

303303
There are several ways you can mitigate the differences between build versions. For example, you can use:
304304

@@ -331,5 +331,5 @@ You can use DGS asset stripping to optimize many aspects of your server-hosted g
331331
If you’re a small game studio with a small player base, you might not consider the bandwidth costs involved with updating your game. However, these costs can grow quickly without optimizations like incremental builds. A server build of 30 GB and a fleet of 15,000 servers equates to hundreds of terabytes of bandwidth costs for each update.
332332

333333
:::tip
334-
The recommended best practice is to review the bandwidth and related costs of your hosting provider so you can calculate the true cost of rolling out an update. You can view the pricing information for Unity’s Game Server Hosting [here](https://docs.unity.com/game-server-hosting/concepts/pricing.html).
334+
The recommended best practice is to review the bandwidth and related costs of your hosting provider so you can calculate the true cost of rolling out an update. You can view the pricing information for Unity’s Multiplay Hosting [here](https://docs.unity.com/game-server-hosting/concepts/pricing.html).
335335
:::

tools/porting-to-dgs/hosting-considerations.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ Using a cloud hosting solution often saves you money upfront but can cost more t
8181
| Cloud providers often have data centers located across the world, so you can always have your servers near your users, reducing the latency of their connection. | If there’s a problem in your code causing servers to crash at some odd hour of the night, you can’t rely on the cloud provider to fix it. |
8282

8383
:::note
84-
You can also opt to host your servers with a bare-metal data center, such as Rackspace or Servers.com. Using bare-metal servers comes with its own set of pros and cons. Unity’s Game Server Hosting uses a combination of bare-metal and cloud servers to leverage the advantages of both. See [Machine capacity](https://docs.unity.com/game-server-hosting/legacy/machine-capacity.html) to learn more about the differences between the two options.
84+
You can also opt to host your servers with a bare-metal data center, such as Rackspace or Servers.com. Using bare-metal servers comes with its own set of pros and cons. Unity’s Multiplay Hosting uses a combination of bare-metal and cloud servers to leverage the advantages of both. See [Machine capacity](https://docs.unity.com/game-server-hosting/legacy/machine-capacity.html) to learn more about the differences between the two options.
8585
:::
8686

8787
### Managed service provider
8888

89-
A managed service provider is a service that takes your game server build and manages hosting, scaling, and maintaining it in a white-glove environment. You tell the managed service provider how to run your game, and you often have control over scaling, availability, and other key operation points. Examples of managed service providers include [Unity’s Game Server Hosting](https://docs.unity.com/multiplay/), Amazon Web Services’ Gamelift, Microsoft’s Playfab, and Google’s Agones.
89+
A managed service provider is a service that takes your game server build and manages hosting, scaling, and maintaining it in a white-glove environment. You tell the managed service provider how to run your game, and you often have control over scaling, availability, and other key operation points. Examples of managed service providers include [Unity’s Multiplay Hosting](https://docs.unity.com/multiplay/), Amazon Web Services’ Gamelift, Microsoft’s Playfab, and Google’s Agones.
9090

9191
See the following table to learn more about the pros and cons of opting for a managed service provider to host your game.
9292

@@ -102,7 +102,7 @@ See the following table to learn more about the pros and cons of opting for a ma
102102

103103
Your game server usually needs a way to communicate with their hosting provider, to expose essential information, like the number of connected players, available player slots, map information, and server readiness to accept new player connections.
104104

105-
Managed service providers usually provide an SDK you can use to integrate your game. For example, if you use Unity’s Game Server Hosting solution, you can use the [Game Server SDK](https://docs.unity.com/game-server-hosting/sdk/sdk-overview.html).
105+
Managed service providers usually provide an SDK you can use to integrate your game. For example, if you use Unity’s Multiplay Hosting solution, you can use the [Game Server SDK](https://docs.unity.com/game-server-hosting/sdk/sdk-overview.html).
106106

107107
You can also create similar tooling internally if you manage your own infrastructure, such as with an on-premise or cloud-hosted solution.
108108

@@ -114,7 +114,7 @@ Depending on the nature of your multiplayer game, you might also need to conside
114114

115115
The Boss Room sample relies on Unity’s [Lobby service](https://docs.unity.com/lobby/) to advertise hosts for client-hosted games, but you can adapt it for a dedicated-server workflow.
116116

117-
The lobby-based matchmaking in the Boss Room sample is minimal and might result in unfair matches if highly skilled players end up in the same lobby as low-skilled players. You can extend the example implementation with Unity’s Matchmaker service, which integrates with Game Server Hosting to match the right players together and send them to the best possible service. See the [Matchplay sample](https://github.com/Unity-Technologies/com.unity.services.samples.matchplay).
117+
The lobby-based matchmaking in the Boss Room sample is minimal and might result in unfair matches if highly skilled players end up in the same lobby as low-skilled players. You can extend the example implementation with Unity’s Matchmaker service, which integrates with Unity Multiplay Hosting to match the right players together and send them to the best possible service. See the [Matchplay sample](https://github.com/Unity-Technologies/com.unity.services.samples.matchplay).
118118

119119
## Continuous integration (CI)
120120

0 commit comments

Comments
 (0)