Skip to content

Run Two Unity Instances with Shared Assets for Easiest Dedicated Client Workflow

amuntobii edited this page Oct 28, 2019 · 3 revisions

A common, established networking setup is a dedicated server with bunches of clients. To enable a fast workflow of this model, you need a way to share Assets and Settings from the same project, but also be able to open and run them from inside of two distinct editors. This is an ideal use-case for a Symbolic Link, which is essentially allowing your system to share folders from different locations on the file system.

Here is a batch file to do this on Windows:

@echo off

mkdir "%~dp0SERVER"
mklink /D "%~dp0SERVER\Assets" "%~dp0Assets"
mklink /D "%~dp0SERVER\Packages" "%~dp0Packages"
mklink /D "%~dp0SERVER\ProjectSettings" "%~dp0ProjectSettings"
mklink /D "%~dp0SERVER\UserSettings" "%~dp0UserSettings"

pause

Make this file in your Unity root folder, next to Assets, etc. Name it something like makeserver.bat. Then, right-click and run as administrator (needed for symbolic link creation). You'll see a new folder called SERVER appear, and when you browse into it, you'll see a curious link/folder icon on the above folders. When you click into those, they magically teleport you back into your original project's folders.

Now, you can open a second Unity project with this SERVER folder as the root, and automagically share code and assets. Now you're ready to test your dedicated/client setup without ever having to build.

//TODO confirm these are all the folders we want

//TODO expand for other OS

Home

Getting Started
Network Contract Wizard (NCW)
Network Object
Remote Procedure Calls (RPCs)
Unity Integration
Basic Network Samples
Scene Navigation
NetWorker
Master Server
Web Server
Netcoding Design Patterns
Troubleshooting
Miscellaneous
Clone this wiki locally
You can’t perform that action at this time.