Theres got to be a better way to do this...

So i have two seperate projects, “Client” and “Server”, now obviously for things to work the assets and scripts and such have to be almost indentical on both the client and the server (im working on an authoritative server system)… now ive only laid down the basic structure and its already getting difficult making sure assets and such are the same… there has to be an easier way? Can someone point out how i can make a dedicated authoritative server and a completely seperate client to connect to it, while not running into problems of both the server and the client having mismatched assets and whatnot? :face_with_spiral_eyes:

Can you explain what you mean by assets? Do you run your 3D models, animations and stuff like that on the server? And are we talking Unity Networking?

When sharing code or other parts between client and server I find its best to split into three parts. Client, server, and common. Common is where you would put all the shared code. Most version control systems will support easily merging the common part into the two projects.

I mean things like GameObjects, scripts etc. There is no rendering of them but they still have to be Instantiated at the server side no?

Yes this is exactly the kind of thing im looking for, i actually got another suggestion from somebody else stating Plastics source control has functionality like this so im looking into that right now.

Git also supports sub modules which can do it. I don’t see why you would need the unity engine running on the server unless it is also a client. It really depends on what you are doing in your game.

Well what is a better thing to do?

If your not doing Animations on the Server which you really shouldn’t be doing for a Headless Server you could use just a basic Capsule for Avatars, Mobs, ect. instead of using their actual Models. Shared Common Scripts between the 2 projects you could create in a DLL Project and then add the dll to both projects in your Plugins folder.