Hey there, I've been experimenting with the sort of typical MMO server style whereby you have a dedicated server and multiple clients connecting to this single authoritative server.
I'm trying to eliminate the need of the server actually rendering any of the action which the client typically needs to.
In essence, I just want the server to be a simple command prompt sort of executable which does all the server logic and sends out the necessary updates every tick.
Problems I've ran into so far is that there is no easy way to sync the players because if the server doesn't have the player objects in it, it cannot use the sync action to easily spread the changes that's been sent to the server by each client. Does anyone have any ideas on how to do this, anything I'm missing etc.? I'm going to keep experimenting, but it seems as though the capability of making a real time multiplayer game with a stripped down server that simply processes server logic is quite troublesome!
Thanks for bringing this up, I'm curious as well.
Anyone's looking into this more?
I wish. :p
it seems like you're trying to make the server out of C2... if so, that's not likely to work, usually minimal servers need their own scripting.
if you want to streamline the server, the key is for the server to maintain the schema for all players and the necessary updates, and then for the client to interpret the updates into the "visual/intereactive" representation. in that way you don't need to work about the specific objects in the client, as long as they are correctly tied to the schema.
rho You make a point, but what would be the correct way (in terms of the MP Events) to go about doing this?
Yeah, I want to make a server with C2 which handles the data of each player and sends back updates to everyone, without needed to process the visual representation on it's own screen.
Rory, I hadn't considered using C2 as a server. I suspect the best way is to look at the multi-player tutorials and the new web-rtc functionality. i'm not sure how best to do it after that as anything significant in size is likely to need a database and c2 doesn't support that functionality yet - to my knowledge. for me, c2 is the wrong tool for the server that you are planning.
If you don't want the server to do any rendering work, make all the layers visible. If you like you can then put an extra layer on top with a text object with some information, but remember that text objects that change every tick can be slow on some setups, so you might want to just do 1 second updates or something.
Hmm... this sounds quite interesting an experiment to try out. If you give it a go let us know how it goes.
Develop games in your browser. Powerful, performant & highly capable.
If your using a single master controller. You should not be using object syncing. Even if you followed Ashley's suggestion of not rendering by making layers invisible. You are still going to be stuck with the fact that all your players will be sharing the same game area. So that means collisions with each other. It's not viable to use 1 Room to host 1000 players among different game zones. Clients can't cope with the massive data in and out and the server will probably buckle too.
So if your going to use a single room server you shouldn't use object sync. My suggestion is to go ahead and create 1 server host per room/zone. If your planning to have 100 player per zone that's only 1 software app running per room to be a server host and that isn't so bad. Of course you will need to figure another tech to have each room server talk to each other.
I've started a project based on a similar principles to an MMO although more like Phantasy Start Online rather than WoW. I have a thread running in the WIP and I also have a devlog(my sig). It's a slow burn project for me as I have other priority projects. However I will be putting up the first online stage of development soon.
The thread is here
Will there be dedicated Servers to rent or how can you run your own?
I am looking for an "alyways on" Server for matchmaking purposes. All players launching the game should connect to it to be "available" and others wo click on multiplayer can then find the other players and get an invite from the sever. If they accept, both players are put into a new game. Is this possible?
I thought it would be possible to use a single room as kind of workaround but if the host leaves all get disconnected and have to re-connect?