Home

Awesome

Banner <br><br>

Boss Room: a Co-op, Multiplayer RPG Sample

Made with and Including Utilities for Netcode for GameObjects

<br>

UnityVersion NetcodeVersion LatestRelease <br><br>

Boss Room is a fully functional co-op multiplayer RPG made with Unity Netcode. It is an educational sample designed to showcase typical netcode patterns that are frequently featured in similar multiplayer games. <br><br>

Boss Room Sample Overview

Boss Room is designed to be used in its entirety to help you explore the concepts and patterns behind a multiplayer game flow; such as character abilities, casting animations to hide latency, replicated objects, RPCs, and integration with the Relay, Lobby, and Authentication services.

You can use the project as a reference starting point for your own Unity game or use elements individually. <br><br>


💡 Utilities Package

This repository also contains a Utilities package, containing reusable sample scripts. You can install it using the following manifest file entry: <br> "com.unity.multiplayer.samples.coop": "https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop.git?path=/Packages/com.unity.multiplayer.samples.coop",


<br>

For more information on the art of Boss Room, see ART_NOTES.md.

<br><br>


Readme Contents and Quick Links

<!-- TOC generated from https://luciopaiva.com/markdown-toc/ --> <details open> <summary> <b>Click to expand/collapse contents</b> </summary> </details>
<br>

Getting the project

Direct download

Requirements

BossRoom is compatible with the latest Unity Long Term Support (LTS) editor version, currently 2022 LTS. Please include standalone support for Windows/Mac in your installation.

PLEASE NOTE: You will also need Netcode for Game Objects to use these samples. See the Installation Documentation to prepare your environment. You can also complete the Get Started With NGO tutorial to familiarize yourself with Netcode For Game Objects. <br><br>

Boss Room has been developed and tested on the following platforms:

Boss Room's min spec devices are:

Installing Git LFS to clone locally

Boss Room uses Git Large Files Support (LFS) to handle all large assets required locally. See Git LFS installation options for Windows and Mac instructions. This step is only needed if cloning locally. You can also just download the project which will already include large files. <br><br>

Opening the project for the first time

Once you have downloaded the project, follow the steps below to get up and running:

<br><br><br>

Exploring the project

BossRoom is an eight-player co-op RPG game experience, where players collaborate to fight imps, 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 a 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.

Code is organized in domain-based assemblies. See the Boss Room architecture documentation file for more details. <br><br>

Registering the project with Unity Gaming Services (UGS)

Boss Room leverages several services from UGS to facilitate connectivity between players. To use these services inside your project, you must create an organization inside the Unity Dashboard, and enable the Relay and Lobby services. Otherwise, you can still use Boss Room without UGS. <br><br><br>

Testing multiplayer

In order to see the multiplayer functionality in action we can either run multiple instances of the game locally on your computer - using either ParrelSync or builds - or choose to connect to a friend over the internet. See how to test for more info. <br><br>

Local multiplayer setup

First, build an executable by clicking 'File/Build Settings' in the menu bar, and then click 'Build'.<br>

Once the build has completed you can launch several instances of the built executable in order to both host and join a game. When using several instances locally, you will have to set different profiles for each instance for authentication purposes, by using the 'Change Profile' button. <br>


💡 Mac users: To run multiple instances of the same app, you need to use the command line. Run open -n BossRoom.app


<br>

Multiplayer over Internet

To play over internet, first build an executable that is shared between all players - as above.

It is possible to connect between multiple instances of the same executable OR between executables and the editor that produced it.

Running the game over internet currently requires setting up a relay.

Relay Setup


Index of resources in this project

<details open> <summary> <b>Click to expand/collapse contents</b> </summary>

Gameplay

Game Flow

Connectivity

Services (Lobby, Relay, etc)

Tools and Utilities

</details>
<br>

Troubleshooting

Bugs

Documentation

For a deep dive into Unity Netcode and Boss Room, visit our documentation site. <br><br>

License

Boss Room is licensed under the Unity Companion License. See LICENSE.md for more legal information.

For a deep dive in Unity Netcode and Boss Room, visit our docs site. <br><br>

Contributing

We welcome your contributions to this sample code and objects. See our contribution guidelines for details.

Our projects use the git-flow branching strategy:

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

PLEASE NOTE: You will need to have Git LFS installed on your local machine in order to clone our repo. <br><br>

Community

For help, questions, networking advice, or discussions about Netcode for GameObjects and its samples, please join our Discord Community or create a post in the Unity Multiplayer Forum. <br><br>

Feedback Form

Thank you for cloning Boss Room and taking a look at the project. To help us improve and build better samples in the future, please consider submitting feedback about your experiences with Boss Room and let us know if you were able to learn everything you needed to today. It'll only take a couple of minutes. Thanks!

Enter the Boss Room Feedback Form <br><br>

Other samples

Bite-size Samples

Documentation Forums Discord <br><br>