Run Two Unity Instances with Shared Assets for Easiest Dedicated Client Workflow
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