Mineteset as global virtual world

For people working on the C++ code.
jimy
Member
 
Posts: 25
Joined: Mon Mar 12, 2012 22:15

Mineteset as global virtual world

by jimy » Thu Jun 26, 2014 07:55

We have a virtual world with thousands of servers. OK now why not make a single virtual world? What I propose is difficult, but I think it would be possible to create links between servers to make continuous two worlds. For example, when I would go in a certain area on a first server, it instantly teleport me to a second server. And traveling in the opposite direction, I would stay on the first server. I think that would be easier between one world and another one server rather than between two servers.
 

User avatar
Evergreen
Member
 
Posts: 2135
Joined: Sun Jan 06, 2013 01:22
Location: A forest in the midwest
GitHub: 4Evergreen4
IRC: EvergreenTree
In-game: Evergreen

Re: Mineteset as global virtual world

by Evergreen » Thu Jun 26, 2014 11:55

jimy wrote:We have a virtual world with thousands of servers. OK now why not make a single virtual world? What I propose is difficult, but I think it would be possible to create links between servers to make continuous two worlds. For example, when I would go in a certain area on a first server, it instantly teleport me to a second server. And traveling in the opposite direction, I would stay on the first server. I think that would be easier between one world and another one server rather than between two servers.

The inter-server transport thing has been discussed already, and atm it just isn't possible. It is an interesting idea, but what's the point of having it between all the servers? What if a server owner doesn't want that?
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Mineteset as global virtual world

by thetoon » Thu Jun 26, 2014 12:29

First of all, you'd have to limit that to willing servers. Then, you'd want those servers to run the same mapgen (or at least mapgens aware of each other, e.g. each creating island(s) surrounded by sea), or else you'd have some really "interesting" seams between servers. Same goes for available nodes : you need to have the very same node definitions on all hosts.

Then, you'd want to tackle authentication. Just because I'm known by server A doesn't mean server B can't trust me. Two paths here : either a central, shared, auth server (every server you connect to would actually check your credentials against that central auth server) ; or some crypto-way of building trust between servers (think of Kerberos-like tokens that each server could emit and check).

The inter-server protocol isn't absolutely mandatory, as long as there's a way for clients to pass the information from one another in a secure and tamper-proof way.

Let's say you've logged in SRVA, where you have a regular (login+pass) account. At one point, you encounter a special "cross-server-teleporting" node, which starts the following process :

* serialize your inventory (and player status, and all)
* add information to where you should spawn (server, node's coordinates and facing)
* generate some crypto-token with a (short) TTL and add it the the former
* sign the whole thing with SRVA's public key
* give the signed thing to the client

Then the client would have anything it needs to :

* check signature for the whole blob, if it wants to
* connect to the server mentionned in the blob (no login or password involved here)
* pass it the whole blob

SRVB (if that's how we call it) would then :

* check signature for the whole blob (mandatory)
* deserialize it
* spawn a newly created player with information pulled out of the blob.
 

User avatar
Casimir
Member
 
Posts: 1161
Joined: Fri Aug 03, 2012 16:59
GitHub: CasimirKaPazi
 

twoelk
Member
 
Posts: 1307
Joined: Fri Apr 19, 2013 16:19
Location: northern Germany
GitHub: twoelk
IRC: twoelk
In-game: twoelk

Re: Mineteset as global virtual world

by twoelk » Thu Jun 26, 2014 17:18

yes this really has been discussed multiple times.

thetoon wrote: . . .
* serialize your inventory (and player status, and all)
. . .


eh? Yeah put my inventory full of mese and diamonds on a creative server and smuggle that onto a survival server?
The only things that should be safe to take accross by default would be player identity and maybe personal skin texture, nothing else.

jimy wrote: ... when I would go in a certain area on a first server, it instantly teleport me to a second server.

Ha! there we have the impossible word "instantly" !

Yet lets study a hypothetical usecase. Imagine playing on a server running Minetest Nostalgia. Now you decide to travel to another server. Let's just assume for this example each server world is surrounded by water making each server world a set of islands. Now these servers could be part of a "grid" as some of the OpenSimulator worlds are. So we might come to a stretch of ocean that we begin to traverse. We might enter a transition zone that is not part of the server anymore but serves as some sort of limbo for avatars while the servers comunicate a handover. Maybe you will have to give some sort of customs officer your ingamename and password to cross the virtuall border.
Here comes the tricky part.
You have decided to go to a server running the Dreambuilder game. So almost nothing of the previously loaded game can be reused. All mods, textures, models and loads of other stuff will have to be downloaded to your client. Have you ever connected to a mod-heavy server? This might take half an hour or more, depending on your internet connection. So there you are in the middle of nowhere waiting to join the new server. Of course you arrive with empty pockets because almost none of the nodes from the old game are known here. Well then lets go to some transportation device and hop/teleport to some other server running the realtest game. And once more you will have to wait while the new game is downloaded again. Of course we have a completely different set of nodes on this server. Maybe an achievement system is active on this server and you become a master of all arts. Time to travel on, so lets join the next server. You cast a spell that includes your ingamename and passwort and transpose yourself to the next server. After several minutes in magicnowhereland you finally arrive in a world run by the Adventuretest game and you are a novice again. The achievement system is incompatible and again you can only bring along your name and maybe the skin, just like the Terminator.

As much as I like the idea, especially the islands in a vast ocean version, I don't think it would be like most people would want it to work. The servers are very different. Each has a unique set of mods with a vast variety of nodes and most use different Minetest versions to run the server. Travelling between servers would probably be not any faster than using the public server list in the main menu and for many reasons you will and should be not able to take your personall inventory and privileges along, just as any achievement or leveling status. I guess this would make such a possabilty rather useless for what most people that request this have in mind to using it for ;-P

Nevertheless, having access to the public server list from within a running game might be an interesting mod yet to be made.
 

thetoon
Member
 
Posts: 106
Joined: Tue Dec 11, 2012 12:55

Re: Mineteset as global virtual world

by thetoon » Fri Jun 27, 2014 14:26

twoelk wrote:eh? Yeah put my inventory full of mese and diamonds on a creative server and smuggle that onto a survival server?
The only things that should be safe to take accross by default would be player identity and maybe personal skin texture, nothing else.


I do second that, as long as servers aren't aware of each other. Problem is : if servers aren't, it will be hell to ensure continuous mapgen. So basically, if you want to link servers together as that guy described (i.e. seamless), you NEED your servers to be thoroughly synchronized on a number of things : mapgen, auth, ... At that point, it's safe to assume nodes definitions could be synchronized as well, and as such it's not much more work to transfer inventory.
 

User avatar
HolyPhoenix
Member
 
Posts: 27
Joined: Sun Mar 31, 2013 18:20

Re: Mineteset as global virtual world

by HolyPhoenix » Fri Jun 27, 2014 16:19

I wouldn't mind this. Each server could be setup to generate a certain section of the world. So one could do an icy mountainsides region and another a vast ocean underworld. I would say that this shouldn't be the only option though. I wouldn't necessarily want all of my servers to be connected to other servers, and I wouldn't necessarily want only a single vast server.
 

jimy
Member
 
Posts: 25
Joined: Mon Mar 12, 2012 22:15

Re: Mineteset as global virtual world

by jimy » Sat Jun 28, 2014 13:40

Evergreen wrote:
jimy wrote:We have a virtual world with thousands of servers. OK now why not make a single virtual world? What I propose is difficult, but I think it would be possible to create links between servers to make continuous two worlds. For example, when I would go in a certain area on a first server, it instantly teleport me to a second server. And traveling in the opposite direction, I would stay on the first server. I think that would be easier between one world and another one server rather than between two servers.

The inter-server transport thing has been discussed already, and atm it just isn't possible. It is an interesting idea, but what's the point of having it between all the servers? What if a server owner doesn't want that?

If a server owner dosen't want that, he could set "IST_enable = false" in his minetest.conf
Sorry about it is not possible.
 

jimy
Member
 
Posts: 25
Joined: Mon Mar 12, 2012 22:15

Re: Mineteset as global virtual world

by jimy » Sat Jun 28, 2014 13:58

So,

* mods and server versions must be same
* mapgen sould be same (It can be possible to have multiple magens for 1 world, I know it because I have a minetest world I have from minetest 0.3)
* connection must be good (but mods could be loaded on the client when the player come near the "transworld zone", a long time before the travel)
* an inter-server protocal is necessary (but it souldn't be very big, because of a short number of transactions)
* server owners can define if he wants his server could connect itself to others very simple, simple option in minetest.conf
* players profile must be copied from the gateway server to others connected

I think the world transportation can be done by the client. The client him-self can ask a new parallel connection to an other server, and shown to the player several worlds in the same OpenGL scene.
 


Return to Partly official engine development



Who is online

Users browsing this forum: No registered users and 1 guest