diff --git a/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md b/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md index 783c4077c..1c7fddd09 100644 --- a/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md +++ b/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md @@ -1,15 +1,9 @@ # Multiplayer Samples Co-op Changelog -## [Unreleased] - yyyy-mm-dd +## [1.4.0] - 2022-10-06 ### Added * Added custom RNSM config with graph for RTT instead of single value (#747) -### Changed -* -### Removed -* -### Fixed -* ## [1.3.1-pre] - 2022-09-13 diff --git a/Packages/com.unity.multiplayer.samples.coop/QAReport.md b/Packages/com.unity.multiplayer.samples.coop/QAReport.md deleted file mode 100644 index 8c8e566dc..000000000 --- a/Packages/com.unity.multiplayer.samples.coop/QAReport.md +++ /dev/null @@ -1,26 +0,0 @@ -# Quality Report -Use this file to outline the test strategy for this project template. - -## Version tested: [*package version*] - -## QA Owner: [*Add Name*] -## UX Owner: [*Add Name*] - -## Test strategy -*Use this section to describe how this feature was tested.* -* A link to the Test Plan (Test Rails, other) -* Results from the project template's editor and runtime test suite. -* Link to automated test results (if any) -* Manual test Results, [here's an example](https://docs.google.com/spreadsheets/d/12A76U5Gf969w10KL4Ik0wC1oFIBDUoRrqIvQgD18TFo/edit#gid=0) -* Scenario test week outcome -* etc. - -## Package Status -Use this section to describe: -* UX status/evaluation results -* package stability -* known bugs, issues -* performance metrics, -* etc - -In other words, a general feeling on the health of this project template. diff --git a/Packages/com.unity.multiplayer.samples.coop/QAReport.md.meta b/Packages/com.unity.multiplayer.samples.coop/QAReport.md.meta deleted file mode 100644 index 742fe4ca5..000000000 --- a/Packages/com.unity.multiplayer.samples.coop/QAReport.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 38e03a401f2e04237aa2d319d824266c -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.unity.multiplayer.samples.coop/README.md b/Packages/com.unity.multiplayer.samples.coop/README.md index 0ac2c3b24..142e7b238 100644 --- a/Packages/com.unity.multiplayer.samples.coop/README.md +++ b/Packages/com.unity.multiplayer.samples.coop/README.md @@ -1,112 +1,27 @@ -![Banner](Documentation/Images/Banner.png) -# Boss Room - co-op multiplayer RPG built with Unity Netcode for GameObjects +# Boss Room's Utilities package -| 🛑 IMPORTANT - Early Access 🛑 | -| -- | -| Boss Room: Small Scale Co-op Sample is built on top of the Netcode for GameObjects (Netcode) package. The Netcode package is on the road to being a fully featured solution. We have solutions architects available on Discord and forums to help you work through issues you encounter. | -Boss Room is a fully functional co-op multiplayer RPG made with Unity Netcode. It is built to serve as an educational sample that showcases certain typical gameplay patterns that are frequently featured in similar games. - -Our intention is that you can use everything in this project as a starting point or as bits and pieces in your own Unity games. The project is licensed under the Unity Companion License. See [LICENSE.md](LICENSE.md) for more legal information. - -> __IMPORTANT__: -> - Boss Room supports those platforms supported by Netcode (Windows and Mac). -> - Boss Room is compatible with Unity 2020.3 and later. -> - Make sure to include standalone support for Windows/Mac in your installation. - - -``` -Platforms : Windows, Mac -``` - -![](Documentation/Images/3Players.png) -![](Documentation/Images/Boss.png) +This package offers reusable utilities for your own projects. ## Getting the project - - The early access version can be downloaded from the [Releases](https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases) page. - - Alternatively: click the green `Code` button and then choose to download the zip archive. Remember, that you would download the branch that you are currently viewing in Github. - - For Windows users: Using Windows' built-in extracting tool may generate a "Error 0x80010135: Path too long" error window which can invalidate the extraction process. A workaround for this is to shorten the zip file to a single character (eg. "c.zip") and move it to the shortest path on your computer (most often right at C:\\) and retry. If that solution fails, another workaround is to extract the downloaded zip file using 7zip. - - -## Installing Git LFS - -This project uses Git Large Files Support (LFS), which ensures all large assets required locally are handled for the project. See [Git LFS installation options](https://github.com/git-lfs/git-lfs/wiki/Installation) for Windows and Mac instructions. - -## Opening the project for the first time - -Once you have downloaded the project, the steps below should get you up and running: - - Make sure you have installed the version of Unity that is listed above in the prerequisites section. - - Make sure to include standalone support for Windows/Mac in your installation. - - Add the project in _Unity Hub_ by clicking on **Add** button and pointing it to the root folder of the downloaded project. - - The first time you open the project Unity will import all assets, which will take longer than usual - it is normal. - - Once the editor is ready, navigate to the _Project_ window and open the _Project/Startup_ scene. -![](Documentation/Images/StartupScene.png) - - From there you can click the **Play** button. You can host a new game or join an existing game using the in-game UI. - -## Testing multiplayer - -In order to see the multiplayer functionality in action we can either run multiple instances of the game locally on our computer or choose to connect to a friend over the internet. - ---------------- -**Local multiplayer setup** - -First we need to build an executable. - -To build an executable press _File/Build Settings_ in the menu bar, and then press **Build**. -![](Documentation/Images/BuildProject.png) -Once the build has completed you can launch several instances of the built executable in order to both host and join a game. +You can add this package via the Package Manager window in the Unity Editor by selecting add from Git URL and adding the following URL: https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git?path=/Packages/com.unity.multiplayer.samples.coop#main -> Mac users: to run multiple instances of the same app, you need to use the command line. -> Run `open -n BossRoom.app` +Or you can directly add this line to your manifest.json file: ---------------- -**Multiplayer over internet** +"com.unity.multiplayer.samples.coop": "https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git?path=/Packages/com.unity.multiplayer.samples.coop#main" -To play over internet, we need to build an executable that is shared between all players. See the previous section. +The project is licensed under the Unity Companion License. See [LICENSE.md](LICENSE.md) for more legal information. -It is possible to connect between multiple instances of the same executable OR between executables and the editor that produced said executable. - -Running the game over internet currently requires setting up a [Photon Transport for Netcode](https://github.com/Unity-Technologies/multiplayer-community-contributions), which uses Photon relay server to facilitate communication between clients and server living on different networks. - -> Checkout our Photon-Realtime setup guide, here: -> [Boss Room Photon Setup Guide](Documentation/Photon-Realtime/Readme.md) - -Alternatively you can use Port Forwarding. The https://portforward.com/ site has guides on how to enable port forwarding on a huge number of routers. Boss Room uses `UDP` and needs a `9998` external port to be open. - ------------------------------------------- - -## Exploring the project -BossRoom is an eight-player co-op RPG game experience, where players collaborate to take down some minions, and then a boss. Players can select between classes that each have skills with didactically interesting networking characteristics. Control model is click-to-move, with skills triggered by mouse button or hotkey. - -One of the eight clients acts as the host/server. That client will use a compositional approach so that its entities have both server and client components. - -The game is server-authoritative, with latency-masking animations. Position updates are done through NetworkedVars that sync position, rotation and movement speed. NetworkedVars and Remote Procedure Calls (RPC) endpoints are isolated in a class that is shared between the server and client specialized logic components. All game logic runs in FixedUpdate at 30 Hz, matching our network update rate. - -Code is organized into three separate assemblies: **Client**, **Shared** and **Server** which reference each other when appropriate. - -For an overview of the project's architecture please check out our [ARCHITECTURE.md](ARCHITECTURE.md). - ---------------- - -For a deep dive in Unity Netcode and Boss Room, visit our [doc](https://docs-multiplayer.unity3d.com/) and [Learn](https://docs-multiplayer.unity3d.com/docs/learn/introduction) sections. - -## Contributing - -The project uses the `git-flow` branching strategy, as such: - - `develop` branch contains all active development - - `main` branch contains release versions - -To get the project on your machine you need to clone the repository from GitHub using the following command-line command: -``` -git clone https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git -``` +> __IMPORTANT__: +> - The Utilities package supports those platforms supported by Netcode for GameObjects. +> - Utilities is compatible with Unity 2020.3 and later. +> - Make sure to include standalone support for Windows/Mac in your installation. -> __IMPORTANT__: -> You should have [Git LFS](https://git-lfs.github.com/) installed on your local machine. +## Features -Please check out [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on submitting issues and PRs to BossRoom! +Multiple utilities classes are available in the [Utilities](Utilities) folder. For example the [ClientNetworkTransform](Utilities/Net/ClientAuthority/ClientNetworkTransform.cs) and [Session Manager](Utilities/Net/SessionManager.cs). -For further discussion points and to connect with the team, join us on the Unity Multiplayer Networking Discord Server - Channel #dev-samples +## Usage -[![Discord](https://img.shields.io/discord/449263083769036810.svg?label=discord&logo=discord&color=informational)](https://discord.gg/FM8SE9E) +For example usage, please see [Boss Room](https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop). diff --git a/Packages/com.unity.multiplayer.samples.coop/package.json b/Packages/com.unity.multiplayer.samples.coop/package.json index db1e1ce94..c4f6671cd 100644 --- a/Packages/com.unity.multiplayer.samples.coop/package.json +++ b/Packages/com.unity.multiplayer.samples.coop/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.multiplayer.samples.coop", "displayName": "Multiplayer Samples Utilities", - "version": "1.3.1", + "version": "1.4.0", "type": "template", "host": "hub", "unity": "2020.3", @@ -12,4 +12,4 @@ "com.unity.netcode.gameobjects": "1.0.2", "com.unity.services.relay": "1.0.3" } -} \ No newline at end of file +}