Chapter 8. Traveling system

When client program connects to specified port of server first of all it needs to give a request for room to join. Room is just a term describing some location to join. The only reason of it's existance is ability to enter more than one location on single port. So it can be open area or something else, not just closed room.

While traveling client can recieve a teleport request (during physical traveling, navigating 2D menu or else). These are simply coordinates for next destination consisting of protocol (UDP or TCP as transport and SSL or nothing on user level), host (name or IP address), port and room name. Technically one can disobey teleporting but, server can just stop transmitting any updates of movenent, so client will be "frozen". Something that server should care about is visual handling of teleporting. Client works like that: when it gets a teleport request it creates new connection in background and only when it's joined into specified room, active connection is closed and new connection becomes active. Only since that moment graphics, audio and input are bound to new connection. It's wise to keep in mind that client can be in 2 places at on moment.

It would be also a great idea to host some servers where visual navigation system will be stored. For example, it can be visualized like Balmora city from Morrowind. Something where anyone can register and represent gateway to one's server with some building, magical teleport or else.

Since this will be implemented there will need in character or set of character in cyberspace. It's like cyber ego. For example one can create a model of Nord with Nordic Claymore, then animate it and put it on server in specified standart. So everyone who has joined location where he's present will be able to see his own model and animation. Models can be location context oriented. That means when some guy enters postnuclear location his model will be futuristically dressed full-of-guns man with severe face, but when this guy enters virtual Lorien he'll be smart-faced High Elf.

These servers will also keep certificates of characters so if you are registered character, noone will be able to pass himself as you and everyone will be able to check if you are really you. Well, not everyone actually. Only if server provides you certificate or if you use encrypted client-to-client communication (this is encrypted connection from client to client not physically direct, but going also through server, this thing allows to send personal encrypted information even if both clients are behind gateway, of couse server can't decrypt this information).