How to create a room-based multiplayer game that can also be controlled via web interface

I’m trying to create a room-based, multiplayer game in Unity. It should support real time information exchanged between the players in the same room (e.g. player position), but is otherwise fairly casual/slow-paced. Rooms can be created dynamically by users. I don’t need physics.

I also want to be able to interface to a room through a web page (a sort of dashboard where I can trigger changes in the room for all players) – so besides connecting the players in the room, the server should also have some channel of communication (websockets?) to a web client.

Any tips on what server architecture I should use here - should each room have its own game server on the cloud? Or should each game server handle multiple rooms?

And can anyone recommend a multiplayer SDK that supports the above? Should I attempt to do this using Unity’s built-in networking?

Thanks

This question would be better suited on the Forums, since its more of a discussion then an answerable question.

However, I will give my two cents.

I don’t know of any services that provide you with such functionality - but I’m sure there are some.

As for your network infrastructure, I think you should have something along these lines:

67063-webserverservice.jpg

Have two components that interact directly with eachother: the Web Service, which provides you with web-page access to control the Server Head. and the Server Head, which sends and receives data to and from individual servers which are live.

The Web Service can send and receive information from the Server Head, in order to get feed information from individual Servers.


Otherwise: You could also only have the Web Service interact with the Server Head in order to make a connection with other servers, such that the Web Service could then directly communicate with the individual servers. I personally don’t know how to do it this way but I’m certain its possible.


Either of these solutions would probably accomplish what you’re looking for. You might have to implement these structures yourself, however, unless you can find a service which does something like this for you.

In any case, you’ll probably need your own Web Server and some working knowledge of PHP or ASP.NET or some other sever language.