I have been working on some external features that I wanted to use for a game idea I had. I thought the features might be valuable to other developers too, so I built a system to be flexible enough to accommodate many games at once. This demo is slightly different but related to the Competitive-Matchmaker demo.
It’s going to be free, with open source plugins, and open source tutorials.
This is a feature set for long-running servers (as opposed to servers that just handle a single match), and would be most useful for MMO style games where there are multiple areas, connected through some kind of travel mechanism.
Dynamic server deployment: Create and destroy dedicated servers when needed.
Server persistence: Servers can retain their state, even when offline. Rama’s save system is recommended, and works great.
Player persistence: Score, rank, inventory, abilities, Ui settings, etc. All of this is saved externally, and moves with the player across servers.
Server to server travel: Players can travel from one server to another. Trigger this from game play events, or portal objects, and move a player to a different server/zone.
I am looking for some developers that are interested in this. I’d love to hear any comments or critiques. Please get in touch!
hahaha this looks amazing . I think im going to go cry now as i have been working on a similar system myself for the past few weeks , literally just finished the code to dynamically start servers a few days ago . As i hadn’t seen anything like this i thought i was onto something unique But you seem like your a lot further ahead than me and you specialise in back-end development so your system will probably run rings around mine .
Guess i better just wait for your release. look forward to seeing the rest
Got a suggestion for your plugin though - Would it be possible to get player trigger-able volume that player(s) could enter that could transfer the player to another server?
I can see this be useful for something like a star trek styled teleporter, a star gate, wormholes, Jump gates, etc. that can transfer you and others to another server.
I briefly been experimented with multiples worlds a good while ago.
Picked it back up recently and have been meaning to do more with it.
The idea was to allow a persistent area that acts as a 3d lobby and setup area to use between rounds and when loading in a new play area.
I’m wondering if it would be possible to join multiple servers at once as well, possibly render some basics from the other server.
Be interested in seeing this in action to see if it can be adapter to use self hosted servers that act as your own personal world, with dedicated servers acting as cross over points between them.
Imagine having a doorway that you opened that would show the world and contents from a different server, much like the view you get through a portal.
Would require multiple net connections and other shenanigans, but could be quite useful.
In fact, most of the “mmo” of big multiplayer world would benefit of a seamless travel (server to server).
In theory it’s simple but the implementation is not.
all in all if your plug-in can handle that from scratch, I bet a lot of project can benefit this.
The goal is to able to switch a server connection to another one and keep all the “actor” in place with replication moving from one server to another one.
One thing that is difficult is the edge sync. Let’s say you are on a border between 2 zones, how will you notifies the other border that you are there so player on the other side can see you (server to server communication in a master/slave manner) then if you cross the border the master become slave and slave become master and on the player side you are now communicating with the Server 2.
That’s not somethinf undoable, but just need some network engine knowledge
Watch Dogs is for the most part, an open-world single player game. However, if you have the online options enabled, you can occasionally see other players in the world. Or, they can choose to enter your game for some PVP activities.
Friends and invitations are supported through the OSS, and are on my list of TO-DOs. I have a couple other things that I need to finish first, but yes… This will totally be possible. Give me a month or two.
Its less about launching a game as a host. You basically want to be able to dynamically launch/join a multiplayer session, without having to leave the current play session. Its basically seamless in their execution.
The system I’m building is compatible with this, with a slightly different perspective.
Take Diablo 3 for example, which has a similar “join a friend” feature.
You can start a game by yourself. Other players can be invited, friends can join. It’s all “seamless” in the way you describe. But… In actuality, there is a multiplayer server involved from the very beginning. It never switches from a single player game to a multiplayer game… It was a multiplayer game to begin with.
There are many reasons to use this approach, especially now that creating and destroying dedicated servers is so cheap and easy.