I'm thinking I must be really dumb, but I've searched the forums to find the answer and while I'm sure it is there, I can't seem to find it in a form that I comprehend. I have built a game in Unity that uses one of the clients as the server, but I'd like to change it to have a central server preferably running on Linux. I have written HTTP Servers from scratch in C++, so I'm not a newb or anything. Help please? Thanks.
If you want to do this, check out Rakknet, which is the networking engine used in Unity. There is no official support for rolling your own server though so there will be some reverse engineering involved. I'm pretty sure that most people around this forum that use their own central server skip the built in networking all together and used their own client implementation in C/C++ or .NET sockets.
wow, thanks very much for the information. No wonder I couldn't find it on the Unity site. I have to say though, I'm really surprised they didn't implement that. I feel like most any commercial game wants that feature. Oh well. Thanks a bunch though.
Those who use a dedicated server with Unity networking, have created optimized special clients that allows the server to work optimized without wasting a lot of time with unneeded stuff. The main reason you wouldn't do it is that Unity is single scene. So you load the scene -> all are within that scene if you want to have distinct games, you need distinct server instances. But it definitely would be doable. Depending on what you want to do thought, Unity networking isn't suited anyway. For example an MMO is likely out of reach (at least when compared to alternative solutions that would take you dozens to hundreds of hours less) as you have no distribution callbacks to decide who gets which update and alike. If your target is a central lobby and matchmaking server and alike, give both, SmartFoxServer and Neutron, a go