Run Two Unity Instances with Shared Assets for Easiest Dedicated Client Workflow - BeardedManStudios/ForgeNetworkingRemastered GitHub Wiki

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