Hi, . I would like design game that one build will be as server and another build as client.
And for example server will be destined only for windows and client for android. So what is better solution for do it. It is possible to make two separately project (one for windows as server , one for android as client) or make one project. Main reason why i asking is that i gonna use different asset to build on windows and android and i don’t know that make 2 project or 1. I have read that for netcode is better use one project but what about managing asset between android and windows otherwise I’ve also read that is possible use with 2 project without using network object but just sending custom message between server and client which is enough for my game.
You can have two projects ONLY if you do not wish to use any NetworkBehaviour and NetworkVariables, only RPC calls and low level Unity Transport messaging will work.
Still, I would strongly suggest to use a single project simply to reduce friction because you will have shared content between the two and specifically scripts not being in synch for a network game will cause plenty of issues that’ll be hard to track down since you need to debug and test two separate projects.
For Asset Management the workflow is the same as with any multiplatform title, most importantly you’ll want to look into Asset Bundles.
how do I call RPCs withouth a NetworkBehaviour script?
I have a similar situation here.
We have 3 apps, one for HoloLens and the others for iPad.
We need different expertise to develop the applications, assets are different, codebases will be mostly different.
Our approach was to separate in multiple projects and have shared content as a git submodule inside the Assets folder.
This works pretty well most of the time, the only issue is that I’m seeing exceptions about the Scene hash not being present.
We only use RPCs so we’ll keep moving in this direction, but we need to sort out these issues.
Custom messages may be your best option if you haven’t come across them already. Unity Transport is another option, it’s lower level but offers better performance.