Alright, so I spent a good chunk of today researching multiplayer in Unity, experimenting and following walkthroughs/articles. Some progress was made but not enough that I have a working concept. My game will need authoritative servers (the server dictates everything going on in the game) for multiplayer and I want a dedicated server executable to be distributed with the game so that players can set up their own servers locally or on dedicated hosting.
This doesn’t quite seem to be what Unity is geared towards, preferring a central master server/lobby type system where clients act as servers for a given session of a game. That would work fine for, say, a competitive game like a racer or an FPS but not so much for an open world game with random terrain generation that you want to be saved over time.
My options therefore, seem to be twofold: Either write a standalone dedicated server app (probably in c#) which would allow the unity game clients to connect to it (preferred, but very complicated) or simply have two builds of my game client, the ‘server’ with no graphics/camera.
Option two seems clunky at best but also much simpler than option 1 to implement for a beginner like me, so I think for now that’s how I’ll have to do things.
Knock on wood, I’ll figure it all out and have a working concept some time tomorrow.