/ParrelSync

(Unity3D) Test multiplayer without building

Primary LanguageC#MIT LicenseMIT

ParrelSync

Release Documentation License PRs Welcome Chats

ParrelSync is a Unity editor extension that allows users to test multiplayer gameplay without building the project by having another Unity editor window opened and mirror the changes from the original project.


ShortGif

Test project changes on clients and server within seconds - both in editor

Features

  1. Test multiplayer gameplay without building the project
  2. GUI tools for managing all project clones
  3. Protected assets from being modified by other clone instances
  4. Handy APIs to speed up testing workflows

Installation

  1. Backup your project folder or use a version control system such as Git or SVN
  2. Download .unitypackage from the latest release and import it to your project.
  3. ParrelSync should appreared in the menu item bar after imported UpdateButtonInMenu

Check out the Installation-and-Update page for more details.

UPM Package

ParrelSync can also be installed via UPM package.
After Unity 2019.3.4f1, Unity 2020.1a21, which support path query parameter of git package. You can install ParrelSync by adding the following to Package Manager.

https://github.com/VeriorPies/ParrelSync.git?path=/ParrelSync

UPM_Image UPM_Image2

or by adding

"com.veriorpies.parrelsync": "https://github.com/VeriorPies/ParrelSync.git?path=/ParrelSync"

to the Packages/manifest.json file

Supported Platform

Currently, ParrelSync supports Windows, macOS and Linux editors.

ParrelSync has been tested with the following Unity version. However, it should also work with other versions as well.

  • 2020.3.1f1
  • 2019.3.0f6
  • 2018.4.22f1

APIs

There's some useful APIs for speeding up the multiplayer testing workflow. Here's a basic example:

if (ClonesManager.IsClone()) {
  // Automatically connect to local host if this is the clone editor
}else{
  // Automatically start server if this is the original editor
}

Check out the doc to view the complete API list.

How does it work?

For each clone instance, ParrelSync will make a copy of the original project folder and reference the Asset, Packages and ProjectSettings folder back to the original project with symbolic link. Other folders such as Library, Temp, and obj will remain independent for each clone project.

All clones are placed right next to the original project with suffix _clone_x, which will be something like this in the folder hierarchy.

/ProjectName
/ProjectName_clone_0
/ProjectName_clone_1
...

Discord Server

We have a Discord server.

Need Help?

Some common questions and troubleshooting can be found under the Troubleshooting & FAQs page.
You can also create a question post, or ask on Discord if you prefer to have a real-time conversation.

Support this project

A star will be appreciated :)

Credits

This project is originated from hwaet's UnityProjectCloner