From 1630b8daf1429342e4cc443beb028855f714d94d Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Mon, 17 May 2021 18:39:15 -0500 Subject: [PATCH 01/11] add 0.2.0 boss room release notes, updated various issues and links --- docs/learn/listenserverhostarchitecture.md | 4 +- .../multiplayergamearhitectureintroduction.md | 2 +- docusaurus.config.js | 13 +- releases/index.md | 5 +- releases/multiplayer/mlapi-develop.md | 1 + releases/samples/release-0-1-0.md | 4 +- releases/samples/release-0-2-0.md | 123 ++++++++++++++++++ sidebars.js | 4 +- sidebarsReleases.js | 17 ++- .../learn/listenserverhostarchitecture.md | 4 +- .../multiplayergamearhitectureintroduction.md | 5 +- .../version-0.1.0-sidebars.json | 4 +- yarn.lock | 62 ++++----- 13 files changed, 198 insertions(+), 50 deletions(-) create mode 100644 releases/samples/release-0-2-0.md diff --git a/docs/learn/listenserverhostarchitecture.md b/docs/learn/listenserverhostarchitecture.md index 2ca6c749e..64b52ae6e 100644 --- a/docs/learn/listenserverhostarchitecture.md +++ b/docs/learn/listenserverhostarchitecture.md @@ -1,6 +1,8 @@ --- -id: listenserverhostarchitecture +id: listen-server-host-architecture title: Create a game with a listen server / host architecture +sidebar_label: Listen server and host architecture +description: Learn more about creating a game with a listen server and host architecture. --- ## What is a listen server diff --git a/docs/learn/multiplayergamearhitectureintroduction.md b/docs/learn/multiplayergamearhitectureintroduction.md index 531e3a281..9a587a057 100644 --- a/docs/learn/multiplayergamearhitectureintroduction.md +++ b/docs/learn/multiplayergamearhitectureintroduction.md @@ -1,5 +1,5 @@ --- -id: multiplayergamearhitectureintroduction +id: multiplayer-game-arhitecture title: Introduction sidebar_label: Introduction --- diff --git a/docusaurus.config.js b/docusaurus.config.js index ed1208b75..7594b3cab 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -556,9 +556,20 @@ module.exports = { { id: 'GTM-5V25JL6', // GTM Container ID }], + [ + '@docusaurus/plugin-client-redirects', + { + redirects: [ + { + to: '/docs/advanced-topics/messaging-system', + from: '/docs/advanced-topics/messaging-system/about-rpc', + }, + ] + }, + ], 'plugin-image-zoom', 'docusaurus-plugin-sass', '@saucelabs/theme-github-codeblock', 'react-iframe' - ], + ] }; \ No newline at end of file diff --git a/releases/index.md b/releases/index.md index 04c57c0f6..dd88edf48 100644 --- a/releases/index.md +++ b/releases/index.md @@ -28,9 +28,10 @@ For Unity experimental releases: See the following project releases for Boss Room. -| Release | Status | Date | Supported Unity Versions | +| Release | Status | Date | Supported MLAPI | Supported Unity | | -- | -- | -- | -- | -| [v0.1.0](samples/release-0-1-0.md) | Early Access | April 7, 2021 | 2020.3 and later | +| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 20, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3 and later | +| [v0.1.0](samples/release-0-1-0.md) | Early Access | April 7, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3 and later | :::important Boss Room: Small Scale Co-op Sample always requires the latest version of Unity MLAPI. diff --git a/releases/multiplayer/mlapi-develop.md b/releases/multiplayer/mlapi-develop.md index ef5d5a6f4..25a3f65d8 100644 --- a/releases/multiplayer/mlapi-develop.md +++ b/releases/multiplayer/mlapi-develop.md @@ -3,6 +3,7 @@ id: mlapi-develop title: MLAPI In-Development Release Notes description: In-progress release notes for the next release of Unity MLAPI including new features, updates, bug fixes, known issues, and information to help you upgrade. --- +Hi Brian how are you The following in-progress content tracks features, updates, bug fixes, and refactoring for the next release of Unity MLAPI. Specific release information including supported Unity versions, release date, and release version is to be announced. All content and development information is subject to change. diff --git a/releases/samples/release-0-1-0.md b/releases/samples/release-0-1-0.md index 4c7cbe208..071385a93 100644 --- a/releases/samples/release-0-1-0.md +++ b/releases/samples/release-0-1-0.md @@ -65,7 +65,7 @@ v0.1.1 is a hotfix for an Early Access release for Boss Room: Small Scale Co-op The following issues may occur for access and games: * Sometimes when the host leaves the Boss Room, not all clients will return to the Main Menu, but will remain stuck in the Boss Room scene. -* Sometimes after completing a match and the host starts a new match from the Victory or Loss screen, connected players may have no visible interactions to join or select characters. +* Sometimes after completing a match and the host starts a new match from the Victory or Loss screen, connected players may have no visible interactions to join or select characters. * A player may encounter a rare exception when the Tank character uses her Shield Aura ability. This issue may be due to intercepting the Boss charge attack. * If two players in the Character Select **Ready** for the same hero at the same time, the UI will update to *Readied* on both clients, but only one will have actually selected the hero on the Host. This issue blocks Character Select from proceeding. * Any player that plays the game and then returns to the Main Menu may be unable to Start or Join properly again, requiring you to restart the client. @@ -82,6 +82,6 @@ The following issues may occur for access and games: ## Learn more -See [Getting Started with Boss Room](../../learn/getting-started-boss-room.md) to install and get started with Boss Room. +See [Getting Started with Boss Room](/docs/learn/bossroom) to install and get started with Boss Room. To provide feedback and content on documentation, see the links at the bottom of each page. \ No newline at end of file diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md new file mode 100644 index 000000000..ed0cb140d --- /dev/null +++ b/releases/samples/release-0-2-0.md @@ -0,0 +1,123 @@ +--- +id: samples-0-2-0 +title: Boss Room Small Scale Co-op Sample 0.2.0 - 2021-05-18 +sidebar_label: Boss Room 0.2.x +description: Release notes for Boss Room Small Scale Co-op Sample v0.2.0, the first release of the Boss Room sample project for Unity MLAPI. +--- + +The Boss Room: Small Scale Co-op Sample v0.2.0 release provides new sample code, assets, and features for the Boss Room cooperative game sample project. THis project provides a learning experience for Unity MLAPI. + +| Product | Version | Status | Release Date | Supported Unity Versions | +| -- | -- | -- | -- | -- | +| Boss Room: Small Scale Co-op Sample | 0.2.0 | Early Access | May 18, 2021 | 2020.3 and later | + +:::important +Boss Room: Small Scale Co-op Sample always requires the latest version of Unity MLAPI. See [Unity MLAPI](../index.md) for more information on those features, fixes, and known issues. +::: + +## [0.2.0] - 2021-05-18 + +## New features + +This release includes the following new features and additions + +* Updated the user interface including the following: + + * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message " Connection to Host failed" loads. + * Added an option to leave the lobby after joining it. You no longer have to restart the game to leave the lobby. + * Added option to cancel the game after clicking **Ready**. + * Added a gear icon for accessing and modifying app settings. + * The UI now tracks and displays player has arrived, number of connected players in the lobby, and player status. + +* Added F/X and animation assets for the game including: + + * Audio files for boss sound effects + * Ramp-up animation for hero movement and actions + * Visual effects and particles for Tank charge skill + * Art assets to wave spawner, including animations for ReceiveDamage, Broken (died), and Revive + * Game music + +* Added audiomixer to Boss Room for separate audio channels and a master mixer. + +* Updated and added various hero abilities: + + * Added a cooldown to Archer's PowerShot. + * Used generic actions to implement Rogue's Dagger skill. + * Used generic actions to implement Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. + * Used generic actions to implement Rogue's Dash skill. + * Properly display Heal abilities when targeting a fallen ally character. + * Character attack actions properly support Hold to charge options. + +* To show how UI elements and game objects can be networked, added networked functionality using `INetworkSerializable` for UI elements on the Character Selection screen including networked mouse cursors. +* Added a Photon filter for host room names not to allow profanity, racial slurs, and additionsl socially acceptable words. +* Boss Room now uses the [UnityToonShader](https://github.com/IronWarrior/UnityToonShader) for rendering the 3D surfaces to emulate 2D, flat surfaces. +* Added disconnection error message to load when a player or host disconnects due to limited or no network connectivity. Client logic was also updated to detect Host disconnection scenarios, such as losting connectivity. +* Balanced hero and enemy stats, spawners, trigger areas, and enemy detetction areas. +* Added healthbars to display when damaged and properly track imp health locally and across clients. + +## Changes + +This release includes the following updates: + +* Updated the Photon Setup Guide, indicating you need only only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. +* Removed Singleton usage, allowing multiple instances of MLAPI networking stack to start up in the same process. +* Removed a duplicated `GameObject` from the MainMenu scene. +* Reviewed and revised code to better following quality standards. +* Updated the mage character base attack to better support the new enqueuing ability and handle game behaviors. Updates include: + + * Actions being non-blocking allowing other actions while a mage-bolt is in flight + * Sending actions in `ActionSequence` groups to better handle actions when players spam click enemies + * Timing issues with animations, actions, and character location + * Bolt animation for legitimate hits + * Updated attacks not to knock rogues out of stealth + +* Updated character attacks to not cause friendly-fire damage between players. +* Updated and resolved issues with 3D models including polygon count of coins and chest, artifacts where level graphics are stitched together or overlapping characters, and asset map consistency used by objects (color + normal map + emission). +* Merged `ConnectStatus` and `DisconnectReason` into a single `ConnectStatus`. +* Updated `ServerGameNetPortal` to properly handle the following: + + * Per-connection state on client disconnect + * Additional errors including a full server and player ID (GUID) already playing + * Player connection if they experience a game-level connection failure + +* Updated code to allow hosts to specify a port to listen to, removing the hard-coded port. +* Updated the Boss Room UI to only show skill and ability buttons for character abilities. Empty buttons no longer load for characters. +* Added a call to warm up shaders when the project starts to ensure animations issues do not occur. +* Removed collision from objects that have a Broken (dead) state. +* Implemented a better cooldown solution and calculations for tracking and managing character, imp, and boss actions. +* Fixed the ignored health amount (HP parameter) for revived characters. The correct value correctly sets the revived character to a lower amount than maximum. + +## Fixes + +This release includes the following issue fixes: + +* Fixed an issue where any player that plays the game and then returns to the Main Menu may be unable to Start or Join properly again, requiring you to restart the client. +* Updates and refinements in Boss Room resolved an issue that occurred in some degraded network conditions that caused a replicated entity on a client to vanish from that client, creating the effect of being assailed by an invisible enemy. +* Fixed displayed graphical affects for casting and blocking a Bolt to correctly match the caster and target, and properly stops animations for cancelled actions across clients. +* Fixed a rare exception when the Tank character uses her Shield Aura ability to intercept the Boss charge attack. +* Fixed an issue returning all clients to the Main Menu when the host leaves the Boss Room. +* Green quads no longer show on impact when the Archer arrow strikes enemies. +* Fixed issue to correctly allow one player to receive a character when two players in the Character Select click **Ready** for the same hero at the same time. Character Select is no longer blocked. +* Fixed an issue with boss collisions with a Pillar correctly applying a stun effect and shattering the pillar when using the Trample attack. +* Fixed the lobby welcome messages to correctly list the player names, including a previous issues for P1 and P2. +* On Windows, investigated and fixed issues with visible effects for character actions including mage freeze attack, rogue dash +* On Wizards, fixed issue with imp spawners not respawning new imps after exploring the room. +* Fixed an issue where the door state does not reflect the existing state when players connect late to a game, for example if other players open the door and a player joins late the door displays as closed. +* Removed a previous work-around for character selections when host replays a completed game. The issue was resolved, allowing players to see character selections during replay. +* Fixed a Null reference for `RoomNameBox` that potentially caused a "NullReferenceExceltion: Object reference not set to an instance of an object". +* Fixed collision wall settings, fixing an issues where the boss knock-back ability sent players through walls. +* Resolved an issue where any players leaving the lobby sent all players to the lobby. +* Fixed the smoke animation for destroyed imps. + +## Known issues + +The following issues may occur for access and games: + +* An MLAPI soft sync error on cleanup between scene transitions may break the game, for example imps do not spawn and pots are intangible. +* Sometimes after completing a match and the host starts a new match from the Victory or Loss screen, connected players may have no visible interactions to join or select characters. A work-around is implemented to not block entry into the game. + +## Learn more + +See [Getting Started with Boss Room](/docs/learn/bossroom) to install and get started with Boss Room. + +To provide feedback and content on documentation, see the links at the bottom of each page. \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 5ca1ba363..a4c3987d0 100644 --- a/sidebars.js +++ b/sidebars.js @@ -315,11 +315,11 @@ module.exports = { "items": [ { "type": "doc", - "id": "learn/multiplayergamearhitectureintroduction" + "id": "learn/multiplayer-game-arhitecture" }, { "type": "doc", - "id": "learn/listenserverhostarchitecture" + "id": "learn/listen-server-host-architecture" }, ] }, diff --git a/sidebarsReleases.js b/sidebarsReleases.js index d14839236..52b75e5e3 100644 --- a/sidebarsReleases.js +++ b/sidebarsReleases.js @@ -19,11 +19,20 @@ module.exports = { }, ] }, - { - type: 'doc', - id: 'samples/samples-0-1-0', - label: 'Boss Room Small Scale Co-op Sample 0.1.0 - 2021-04-07', + "collapsed": true, + "type": "category", + "label": "Boss Room Samples", + "items": [ + { + type: 'doc', + id: 'samples/samples-0-2-0', + }, + { + type: 'doc', + id: 'samples/samples-0-1-0', + }, + ] }, { type: 'doc', diff --git a/versioned_docs/version-0.1.0/learn/listenserverhostarchitecture.md b/versioned_docs/version-0.1.0/learn/listenserverhostarchitecture.md index 2ca6c749e..64b52ae6e 100644 --- a/versioned_docs/version-0.1.0/learn/listenserverhostarchitecture.md +++ b/versioned_docs/version-0.1.0/learn/listenserverhostarchitecture.md @@ -1,6 +1,8 @@ --- -id: listenserverhostarchitecture +id: listen-server-host-architecture title: Create a game with a listen server / host architecture +sidebar_label: Listen server and host architecture +description: Learn more about creating a game with a listen server and host architecture. --- ## What is a listen server diff --git a/versioned_docs/version-0.1.0/learn/multiplayergamearhitectureintroduction.md b/versioned_docs/version-0.1.0/learn/multiplayergamearhitectureintroduction.md index 531e3a281..e0a54b779 100644 --- a/versioned_docs/version-0.1.0/learn/multiplayergamearhitectureintroduction.md +++ b/versioned_docs/version-0.1.0/learn/multiplayergamearhitectureintroduction.md @@ -1,7 +1,6 @@ --- -id: multiplayergamearhitectureintroduction -title: Introduction -sidebar_label: Introduction +id: multiplayer-game-arhitecture +title: Architecture Introduction --- There are many different architectures for creating multiplayer games. Your game can run on diff --git a/versioned_sidebars/version-0.1.0-sidebars.json b/versioned_sidebars/version-0.1.0-sidebars.json index 89be4bc4f..fb8886760 100644 --- a/versioned_sidebars/version-0.1.0-sidebars.json +++ b/versioned_sidebars/version-0.1.0-sidebars.json @@ -306,11 +306,11 @@ "items": [ { "type": "doc", - "id": "version-0.1.0/learn/multiplayergamearhitectureintroduction" + "id": "version-0.1.0/learn/multiplayer-game-arhitecture" }, { "type": "doc", - "id": "version-0.1.0/learn/listenserverhostarchitecture" + "id": "version-0.1.0/learn/listen-server-host-architecture" } ] }, diff --git a/yarn.lock b/yarn.lock index dd6e5ff70..3a614e77a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1981,9 +1981,9 @@ integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*": - version "15.0.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.3.tgz#ee09fcaac513576474c327da5818d421b98db88a" - integrity sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ== + version "15.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" + integrity sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ== "@types/node@^14.14.28": version "14.14.45" @@ -4492,9 +4492,9 @@ detab@2.0.4: repeat-string "^1.5.4" detect-node@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" - integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== detect-port-alt@1.1.6: version "1.1.6" @@ -4588,12 +4588,12 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== dependencies: domelementtype "^2.0.1" - domhandler "^4.0.0" + domhandler "^4.2.0" entities "^2.0.0" dom-serializer@~0.1.0: @@ -4699,9 +4699,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.723: - version "1.3.727" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf" - integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg== + version "1.3.728" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.728.tgz#dbedd6373f595ae10a13d146b66bece4c1afa5bd" + integrity sha512-SHv4ziXruBpb1Nz4aTuqEHBYi/9GNCJMYIJgDEXrp/2V01nFXMNFUTli5Z85f5ivSkioLilQatqBYFB44wNJrA== elliptic@^6.5.3: version "6.5.4" @@ -5294,9 +5294,9 @@ forwarded@~0.1.2: integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fraction.js@^4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" - integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.0.tgz#229ec1cedc8c3c7e5d2d20688ba64f0a43af5830" + integrity sha512-o9lSKpK0TDqDwTL24Hxqi6I99s942l6TYkfl6WvGWgLOIFz/YonSGKfiSeMadoiNvTfqnfOa9mjb5SGVbBK9/w== fragment-cache@^0.2.1: version "0.2.1" @@ -7428,9 +7428,9 @@ node-libs-browser@^2.2.1: vm-browserify "^1.0.1" node-releases@^1.1.61, node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== normalize-path@^2.1.1: version "2.1.1" @@ -7642,9 +7642,9 @@ opn@^5.5.0: is-wsl "^1.1.0" optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + version "5.0.6" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e" + integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" @@ -8277,9 +8277,9 @@ postcss-lab-function@^2.0.1: postcss-values-parser "^2.0.0" postcss-loader@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.2.0.tgz#f6993ea3e0f46600fb3ee49bbd010448123a7db4" - integrity sha512-mqgScxHqbiz1yxbnNcPdKYo/6aVt+XExURmEbQlviFVWogDbM4AJ0A/B+ZBpYsJrTRxKw7HyRazg9x0Q9SWwLA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" + integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" @@ -8288,9 +8288,9 @@ postcss-loader@^4.1.0: semver "^7.3.4" postcss-loader@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.2.0.tgz#ccd6668a778902d653602289c765a8bc481986dc" - integrity sha512-uSuCkENFeUaOYsKrXm0eNNgVIxc71z8RcckLMbVw473rGojFnrUeqEz6zBgXsH2q1EIzXnO/4pEz9RhALjlITA== + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.3.0.tgz#1657f869e48d4fdb018a40771c235e499ee26244" + integrity sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" @@ -11206,9 +11206,9 @@ web-namespaces@^1.0.0, web-namespaces@^1.1.2: integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== webpack-bundle-analyzer@^4.4.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz#c71fb2eaffc10a4754d7303b224adb2342069da1" - integrity sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw== + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" From ea789c7c09131e8dbcb8e95083a9aa7c2f251a69 Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Mon, 17 May 2021 18:51:16 -0500 Subject: [PATCH 02/11] animation --- releases/samples/release-0-2-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index ed0cb140d..a5b26d688 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -107,7 +107,7 @@ This release includes the following issue fixes: * Fixed a Null reference for `RoomNameBox` that potentially caused a "NullReferenceExceltion: Object reference not set to an instance of an object". * Fixed collision wall settings, fixing an issues where the boss knock-back ability sent players through walls. * Resolved an issue where any players leaving the lobby sent all players to the lobby. -* Fixed the smoke animation for destroyed imps. +* Fixed animations for enemies including the smoke animation for destroyed imps and the boss helmet when crying. ## Known issues From 32a743f4a237a3e73e6c3ef7697d5151a93b9c0c Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Tue, 18 May 2021 08:10:00 -0500 Subject: [PATCH 03/11] updated per review --- releases/samples/release-0-2-0.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index a5b26d688..65abbaa29 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -59,7 +59,7 @@ This release includes the following new features and additions This release includes the following updates: -* Updated the Photon Setup Guide, indicating you need only only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. +* Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. * Removed Singleton usage, allowing multiple instances of MLAPI networking stack to start up in the same process. * Removed a duplicated `GameObject` from the MainMenu scene. * Reviewed and revised code to better following quality standards. @@ -80,8 +80,15 @@ This release includes the following updates: * Additional errors including a full server and player ID (GUID) already playing * Player connection if they experience a game-level connection failure -* Updated code to allow hosts to specify a port to listen to, removing the hard-coded port. -* Updated the Boss Room UI to only show skill and ability buttons for character abilities. Empty buttons no longer load for characters. +* Updated code to allow hosts to specify a port to listen to,removing the hard-coded port. +* Refactored Action Bar code including the following: + + * Removed the `ButtonID` from `UIHudButton` + * Removed hard-coded values from `HeroActionBar` + * Removed switch statements + * Completed minor code cleanup + * Verify and only show skill and ability buttons for character abilities. Empty buttons no longer load for characters. + * Added a call to warm up shaders when the project starts to ensure animations issues do not occur. * Removed collision from objects that have a Broken (dead) state. * Implemented a better cooldown solution and calculations for tracking and managing character, imp, and boss actions. @@ -104,7 +111,6 @@ This release includes the following issue fixes: * On Wizards, fixed issue with imp spawners not respawning new imps after exploring the room. * Fixed an issue where the door state does not reflect the existing state when players connect late to a game, for example if other players open the door and a player joins late the door displays as closed. * Removed a previous work-around for character selections when host replays a completed game. The issue was resolved, allowing players to see character selections during replay. -* Fixed a Null reference for `RoomNameBox` that potentially caused a "NullReferenceExceltion: Object reference not set to an instance of an object". * Fixed collision wall settings, fixing an issues where the boss knock-back ability sent players through walls. * Resolved an issue where any players leaving the lobby sent all players to the lobby. * Fixed animations for enemies including the smoke animation for destroyed imps and the boss helmet when crying. From de57942e7979b655bbced6c921dcce94f914c8da Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Tue, 18 May 2021 10:44:29 -0500 Subject: [PATCH 04/11] updates per revisions --- releases/index.md | 4 ++-- releases/samples/release-0-1-0.md | 2 +- releases/samples/release-0-2-0.md | 23 +++++++++++++++-------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/releases/index.md b/releases/index.md index dd88edf48..7c3edd37c 100644 --- a/releases/index.md +++ b/releases/index.md @@ -30,8 +30,8 @@ See the following project releases for Boss Room. | Release | Status | Date | Supported MLAPI | Supported Unity | | -- | -- | -- | -- | -| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 20, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3 and later | -| [v0.1.0](samples/release-0-1-0.md) | Early Access | April 7, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3 and later | +| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 20, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | v2020.3.8f1 LTS | +| [v0.1.0](samples/release-0-1-0.md) | Early Access | April 7, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3.0f1 LTS | :::important Boss Room: Small Scale Co-op Sample always requires the latest version of Unity MLAPI. diff --git a/releases/samples/release-0-1-0.md b/releases/samples/release-0-1-0.md index 071385a93..eafdc2508 100644 --- a/releases/samples/release-0-1-0.md +++ b/releases/samples/release-0-1-0.md @@ -9,7 +9,7 @@ The Boss Room: Small Scale Co-op Sample v0.1.0 release provides new sample code, | Product | Version | Status | Release Date | Supported Unity Versions | | -- | -- | -- | -- | -- | -| Boss Room: Small Scale Co-op Sample | 0.1.0 | Early Access | April 7, 2021 | 2020.3 and later | +| Boss Room: Small Scale Co-op Sample | 0.1.0 | Early Access | April 7, 2021 | 2020.3.0f1 | :::important Boss Room: Small Scale Co-op Sample always requires the latest version of Unity MLAPI. See [Unity MLAPI](../index.md) for more information on those features, fixes, and known issues. diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index 65abbaa29..8556b1b38 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -9,7 +9,7 @@ The Boss Room: Small Scale Co-op Sample v0.2.0 release provides new sample code, | Product | Version | Status | Release Date | Supported Unity Versions | | -- | -- | -- | -- | -- | -| Boss Room: Small Scale Co-op Sample | 0.2.0 | Early Access | May 18, 2021 | 2020.3 and later | +| Boss Room: Small Scale Co-op Sample | 0.2.0 | Early Access | May 18, 2021 | v2020.3.8f1 LTS | :::important Boss Room: Small Scale Co-op Sample always requires the latest version of Unity MLAPI. See [Unity MLAPI](../index.md) for more information on those features, fixes, and known issues. @@ -21,9 +21,16 @@ Boss Room: Small Scale Co-op Sample always requires the latest version of Unity This release includes the following new features and additions +* Introduced static scene `NetworkObject`s to Boss Room including the following updates: + + * Added two separator `GameObject`s for scene readability: runtime `NetworkObject`s and `NetworkObject`s already placed in the scene. + * Added a custom editor for GameEvents to fire in the editor (greatly enhances testing). + * The `LifeState` NetworkVariable was moved from `NetworkCharacterState` into its own component, `NetworkLifeState`. + * Cleaned up and removed old spawn prefab collections and spawner scripts (NetSpawnPoint). + * Updated the user interface including the following: - * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message " Connection to Host failed" loads. + * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message "Connection to Host failed" loads. * Added an option to leave the lobby after joining it. You no longer have to restart the game to leave the lobby. * Added option to cancel the game after clicking **Ready**. * Added a gear icon for accessing and modifying app settings. @@ -48,8 +55,8 @@ This release includes the following new features and additions * Properly display Heal abilities when targeting a fallen ally character. * Character attack actions properly support Hold to charge options. -* To show how UI elements and game objects can be networked, added networked functionality using `INetworkSerializable` for UI elements on the Character Selection screen including networked mouse cursors. -* Added a Photon filter for host room names not to allow profanity, racial slurs, and additionsl socially acceptable words. +* To show how UI elements and game objects can be networked, added networked functionality using `INetworkSerializable` in the `CharSelect` screen to network player's selected character on the Character Selection screen. +* Added a Photon filter to remove any invisible characters introduced by Zoom when copy-pasting room names. * Boss Room now uses the [UnityToonShader](https://github.com/IronWarrior/UnityToonShader) for rendering the 3D surfaces to emulate 2D, flat surfaces. * Added disconnection error message to load when a player or host disconnects due to limited or no network connectivity. Client logic was also updated to detect Host disconnection scenarios, such as losting connectivity. * Balanced hero and enemy stats, spawners, trigger areas, and enemy detetction areas. @@ -59,14 +66,13 @@ This release includes the following new features and additions This release includes the following updates: -* Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. -* Removed Singleton usage, allowing multiple instances of MLAPI networking stack to start up in the same process. +* Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. * Removed a duplicated `GameObject` from the MainMenu scene. * Reviewed and revised code to better following quality standards. * Updated the mage character base attack to better support the new enqueuing ability and handle game behaviors. Updates include: - * Actions being non-blocking allowing other actions while a mage-bolt is in flight - * Sending actions in `ActionSequence` groups to better handle actions when players spam click enemies + * Actions being non-blocking now allow other actions while a mage-bolt is in flight + * Actions send in `ActionSequence` groups to better handle actions when players spam click enemies * Timing issues with animations, actions, and character location * Bolt animation for legitimate hits * Updated attacks not to knock rogues out of stealth @@ -120,6 +126,7 @@ This release includes the following issue fixes: The following issues may occur for access and games: * An MLAPI soft sync error on cleanup between scene transitions may break the game, for example imps do not spawn and pots are intangible. +* The game can be initiated while a second player is connecting to the host in `CharSelect`. Players may join without selected characters spawning and in an unresponsive state. * Sometimes after completing a match and the host starts a new match from the Victory or Loss screen, connected players may have no visible interactions to join or select characters. A work-around is implemented to not block entry into the game. ## Learn more From fb86cd38b2287088a325018b13c3f8679546e9a9 Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Tue, 18 May 2021 12:49:31 -0500 Subject: [PATCH 05/11] updates per review --- releases/index.md | 2 +- releases/samples/release-0-2-0.md | 31 +++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/releases/index.md b/releases/index.md index 7c3edd37c..7bac4eba2 100644 --- a/releases/index.md +++ b/releases/index.md @@ -30,7 +30,7 @@ See the following project releases for Boss Room. | Release | Status | Date | Supported MLAPI | Supported Unity | | -- | -- | -- | -- | -| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 20, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | v2020.3.8f1 LTS | +| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 18, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | v2020.3.8f1 LTS | | [v0.1.0](samples/release-0-1-0.md) | Early Access | April 7, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3.0f1 LTS | :::important diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index 8556b1b38..f95ea1a23 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -24,10 +24,12 @@ This release includes the following new features and additions * Introduced static scene `NetworkObject`s to Boss Room including the following updates: * Added two separator `GameObject`s for scene readability: runtime `NetworkObject`s and `NetworkObject`s already placed in the scene. + * Added `GameEvent` (ScriptableObject) and `GameEventListener` (MonoBehaviour) to encapsulate events inside assets, located in the `ServerBossRoomState` prefab which now has a `GameEventListener` component. The event associated to this listener is `BossDefeated`, which the Boss raises when the `LifeState` is Dead in the `RaiseEventOnLifeChange` component. This feature can be expanded for other events, such as characters deaths. * Added a custom editor for GameEvents to fire in the editor (greatly enhances testing). * The `LifeState` NetworkVariable was moved from `NetworkCharacterState` into its own component, `NetworkLifeState`. * Cleaned up and removed old spawn prefab collections and spawner scripts (NetSpawnPoint). +* * Updated the user interface including the following: * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message "Connection to Host failed" loads. @@ -49,9 +51,8 @@ This release includes the following new features and additions * Updated and added various hero abilities: * Added a cooldown to Archer's PowerShot. - * Used generic actions to implement Rogue's Dagger skill. - * Used generic actions to implement Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. - * Used generic actions to implement Rogue's Dash skill. + * Added the Rogue's Dagger and Dash skills. + * Added the Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. * Properly display Heal abilities when targeting a fallen ally character. * Character attack actions properly support Hold to charge options. @@ -66,6 +67,16 @@ This release includes the following new features and additions This release includes the following updates: +* Refactored and updated Boss Room code and architecture for increased performance and better resource management: + + * Disabled GPU Skinning to optimize GPU usage and FPS. + * Lowered quality of ambient occlusion from high to medium. + * Switched SMAA High to FXAA (fast mode) reducing GPU cost. + * Modified GPU Instancing on imps, heroes, and the boss to significantly reduce the number of draw calls. + * Turned off Cast Shadows on Imp and Imp Boss. + * Disabled mesh colliders of lava, which is more decorative than interactive. + * Removed the S_SimpleDissolve shader which consumed most import time. + * Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. * Removed a duplicated `GameObject` from the MainMenu scene. * Reviewed and revised code to better following quality standards. @@ -89,11 +100,11 @@ This release includes the following updates: * Updated code to allow hosts to specify a port to listen to,removing the hard-coded port. * Refactored Action Bar code including the following: - * Removed the `ButtonID` from `UIHudButton` - * Removed hard-coded values from `HeroActionBar` - * Removed switch statements - * Completed minor code cleanup - * Verify and only show skill and ability buttons for character abilities. Empty buttons no longer load for characters. + * Removed the `ButtonID` from `UIHudButton`. + * Removed hard-coded values from `HeroActionBar`. + * Removed switch statements. + * Completed minor code cleanup. + * Added verification to only show skill and ability buttons for available character abilities. Empty buttons no longer load for characters. * Added a call to warm up shaders when the project starts to ensure animations issues do not occur. * Removed collision from objects that have a Broken (dead) state. @@ -113,8 +124,8 @@ This release includes the following issue fixes: * Fixed issue to correctly allow one player to receive a character when two players in the Character Select click **Ready** for the same hero at the same time. Character Select is no longer blocked. * Fixed an issue with boss collisions with a Pillar correctly applying a stun effect and shattering the pillar when using the Trample attack. * Fixed the lobby welcome messages to correctly list the player names, including a previous issues for P1 and P2. -* On Windows, investigated and fixed issues with visible effects for character actions including mage freeze attack, rogue dash -* On Wizards, fixed issue with imp spawners not respawning new imps after exploring the room. +* On Windows, investigated and fixed issues with visible effects for character actions including mage freeze attack. +* On Windows, fixed issue with imp spawners not respawning new imps after exploring the room. * Fixed an issue where the door state does not reflect the existing state when players connect late to a game, for example if other players open the door and a player joins late the door displays as closed. * Removed a previous work-around for character selections when host replays a completed game. The issue was resolved, allowing players to see character selections during replay. * Fixed collision wall settings, fixing an issues where the boss knock-back ability sent players through walls. From ee1468388dc5567aeb75809c440b7572b540f57d Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Tue, 18 May 2021 14:25:40 -0500 Subject: [PATCH 06/11] revised per reviews --- releases/samples/release-0-2-0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index f95ea1a23..643dc3392 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -24,7 +24,7 @@ This release includes the following new features and additions * Introduced static scene `NetworkObject`s to Boss Room including the following updates: * Added two separator `GameObject`s for scene readability: runtime `NetworkObject`s and `NetworkObject`s already placed in the scene. - * Added `GameEvent` (ScriptableObject) and `GameEventListener` (MonoBehaviour) to encapsulate events inside assets, located in the `ServerBossRoomState` prefab which now has a `GameEventListener` component. The event associated to this listener is `BossDefeated`, which the Boss raises when the `LifeState` is Dead in the `RaiseEventOnLifeChange` component. This feature can be expanded for other events, such as characters deaths. + * Added `GameEvent` (ScriptableObject) and `GameEventListener` (MonoBehaviour) to encapsulate events inside assets, located in the `ServerBossRoomState` prefab which now has a `GameEventListener` component. The event associated to this listener is `BossDefeated`, which the Boss raises when the `LifeState` is Dead in the `RaiseEventOnLifeChange` component. * Added a custom editor for GameEvents to fire in the editor (greatly enhances testing). * The `LifeState` NetworkVariable was moved from `NetworkCharacterState` into its own component, `NetworkLifeState`. * Cleaned up and removed old spawn prefab collections and spawner scripts (NetSpawnPoint). @@ -67,7 +67,7 @@ This release includes the following new features and additions This release includes the following updates: -* Refactored and updated Boss Room code and architecture for increased performance and better resource management: +* Updated Boss Room per asset and project settings for increased performance and better resource management: * Disabled GPU Skinning to optimize GPU usage and FPS. * Lowered quality of ambient occlusion from high to medium. @@ -75,7 +75,7 @@ This release includes the following updates: * Modified GPU Instancing on imps, heroes, and the boss to significantly reduce the number of draw calls. * Turned off Cast Shadows on Imp and Imp Boss. * Disabled mesh colliders of lava, which is more decorative than interactive. - * Removed the S_SimpleDissolve shader which consumed most import time. + * Refactored the S_SimpleDissolve shader which consumed most import time. * Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. * Removed a duplicated `GameObject` from the MainMenu scene. From 346bcebd1d9991b2ad932a7461e2207e57136547 Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Wed, 19 May 2021 09:05:55 -0500 Subject: [PATCH 07/11] updated per review and ticket updates --- releases/index.md | 2 +- releases/samples/release-0-2-0.md | 23 ++++++++++--------- .../version-0.8.0/install.md | 2 +- .../version-0.9.0/install.md | 3 +++ 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/releases/index.md b/releases/index.md index 7bac4eba2..a1e415b65 100644 --- a/releases/index.md +++ b/releases/index.md @@ -30,7 +30,7 @@ See the following project releases for Boss Room. | Release | Status | Date | Supported MLAPI | Supported Unity | | -- | -- | -- | -- | -| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 18, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | v2020.3.8f1 LTS | +| [v0.2.0](samples/release-0-2-0.md) | Early Access | May 19, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | v2020.3.8f1 LTS | | [v0.1.0](samples/release-0-1-0.md) | Early Access | April 7, 2021 | [0.1.0](multiplayer/release-0-1-0.md) | 2020.3.0f1 LTS | :::important diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index 643dc3392..0302fa79b 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -1,6 +1,6 @@ --- id: samples-0-2-0 -title: Boss Room Small Scale Co-op Sample 0.2.0 - 2021-05-18 +title: Boss Room Small Scale Co-op Sample 0.2.0 - 2021-05-19 sidebar_label: Boss Room 0.2.x description: Release notes for Boss Room Small Scale Co-op Sample v0.2.0, the first release of the Boss Room sample project for Unity MLAPI. --- @@ -23,13 +23,12 @@ This release includes the following new features and additions * Introduced static scene `NetworkObject`s to Boss Room including the following updates: + * Implemented a `ScriptableObject` based event system to encapsulate events inside assets. These objects include a `GameEvent` (ScriptableObject) and `GameEventListener` (MonoBehaviour) to encapsulate events inside assets, located in the `ServerBossRoomState` prefab which now has a `GameEventListener` component. The event associated to this listener is `BossDefeated`, which the Boss raises when the `LifeState` is Dead in the `RaiseEventOnLifeChange` component. * Added two separator `GameObject`s for scene readability: runtime `NetworkObject`s and `NetworkObject`s already placed in the scene. - * Added `GameEvent` (ScriptableObject) and `GameEventListener` (MonoBehaviour) to encapsulate events inside assets, located in the `ServerBossRoomState` prefab which now has a `GameEventListener` component. The event associated to this listener is `BossDefeated`, which the Boss raises when the `LifeState` is Dead in the `RaiseEventOnLifeChange` component. * Added a custom editor for GameEvents to fire in the editor (greatly enhances testing). - * The `LifeState` NetworkVariable was moved from `NetworkCharacterState` into its own component, `NetworkLifeState`. - * Cleaned up and removed old spawn prefab collections and spawner scripts (NetSpawnPoint). + * The `LifeState` `NetworkVariable` was moved from `NetworkCharacterState` into its own component, `NetworkLifeState`. + * Cleaned up and removed old spawn prefab collections and spawner scripts (`NetSpawnPoint`). -* * Updated the user interface including the following: * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message "Connection to Host failed" loads. @@ -50,14 +49,13 @@ This release includes the following new features and additions * Updated and added various hero abilities: - * Added a cooldown to Archer's PowerShot. - * Added the Rogue's Dagger and Dash skills. - * Added the Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. + * Added new Hero abilities including Archer’s PowerShot and Rogue's Dagger and Dash skills. + * Updated the Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. * Properly display Heal abilities when targeting a fallen ally character. * Character attack actions properly support Hold to charge options. * To show how UI elements and game objects can be networked, added networked functionality using `INetworkSerializable` in the `CharSelect` screen to network player's selected character on the Character Selection screen. -* Added a Photon filter to remove any invisible characters introduced by Zoom when copy-pasting room names. +* Added a Photon filter to remove any invisible characters introduced by Zoom when copy-pasting room names, IP addresses, or ports. * Boss Room now uses the [UnityToonShader](https://github.com/IronWarrior/UnityToonShader) for rendering the 3D surfaces to emulate 2D, flat surfaces. * Added disconnection error message to load when a player or host disconnects due to limited or no network connectivity. Client logic was also updated to detect Host disconnection scenarios, such as losting connectivity. * Balanced hero and enemy stats, spawners, trigger areas, and enemy detetction areas. @@ -80,7 +78,7 @@ This release includes the following updates: * Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. * Removed a duplicated `GameObject` from the MainMenu scene. * Reviewed and revised code to better following quality standards. -* Updated the mage character base attack to better support the new enqueuing ability and handle game behaviors. Updates include: +* Updated the Mage character base attack to better support the new enqueuing ability and handle game behaviors. Updates include: * Actions being non-blocking now allow other actions while a mage-bolt is in flight * Actions send in `ActionSequence` groups to better handle actions when players spam click enemies @@ -109,7 +107,7 @@ This release includes the following updates: * Added a call to warm up shaders when the project starts to ensure animations issues do not occur. * Removed collision from objects that have a Broken (dead) state. * Implemented a better cooldown solution and calculations for tracking and managing character, imp, and boss actions. -* Fixed the ignored health amount (HP parameter) for revived characters. The correct value correctly sets the revived character to a lower amount than maximum. +* Updated event registration and unregistration code to be symmetrical across the project. ## Fixes @@ -130,7 +128,9 @@ This release includes the following issue fixes: * Removed a previous work-around for character selections when host replays a completed game. The issue was resolved, allowing players to see character selections during replay. * Fixed collision wall settings, fixing an issues where the boss knock-back ability sent players through walls. * Resolved an issue where any players leaving the lobby sent all players to the lobby. +* Fixed the ignored health amount (HP parameter) for revived characters. The correct value correctly sets the revived character to a lower amount than maximum. * Fixed animations for enemies including the smoke animation for destroyed imps and the boss helmet when crying. +* Fixed loading of the game skybox before the menu loaded. ## Known issues @@ -139,6 +139,7 @@ The following issues may occur for access and games: * An MLAPI soft sync error on cleanup between scene transitions may break the game, for example imps do not spawn and pots are intangible. * The game can be initiated while a second player is connecting to the host in `CharSelect`. Players may join without selected characters spawning and in an unresponsive state. * Sometimes after completing a match and the host starts a new match from the Victory or Loss screen, connected players may have no visible interactions to join or select characters. A work-around is implemented to not block entry into the game. +* Sometimes the client may be disconnected from Photon which causes a timeout and `PhotonRealtimeTransport` to be in a bad state after the shutdown. An exception is developed that fires every frame. ## Learn more diff --git a/transport_versioned_docs/version-0.8.0/install.md b/transport_versioned_docs/version-0.8.0/install.md index a9d2d20e2..04403b48a 100644 --- a/transport_versioned_docs/version-0.8.0/install.md +++ b/transport_versioned_docs/version-0.8.0/install.md @@ -1,7 +1,7 @@ --- id: install title: Install Transport -description: Install Unity Transport, com.unity.transport package, using the Package Manager. These instructions include the package URL. +description: Install Unity Transport, com.unity.transport package, using the Package Manager. --- Follow these instructions to install Com.Unity.Transport. diff --git a/transport_versioned_docs/version-0.9.0/install.md b/transport_versioned_docs/version-0.9.0/install.md index 9e9836fcb..9529dd522 100644 --- a/transport_versioned_docs/version-0.9.0/install.md +++ b/transport_versioned_docs/version-0.9.0/install.md @@ -1,6 +1,7 @@ --- id: install title: Install Transport +description: Install Unity Transport, com.unity.transport package, using the Package Manager. --- Follow these instructions to install Com.Unity.Transport. @@ -22,6 +23,8 @@ You need Unity Editor version 2020.1.2f1 or later. - Add package from tarball... - Add package from git URL... + ![Select Git URL Option](/img/install/install-git.png) + 1. Select **Add package from git URL...** 1. Enter the Git URL to the release package. For the latest version use the following. It loads as Unity Transport. From c2fc6ba3fd2414cdc696d3a93452ce0ee65792ea Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Wed, 19 May 2021 12:15:37 -0500 Subject: [PATCH 08/11] update release notes per review --- releases/samples/release-0-2-0.md | 41 ++++++++++++++----------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index 0302fa79b..c47cab224 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -19,9 +19,9 @@ Boss Room: Small Scale Co-op Sample always requires the latest version of Unity ## New features -This release includes the following new features and additions +This release includes the following new features and additions: -* Introduced static scene `NetworkObject`s to Boss Room including the following updates: +* Introduced static scene `NetworkObject`s to BossRoom scene including the following updates: * Implemented a `ScriptableObject` based event system to encapsulate events inside assets. These objects include a `GameEvent` (ScriptableObject) and `GameEventListener` (MonoBehaviour) to encapsulate events inside assets, located in the `ServerBossRoomState` prefab which now has a `GameEventListener` component. The event associated to this listener is `BossDefeated`, which the Boss raises when the `LifeState` is Dead in the `RaiseEventOnLifeChange` component. * Added two separator `GameObject`s for scene readability: runtime `NetworkObject`s and `NetworkObject`s already placed in the scene. @@ -29,40 +29,39 @@ This release includes the following new features and additions * The `LifeState` `NetworkVariable` was moved from `NetworkCharacterState` into its own component, `NetworkLifeState`. * Cleaned up and removed old spawn prefab collections and spawner scripts (`NetSpawnPoint`). -* Updated the user interface including the following: - - * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message "Connection to Host failed" loads. - * Added an option to leave the lobby after joining it. You no longer have to restart the game to leave the lobby. - * Added option to cancel the game after clicking **Ready**. - * Added a gear icon for accessing and modifying app settings. - * The UI now tracks and displays player has arrived, number of connected players in the lobby, and player status. - +* Added ramp-up animation for hero movement and actions * Added F/X and animation assets for the game including: * Audio files for boss sound effects - * Ramp-up animation for hero movement and actions * Visual effects and particles for Tank charge skill * Art assets to wave spawner, including animations for ReceiveDamage, Broken (died), and Revive - * Game music - -* Added audiomixer to Boss Room for separate audio channels and a master mixer. +* Added Boss fight theme. * Updated and added various hero abilities: - * Added new Hero abilities including Archer’s PowerShot and Rogue's Dagger and Dash skills. - * Updated the Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. + * Added a cooldown to Archer's PowerShot. + * Added the Rogue's Dagger and Dash skills. The dash skill shows an instinct teleport (using an RPC) instead of a charge like the boss' (which updates its position over time). + * Added the Rogue's Sneak skill using local stealth, applying a graphical effect to the stealthy character while still sending all network events normally. * Properly display Heal abilities when targeting a fallen ally character. * Character attack actions properly support Hold to charge options. * To show how UI elements and game objects can be networked, added networked functionality using `INetworkSerializable` in the `CharSelect` screen to network player's selected character on the Character Selection screen. -* Added a Photon filter to remove any invisible characters introduced by Zoom when copy-pasting room names, IP addresses, or ports. -* Boss Room now uses the [UnityToonShader](https://github.com/IronWarrior/UnityToonShader) for rendering the 3D surfaces to emulate 2D, flat surfaces. -* Added disconnection error message to load when a player or host disconnects due to limited or no network connectivity. Client logic was also updated to detect Host disconnection scenarios, such as losting connectivity. +* Added input sanitization to remove any invisible characters introduced by other chat programs when copy-pasting room names, IP addresses, or ports. (Useful when sharing with friends.) +* Added disconnection error message to load when a player or host disconnects. Client logic was also updated to detect Host disconnection scenarios, such as losting connectivity. * Balanced hero and enemy stats, spawners, trigger areas, and enemy detetction areas. * Added healthbars to display when damaged and properly track imp health locally and across clients. ## Changes +* The Boss Room project now loads MLAPI 0.1.0-experimental package through the Unity Package Manager Registry. See the [MLAPI install guide](/docs/migration/install) for details. +* Updated the user interface including the following: + + * When joining a game, a "Connecting..." UI loads. When disconnecting from a game, you are returned to the MainMenuScene with a "Connection to Host lost" message. If the game fails to connect, a general message "Connection to Host failed" loads. + * Added an option to leave the lobby after joining it. You no longer have to restart the game to leave the lobby. + * Added option to cancel my selection after clicking **Ready**. + * Added a gear icon for accessing and modifying app settings. + * The UI now tracks and displays player has arrived, number of connected players in the lobby, and player status. + This release includes the following updates: * Updated Boss Room per asset and project settings for increased performance and better resource management: @@ -75,7 +74,6 @@ This release includes the following updates: * Disabled mesh colliders of lava, which is more decorative than interactive. * Refactored the S_SimpleDissolve shader which consumed most import time. -* Updated the Photon Setup Guide, indicating you need only app ID when playing with friends. For users connecting across regions, you may need to hard code a region in your app settings by using the room code and region instead of just the room code sharing in game. * Removed a duplicated `GameObject` from the MainMenu scene. * Reviewed and revised code to better following quality standards. * Updated the Mage character base attack to better support the new enqueuing ability and handle game behaviors. Updates include: @@ -93,7 +91,6 @@ This release includes the following updates: * Per-connection state on client disconnect * Additional errors including a full server and player ID (GUID) already playing - * Player connection if they experience a game-level connection failure * Updated code to allow hosts to specify a port to listen to,removing the hard-coded port. * Refactored Action Bar code including the following: @@ -128,7 +125,7 @@ This release includes the following issue fixes: * Removed a previous work-around for character selections when host replays a completed game. The issue was resolved, allowing players to see character selections during replay. * Fixed collision wall settings, fixing an issues where the boss knock-back ability sent players through walls. * Resolved an issue where any players leaving the lobby sent all players to the lobby. -* Fixed the ignored health amount (HP parameter) for revived characters. The correct value correctly sets the revived character to a lower amount than maximum. +* Fixed the ignored health amount (HP parameter) for revived characters. The correct value correctly sets the revived character to a lower amount than maximum. * Fixed animations for enemies including the smoke animation for destroyed imps and the boss helmet when crying. * Fixed loading of the game skybox before the menu loaded. From 65baf1257108183d972bbf7fac8f1755cb82376a Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Wed, 19 May 2021 14:01:10 -0500 Subject: [PATCH 09/11] transport updates and versioning updates --- docusaurus.config.js | 8 +- releases/samples/release-0-2-0.md | 4 +- src/theme/DocVersionSuggestions/index.js | 126 +++++++++++++++++++++++ 3 files changed, 132 insertions(+), 6 deletions(-) create mode 100644 src/theme/DocVersionSuggestions/index.js diff --git a/docusaurus.config.js b/docusaurus.config.js index 7594b3cab..1c50b7a7a 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -481,18 +481,18 @@ module.exports = { return `https://github.com/Unity-Technologies/com.unity.multiplayer.docs/edit/master/${versionDocsDirPath}/${docPath}`; }, includeCurrentVersion: true, - lastVersion: '0.9.0', + lastVersion: '0.8.0', versions: { //current: { // label: 'Next', // path: 'next', //}, '0.9.0': { - label: 'v. 0.9.0', - path: '', + label: 'v. 0.9.0preview', + path: '0.9.0', }, '0.8.0': { - label: 'v. 0.8.0', + label: 'v. 0.8.0preview', path: '0.8.0', }, }, diff --git a/releases/samples/release-0-2-0.md b/releases/samples/release-0-2-0.md index c47cab224..713edd9e7 100644 --- a/releases/samples/release-0-2-0.md +++ b/releases/samples/release-0-2-0.md @@ -9,13 +9,13 @@ The Boss Room: Small Scale Co-op Sample v0.2.0 release provides new sample code, | Product | Version | Status | Release Date | Supported Unity Versions | | -- | -- | -- | -- | -- | -| Boss Room: Small Scale Co-op Sample | 0.2.0 | Early Access | May 18, 2021 | v2020.3.8f1 LTS | +| Boss Room: Small Scale Co-op Sample | 0.2.0 | Early Access | May 19, 2021 | v2020.3.8f1 LTS | :::important Boss Room: Small Scale Co-op Sample always requires the latest version of Unity MLAPI. See [Unity MLAPI](../index.md) for more information on those features, fixes, and known issues. ::: -## [0.2.0] - 2021-05-18 +## [0.2.0] - 2021-05-19 ## New features diff --git a/src/theme/DocVersionSuggestions/index.js b/src/theme/DocVersionSuggestions/index.js new file mode 100644 index 000000000..4e93b2309 --- /dev/null +++ b/src/theme/DocVersionSuggestions/index.js @@ -0,0 +1,126 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React from 'react'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Link from '@docusaurus/Link'; +import Translate from '@docusaurus/Translate'; +import { + useActivePlugin, + useActiveVersion, + useDocVersionSuggestions, +} from '@theme/hooks/useDocs'; +import {useDocsPreferredVersion} from '@docusaurus/theme-common'; + +function UnreleasedVersionLabel({siteTitle, versionLabel}) { + return ( + {versionLabel}, + }}> + { + 'This is in-development documentation for {siteTitle} {versionLabel} version.' + } + + ); +} + +function UnmaintainedVersionLabel({siteTitle, versionLabel}) { + return ( + {versionLabel}, + }}> + { + 'This is documentation for {siteTitle} {versionLabel}, which may be a previous or preview version.' + } + + ); +} + +function LatestVersionSuggestionLabel({versionLabel, to, onClick}) { + return ( + + + + latest version + + + + ), + }}> + { + 'For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).' + } + + ); +} + +const getVersionMainDoc = (version) => + version.docs.find((doc) => doc.id === version.mainDocId); + +function DocVersionSuggestions() { + const { + siteConfig: {title: siteTitle}, + } = useDocusaurusContext(); + const {pluginId} = useActivePlugin({ + failfast: true, + }); + const {savePreferredVersionName} = useDocsPreferredVersion(pluginId); + const activeVersion = useActiveVersion(pluginId); + const { + latestDocSuggestion, + latestVersionSuggestion, + } = useDocVersionSuggestions(pluginId); // No suggestion to be made + + if (!latestVersionSuggestion) { + return <>; + } // try to link to same doc in latest version (not always possible) + // fallback to main doc of latest version + + const latestVersionSuggestedDoc = + latestDocSuggestion ?? getVersionMainDoc(latestVersionSuggestion); + return ( +
+
+ {activeVersion.name === 'current' ? ( + + ) : ( + + )} +
+
+ savePreferredVersionName(latestVersionSuggestion.name)} + /> +
+
+ ); +} + +export default DocVersionSuggestions; From ed2ec64410e4983af90a4fed0069b1d34e81fccc Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Wed, 19 May 2021 14:44:49 -0500 Subject: [PATCH 10/11] blog and forum links --- blog/2021-05-19-boss-room-0-2-0.md | 23 +++++++++++++++++++++++ docusaurus.config.js | 8 ++++++++ 2 files changed, 31 insertions(+) create mode 100644 blog/2021-05-19-boss-room-0-2-0.md diff --git a/blog/2021-05-19-boss-room-0-2-0.md b/blog/2021-05-19-boss-room-0-2-0.md new file mode 100644 index 000000000..cd1b91e8d --- /dev/null +++ b/blog/2021-05-19-boss-room-0-2-0.md @@ -0,0 +1,23 @@ +--- +title: Boss Room 0.2.0 is live! +author: Lori Krell +author_title: Unity, Senior Tech Writer +tags: [releases, bossroom] +description: Welcome to the next release of the Unity Boss Room Small Scale Co-op Sample for version 0.2.0. This release includes numerous added features, updates, and fixes. +hide_table_of_contents: false +--- + +Thank you for your continued support for MLAPI and the Boss Room Small Scale Co-op Sample! We have released a new v. 0.2.0 release of Boss Room, using 0.1.0 experimental MLAPI. + +In the past month, the team has delivered new features, optimizations, and numerous fixes and changes including the following highlights: + +* Updated and introduced various hero abilities, such as: Archer’s PowerShot which accounts for a duration that a key is pressed for or Rogue Dash that teleports the player to a target spot - to learn more about how to handle teleport-like abilities in a networked environment, please check out the DashAttackAction.cs - as well as Implementing a better cooldown solution and calculations. +* Introduced static scene `NetworkObject`s, as well as implementing a `ScriptableObject` based event system to encapsulate events inside assets. +* Increased the overall GPU performance of Boss Room by disabling GPU Skinning, enabling GPU instancing, turning off Cast Shadows for various prefabs, and more optimizations. +* Updated the user interface in many places and refactored the Action Bar code to increase the extensibility without the need of having to manually modify the code in multiple areas. +* Updated our `GameNetPortal` to properly handle Per-Connection state on client disconnect and Player connection if they experience a game-level connection failure - you can check out the `ApprovalCheck` function in our *ServerGameNetPortal.cs*. +* Fixed various known issues from the previous release. + +Find all details in our [changelog](/releases/samples/samples-0-2-0) and download the release from [GitHub](https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/latest). + +Have questions? Chat with us in the [Multiplayer forums](https://forum.unity.com/forums/multiplayer.26) and [Discord](https://discord.gg/buMxnnPvTb) in the #dev-samples channel. \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 1c50b7a7a..edca4a79b 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -205,6 +205,14 @@ module.exports = { label: 'Unity Multiplayer Forum', href: 'https://forum.unity.com/forums/multiplayer.26/', }, + { + label: 'MLAPI Forum', + href: 'https://forum.unity.com/forums/mlapi.661/', + }, + { + label: 'Unity Transport Forum', + href: 'https://forum.unity.com/forums/unity-transport.664/', + }, ] }, ], From 01df4d5aca4197c5f2c65879d53c01bf68f3b7fb Mon Sep 17 00:00:00 2001 From: Lori Krell Date: Wed, 19 May 2021 14:48:46 -0500 Subject: [PATCH 11/11] removing test content --- releases/multiplayer/mlapi-develop.md | 1 - 1 file changed, 1 deletion(-) diff --git a/releases/multiplayer/mlapi-develop.md b/releases/multiplayer/mlapi-develop.md index 25a3f65d8..ef5d5a6f4 100644 --- a/releases/multiplayer/mlapi-develop.md +++ b/releases/multiplayer/mlapi-develop.md @@ -3,7 +3,6 @@ id: mlapi-develop title: MLAPI In-Development Release Notes description: In-progress release notes for the next release of Unity MLAPI including new features, updates, bug fixes, known issues, and information to help you upgrade. --- -Hi Brian how are you The following in-progress content tracks features, updates, bug fixes, and refactoring for the next release of Unity MLAPI. Specific release information including supported Unity versions, release date, and release version is to be announced. All content and development information is subject to change.