Boss Room release thread [Netcode For GameObjects]

We are pleased to announce the release of Boss Room 2.0 and its move from ‘Early Access’ to ‘Released’. Thank you for your continuous support and feedback! With this release, we’re doing a major version bump to reflect all of the recent refactors and architecture modifications to the project since 1.3.1.

What does this mean?
Boss Room is now considered to be stable and in a ‘production ready’ state.

  • We will continue to make updates to dependent packages and supported editor versions. See below for further details about compatibility.
  • We will fix bugs and issues associated with these updates to ensure Boss Room’s smooth running.
  • We will target new features that are critical to its operation and maintaining good practices.
  • We may choose to add more large, non-essential features to Boss Room in future; this is dependent on the Unity multiplayer roadmap.

We will continue to create new multiplayer samples according to the needs of the community and development of Unity technology. If there’s something you’d like to see, let us know on Discord, Github or in the Forum.

Got Feedback about Boss Room? Let us know via our new Feedback Form.

What’s new in this Release?

  • Introduction of a new enemy type: the Vandal Imp. This enemy features a NetworkRigidbody-based Action, whereby it instantiates a Physics-based projectile.

  • A Pickup and Drop action has been added to the Action system. It is actionable once targeting a “Heavy”-tagged NetworkObject. This showcases NetworkObject parenting with a pattern to follow the player’s animation bones once picked up.

  • Project architecture refactor:

  • Action and ActionFX classes have been merged into a single, pooled ScriptableObject-based Action class

  • Easier-to-follow folder structure based on domain-based assemblies

  • Merged GameState bridge classes to cut down unnecessary code verbosity

  • Improved architecture.md and added an index in the project’s readme for referencing important features

  • Several Netcode performance improvements. For example, each player’s NetworkTransform component now sends 23B per update, down from 47B. Unnecessary data was synchronized (ie. the player’s scale and y position).

  • Improved Netcode good practices:

  • Connection management refactored into a simpler state machine. This makes the connection flow easier to follow and maintain.

  • Proper instantiation pattern for in-scene placed NetworkObjects which may be destroyed during a session. The old pattern was producing unkillable zombie imps on late join.

  • Art performance improvements through the use of mesh LODs and mesh asset crunching

See the project’s Architecture overview https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/blob/main/ARCHITECTURE.md for more details.

Installation Guide:

If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2020LTS, we recommend upgrading to 2021 LTS at the earliest opportunity via the Unity Hub.

Full Changelog

Dependencies
Packages

  • “com.unity.netcode.gameobjects”: “1.0.2”,
  • “com.unity.services.authentication”: “2.1.1”,
  • “com.unity.multiplayer.tools”: “1.0.0”,
  • “com.unity.services.lobby”: “1.0.3”,
  • “com.unity.services.relay”: “1.0.3”,
  • “com.veriorpies.parrelsync”: “ParrelSync/ParrelSync at master · VeriorPies/ParrelSync · GitHub”,

Editor version

  • Editor is 2021.3.10f1
5 Likes

We are pleased to announce the release of Boss Room 2.0.1 and its Utilities package version 1.4.1! Thank you for your continuous support and feedback!Got Feedback about Boss Room? Let us know via our Feedback Form.

What’s new in this Release?

Boss Room 2.0.1

  • Updated Boss Room to NGO 1.1.0
  • Now uses managed types for custom INetworkSerializable in NetworkVariables. NetworkGUID is now a class instead of a struct.
  • Cleanup Relay and UTP setup. Flow is now simpler, no need for the RelayUtilities anymore.
  • Reverted a few values in NetworkManager to reflect changes in default values
  • Set connection approval timeout higher, 1 sec is pretty short. If there’s a packet drop, or some hangups on the network, clients would get timed out too easily.
  • Multiple other fixes, see changelog for more details

Utilities package version 1.4.1

  • ClientLoadingScreen now sets raycast blocking to true when the loading screen is visible
  • Deprecated Unity Relay Utilities, it should no longer be needed with NGO 1.1.0’s new API for setting up Relay

Installation Guide.

Compatibility:

Boss Room supports the most recent LTS version of the Unity editor.
If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2020LTS, we recommend upgrading to 2021 LTS at the earliest opportunity via the Unity Hub.

2 Likes

We are pleased to announce a new release of Boss Room! Thank you for your continuous support and feedback!

Got Feedback about Boss Room? Let us know via our Feedback Form.

Boss Room Version 2.0.4

Installation Guide:

New Features:

  • Updating Boss Room to Netcode for GameObjects 1.2.0

  • Removed workaround using custom messages to give reasons when disconnecting players or denying their approval with the DisconnectReason feature added in Netcode.

  • Updating Utilities package dependency to Multiplayer Tools to 1.1.0

  • RNSM now displays statistics using time as the x axis instead of frames.

Compatibility:

Boss Room supports the most recent LTS version of the Unity editor.

If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2020LTS, we recommend upgrading to 2021 LTS at the earliest opportunity via the Unity Hub.

If you experience any issues or would like to share feedback with the development team, you can connect with us either via the Multiplayer Forum, on Discord or contribute to the project directly via Github.

Full Release notes are available at:

1 Like

We are pleased to announce a new release of Boss Room!

Boss Room Version 2.1.0

Installation Guide:

New Features:

  • Updating Boss Room to Netcode for GameObjects v1.4.0

  • Added OnServerStopped event to ConnectionManager and ConnectionState. This allows for the detection of an unexpected shutdown on the server side.

  • Replaced our polling for lobby updates with a subscription to the new Websocket based LobbyEvents. This saves up a significant amount of bandwidth usage to and from the service, since updates are infrequent in this game. Now clients and hosts only use up bandwidth on the Lobby service when it is needed. With polling, we used to send a GET request per client once every 2 seconds. The responses were between ~550 bytes and 900 bytes, so if we suppose an average of 725 bytes and 100 000 concurrent users (CCU), this amounted to around 725B * 30 calls per minute * 100 000 CCU = 2.175 GB per minute. Scaling this to a month would get us 93.96 TB per month. In our case, since the only changes to the lobbies happen when a user connects or disconnects, most of that data was not necessary and can be saved to reduce bandwidth usage. Since the cost of using the Lobby service depends on bandwidth usage, this would also save money on an actual game.

  • Certain structs converted to implement interface INetworkSerializeByMemcpy instead of INetworkSerializable. INetworkSerializeByMemcpy optimizes for performance at the cost of bandwidth usage and flexibility, however it will only work with structs containing value types. For more details see the official doc.

  • Replacing custom object pooling solution in favor of Unity’s ObjectPool

Compatibility:

Boss Room supports the most recent LTS version of the Unity editor.

If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2020LTS, we recommend upgrading to 2021 LTS at the earliest opportunity via the Unity Hub.

If you experience any issues or would like to share feedback with the development team, you can connect with us either via the Multiplayer Forum, on Discord or contribute to the project directly via Github.

Full Release notes are available at:

2 Likes

We are pleased to announce a new release of Boss Room!

Boss Room Version 2.4.0

Installation Guide:

New Features:

  • Updating Boss Room to Netcode for GameObjects v1.7.1
  • Fixed NetworkVariable warnings that would be logged when a player was spawned (#863) For a player, certain NetworkVariable values were previously modified before the player’s NetworkObject was spawned, resulting in warnings. Now, the NetworkVariable itself is instantiated on the server pre-spawn, such that it is instantiated with the new default value, ensuring the new default value is ready to be read on subsequent OnNetworkSpawn methods for said NetworkObject.

Compatibility:

Boss Room supports the most recent LTS version of the Unity editor.

If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2021 LTS, we recommend upgrading to 2022 LTS at the earliest opportunity via the Unity Hub.

If you experience any issues or would like to share feedback with the development team, you can connect with us either via the Multiplayer Forum, on Discord or contribute to the project directly via Github.

Full Release notes are available at:

Got Feedback about Boss Room? Let us know via our Feedback Form.

1 Like

We are pleased to announce a new release of Boss Room and the Utilities package!

Boss Room Version 2.5.0 and Utilities package Version 1.9.0

Installation Guide:

New Features:

  • Upgraded Boss Room to Netcode for GameObjects v1.8.1

  • Upgraded to the newer API for Rpcs, Universal Rpcs

  • ClientConnectedState has been modified to account for server/host now populating DisconnectReason before disconnecting a client before shutting down

  • Upgraded editor version to 2022.3.22f1

  • com.unity.render-pipelines.universal upgraded to v14.0.10

  • ClientPlayerAvatarNetworkAnimator has been created to: instantiate the player model based on a networked GUID, rebind this rig to the player’s Animator, and apply synchronize data to said Animator

  • This change allows for NetworkAnimator’s synchronize step to properly apply its sync data to clients instead of applying an animation state change on OnNetworkSpawn()

  • A side-effect of this change has been that a coroutine that had been awaiting the assignment of NetworkAnimator has since been removed as it is no longer an issue on Netcode for GameObjects (since v1.3.1)

  • Upgraded Utilities package to Netcode for GameObjects v1.8.1

  • Upgraded to the newer API for Rpcs, Universal Rpcs

  • Unity.Multiplayer.Samples.Utilities assembly definition now includes Unity.Collections

Compatibility:

Boss Room supports the most recent LTS version of the Unity editor.

If you choose to use it with previous editor versions, you will experience compatibility issues with some aspects of the project. If you are currently running Boss Room with 2021 LTS, we recommend upgrading to 2022 LTS at the earliest opportunity via the Unity Hub.

If you experience any issues or would like to share feedback with the development team, you can connect with us either via the Multiplayer Forum, on Discord or contribute to the project directly via Github.

Full Release notes are available at: