From bfdd38f0f9b9aa1e740c9f31fdd3cf894a5f8d9b Mon Sep 17 00:00:00 2001 From: LPLafontaineB Date: Wed, 28 Sep 2022 11:41:48 -0400 Subject: [PATCH 1/4] Adding details to changelog entries for PRs 670, 666 and 675 --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fef3942c9..cfdfcbaaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,8 +21,8 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Changed * Updated tools, authentication and relay packages (#690) * Replaced our dependency injection solution with VContainer. (#679) -* NetworkedMessageChannels can now be subscribed to before initiating a connection (#670) -* Refactored connection management into simpler state machine (#666) +* NetworkedMessageChannels can now be subscribed to before initiating a connection (#670) This allows a subscription's lifetime to not be restricted by a connection, so subscribing before a connection is possible, and subscriptions will still work properly if the connection ends and a new one begins. +* Refactored connection management into simpler state machine (#666) This makes the connection flow easier to follow. Each connection state now handles user inputs and Netcode callbacks as they should, removing the need for big switch-cases of if-else statements. These inputs and callbacks also trigger transitions between these states. * Merged GameState bridge classes (the ones that contained no or limited functionality) (#697 #732) This cleans up our sometimes too verbose code split. * Modified the red arrow of the boss charge attack to fade in and out (rather than just being enabled disabled) (#715) * Rearranged the Action system by adding more folders that separate different pieces more clearly (#701) @@ -42,7 +42,7 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Removed * ### Fixed -* Subscribing to a message channel while unsubscribing is pending (#675) +* Subscribing to a message channel while unsubscribing is pending (#675). This issue prevented us from subscribing to a message channel after having unsubscribed to it if no message had been sent between the un-subscription and the new subscription. * Using ```Visible``` instead of ```Enabled``` to make sure RNSM continues updating when off (#702) * Some NetworkBehaviours are disabled instead of being destroyed (#718) - This preserves the index order for NetworkBehaviours between server and clients, resulting in no indexing issue for sending/receiving RPCs. * Scene Bootstrapper: future proofing bootstrap scene so we don't rely on Startup's path. MTT-3707. (#735) From 1bd36ce0d812292bda954542df0602f7bee28bdb Mon Sep 17 00:00:00 2001 From: Sam Bellomo <71790295+SamuelBellomo@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:35:09 -0400 Subject: [PATCH 2/4] Adding details to my changes in the changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17fa36093..890b04e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ Additional documentation and release notes are available at [Multiplayer Documen ## [Unreleased] - yyyy-mm-dd ### Added -* Added TOC and Index of educational concepts to readme (#736) +* Added TOC and Index of educational concepts to readme (#736) Boss Room can be quite intimidating for first time users. This index will hopefully help soften the onboarding. * Added tests for connection management (#692). These are integration tests to validate that the state machine works properly. They use Netcode's NetworkIntegrationTest * Added handling the OnTransportFailure callback (#707). This callback is invoked when a failure happens on the transport's side, for example if the host loses connection to the Relay service. This won't get called when the host is just listening with direct IP, this would need to be handled differently (by pinging an external service like google to test for internet connectivity for example). Boss Room now handles that callback by returning to the Offline state. * Pickup and Drop action added to the Action system. Actionable once targeting a "Heavy"-tagged NetworkObject. (#372) - This shows NetworkObject parenting with a pattern to follow animation bones (the hands when picking up) @@ -18,7 +18,7 @@ Additional documentation and release notes are available at [Multiplayer Documen * Introduced a mechanism for identifying actions by their runtime-generated ActionID, instead of relying on a fragile ActionType enumeration (#705) * NetworkObjectSpawner handles dynamically spawning in-scene placed NetworkObjects (#717) - You can't place a NetworkObject in scene directly and destroy it at runtime. This PR showcases proper handling of NetworkObjects that you'd wish to place inside of scenes, but would still want to destroy at game-time. Examples of these are: Imps, VandalImps, ImpBoss. NetworkObjects such as doors, crystals, door switch, etc. remain the same, statically-placed in scene. * Quality levels settings set up for Desktop [MTT-4450] (#713) -* Added custom RNSM config with graph for RTT instead of single value (#747) +* Added custom RNSM config with graph for RTT instead of single value (#747) Being able to *see* latency bumps and variation is helpful to identify the cause of in-game issues. This also adds clearer headers for each RNSM graphs. * Added Unsubscribe API for the ISubscriber along with refactoring of the codebase to use this API instead of IDisposable handle when there is just one subscription (#612) ### Changed * Updated tools, authentication and relay packages (#690) From 10e7f274cb562d2dc6bd8ca8f01a0b38240bf5b0 Mon Sep 17 00:00:00 2001 From: Sam Bellomo <71790295+SamuelBellomo@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:38:52 -0400 Subject: [PATCH 3/4] Adding missing changelog for hotfix Forgot to do changelog for boss room in previous hotfix, just did a changelog for the package. Fixing this. --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 890b04e5b..0c03e0197 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,7 +32,6 @@ Additional documentation and release notes are available at [Multiplayer Documen * Refactored the Action system so that the action objects themselves are pooled Scriptable Objects (#705) * Configured the NetworkTransform components of every NetworkObject to reduce the bandwidth usage (#716). This prevents the unnecessary synchronization of data that clients do not need, i.e. a character's scale or y position. In the case of a character, it reduced the size of each update from 47B to 23B. * Instead of a NetworkBehaviour that carries a WinState netvar we now pass the win state on the server to the PostGame scene and it then stores that state in the netvar, eliminating the need to preserve a NetworkBehaviour-bearing gameObject across scenes. (#724) -* Bump to NGO 1.0.1 (#720) * Reduced the MaxPacketQueueSize UTP parameter value from 512 to 256 (#728). This reduces the amount of memory used by UTP by around 1 MB. Boss Room does not need a bigger queue size than this because there can only be 7 clients connected to a host and UTP already limits the maximum number of in-flight packets to 32 per connection. * Updated Lobby package to 1.0.3 and reworked our auto-reconnect flow to use the Reconnect feature from the Lobby API (#737). Now, clients do not leave the lobby when they are disconnected, and the host does not remove them from it. They are marked as disconnected by the Relay server and can attempt to reconnect to the lobby directly, until a certain timeout (specified by the Disconnect removal time parameer, set in the dashboard configuration). * Cleanup @@ -53,6 +52,11 @@ Additional documentation and release notes are available at [Multiplayer Documen * Lobby join button not interactable if no join code is provided. (#744) This prevents an ArgumentNullException happening when we try to join a Lobby with an empty join code. * Lobby UI unblocking before it should. (#748) This makes sure that we are not unblocking the UI while we are in the middle of the connection process, to prevent users from starting a second one at the same time. Now the UI stays blocked until the connection either succeeds of fails. +## [1.3.1-pre] - 2022-09-13 + +### Fixed +* Bumped the project to NGO 1.0.2 (#726) + ## [v1.3.0-pre] - 2022-06-23 ### Added From 3198d53bfe043427176d1e961c75b019fa0e83ba Mon Sep 17 00:00:00 2001 From: Sam Bellomo <71790295+SamuelBellomo@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:06:54 -0400 Subject: [PATCH 4/4] adding details to actions changelog --- CHANGELOG.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c03e0197..bf458f35f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,14 +22,13 @@ Additional documentation and release notes are available at [Multiplayer Documen * Added Unsubscribe API for the ISubscriber along with refactoring of the codebase to use this API instead of IDisposable handle when there is just one subscription (#612) ### Changed * Updated tools, authentication and relay packages (#690) -* Replaced our dependency injection solution with VContainer. (#679) +* Replaced our dependency injection solution with VContainer. (#679) This helps us reduce the amount of code we have to maintain. * NetworkedMessageChannels can now be subscribed to before initiating a connection (#670) This allows a subscription's lifetime to not be restricted by a connection, so subscribing before a connection is possible, and subscriptions will still work properly if the connection ends and a new one begins. -* Refactored connection management into simpler state machine (#666) This makes the connection flow easier to follow. Each connection state now handles user inputs and Netcode callbacks as they should, removing the need for big switch-cases of if-else statements. These inputs and callbacks also trigger transitions between these states. +* Refactored connection management into simpler state machine (#666) This makes the connection flow easier to follow and maintain. Each connection state now handles user inputs and Netcode callbacks as they should, removing the need for big switch-cases of if-else statements. These inputs and callbacks also trigger transitions between these states. * Merged GameState bridge classes (the ones that contained no or limited functionality) (#697 #732) This cleans up our sometimes too verbose code split. * Modified the red arrow of the boss charge attack to fade in and out (rather than just being enabled disabled) (#715) * Rearranged the Action system by adding more folders that separate different pieces more clearly (#701) -* Action and ActionFX classes have been merged into a single Scriptable Object-based Action class; all the existing actions have been refactored to follow this new design (#705) -* Refactored the Action system so that the action objects themselves are pooled Scriptable Objects (#705) +* Action and ActionFX classes have been merged into a single pooled Scriptable Object-based Action class; all the existing actions have been refactored to follow this new design (#705) This should make these more readable and consistent following our client/server/shared to domain based assemblies refactor. * Configured the NetworkTransform components of every NetworkObject to reduce the bandwidth usage (#716). This prevents the unnecessary synchronization of data that clients do not need, i.e. a character's scale or y position. In the case of a character, it reduced the size of each update from 47B to 23B. * Instead of a NetworkBehaviour that carries a WinState netvar we now pass the win state on the server to the PostGame scene and it then stores that state in the netvar, eliminating the need to preserve a NetworkBehaviour-bearing gameObject across scenes. (#724) * Reduced the MaxPacketQueueSize UTP parameter value from 512 to 256 (#728). This reduces the amount of memory used by UTP by around 1 MB. Boss Room does not need a bigger queue size than this because there can only be 7 clients connected to a host and UTP already limits the maximum number of in-flight packets to 32 per connection.