Connecting the servers.

Send your ideas and suggestions here.

Moderator: Board moderators

Post Reply
Pathor
Luser
Posts: 43
Joined: Wed Jul 02, 2003 11:19 am

Connecting the servers.

Post by Pathor »

It would be nice if the different servers were more connected:
First of all chat-channels among the servers, so a newbie on an empty server could get some help from players on other servers without having to connect to some irc server.
Among that, have "buddy lists" and distributed who lists so one can, without leaving the game, see who's connected to another server.
Having the mail systems connected would also be nice.
Some servers might want to federate their guilds and characters so you could move from one server to another with the same character. The servers would of course have to have the same xp/skills policies and such.
Ryo
Forum Fanatic
Posts: 752
Joined: Mon May 19, 2003 9:16 pm
Location: Paris, France

Post by Ryo »

Can't really work.

Different servers have different xp tables, different settings (permanent death, ...), different maps (Cat2 has specific maps Metalforge does not have, to name 2 of the "big" servers), and so forth.

Also how do you "transfer" characters from one server to another? What's to prevent someone to have his local server, tweak player to have impossibly powerful items, then ask for transfer to another server?
cavesomething
Forum Fanatic
Posts: 852
Joined: Sun Jun 13, 2004 2:07 am
Location: Hemel Hempstead

Post by cavesomething »

Your post is really two points, so I'll answer them seperately.

1) chat:
actually, parts of that could be done in the metaserver.

if there were a 'global' chat then the server would need to send the message to the metaserver, and then have the metaserver propagate it down to the servers, who could then new_draw_info(NDI_ALL) it.

an alternitive would be to have the servers connect to an irc server, and reserve a command for messages to be sent to and returned from an irc channel #crossfire-users? This is roughly what azureus (the bittorrent client) does. Maybe a (heavily) hacked jabber server could do this.

A client side script could achieve this, indeed rednaxela has a client script that sorta works between crossfire and irc. - then though you need to know, how do you define which servers you connect to? I can quite easily see some server admins having objections to wasted bandwidth caused by a script spamming it with draw_info commands the whole time.

2) global who and buddy lists & shared players.
quite how you would get the global list of players online (or whether you would even want to) I am unsure. This would be needed (at least server side) before a buddy list idea could be used. Other, lesser mmorpg's (read: runescape) have this simply because a single entity controls all the servers, and can do this.

The same issue prevents generic sharing of character files:
Crossfire will never have centralised control of all servers, and short of having treacherous computing hardware running signed server binaries and encrypting everything with secret keys (which I for one would oppose vigourously) it is not possible to verify that a server hasn't fiddled with player files. In that case then, the issue is trusting the admin.

Nonetheless, mikee (admin of cat2) has been known to import character files from other servers before, this is however hard enough that he doesn't do this often.

Possibly then there is some merit having a command to get a server to send a player a signed foo.cfplayer file (a special tarball) and letting a server read those directly. (additional bonus, getting such a thing in now would make the addition of a 'download source' command easier, and it seems like GPL3+ would let us use such a thing to stop the evil people behind the likes of graal online) also that would be useful for testing....

Certainly some servers may wish to combine their players/guilds etc. and there is no technical reason why that can't be done now (NFS share the servers var/ directory) however, currently there are no servers that
1) are doing this.
2) show any inclination to do this.
3) have an overwhealming need to do this - even metalforge seldom reaches 25 players, this doesn't massively stretch the bandwidth available to it (although see the mailing list in the last week for (another) discussion related to this point).
Pathor
Luser
Posts: 43
Joined: Wed Jul 02, 2003 11:19 am

Post by Pathor »

Muds have solved these problems for years. Hardly any reason to invent new protocols (or even implementations for chat & distributed who for that matter since there is free software that is adaptable), except of course for for the crossfire unique things like transfering of characters. Some of the mud protocols have been designed for extension, so extending them to transfer a character wouldn't be hard (it is after all just a textfile).

As for transfering of characters. Yes, I know there are differences in policies. Those servers federating characters would of course either have to have the same policies or they would need algorithms to transform a character while transfering it. Some might not allow transfer of objects, some skill might be disabled in some server etc. But that is up to the server admins to decide, if and with who they want to federate with and in what way. In one federation permadeath would be on. In another perhaps the permadeath stat is given to characters if they gain xp on such a server and then they get to keep it even on non-permadeath servers. In a third federation players can transfer to the permadeath server but now away from it. Heck it can even be so that you can transfer/duplicate your character once into each server.

As for different maps, that is not much of a problem. If you are on server X you can't see map Y, but so what? If map Y gives the player an "unfair" advantage over those that don't go to map Y, they can either go to the server that has it or the other server admins wouldn't accept transfers of characters to/from that server until that map is removed (or installed in the other servers).

Fact is that many servers are often empty. Servers far away (network wise) have lag, making them more or less unplayable. If these ideas are implemented, more people could play crossfire with others. If a server starts to lag, one could transfer to another. If the only non-lagging servers are empty, one could at least chat with other players.
Lauwenmark
Junior member
Posts: 111
Joined: Thu May 15, 2003 9:27 am
Location: Sélentine, I. Pref. Occ.

Post by Lauwenmark »

(Sorry that I didn't notice this discussion before...)

The problem really aren't at the server<->server communication level itself. Transferring a character file from one server to another is technically trivial - those are simply text files.

The main issues I see with inter-server communications are:

Security: I am DM on server A, but not on server B. If A and B were interconnected, I could create an uberpowerful character on A using my DM powers, then transfer it on B. Looks unfair to me.

Possible solution: establish a "trust network". Not an easy task, I'd say, and definitely requires in-depth thinking.

Name clash: I play "gros" on servers A. I move my character on server B. Then my little brother creates a "gros" character on server A to annoy me. Result: I cannot transfer back from B to A, because there is already a character of the same name used.

Solution: Either allowing character renaming, or "reserve" a character name across all interconnected servers.

Unavailable objects: I own a Klibanese sword on server A. Server B doesn't have the matching archetype. When transferring the character from A to B, I'll loose that object (or will get a broken one).

Solution: Ensure that all servers use the same set of archetypes. That's easier said than done, because there is currently no way to compare them in an easy way. Maybe using something like an MD5 sum would do the job ?
Fact is that many servers are often empty. Servers far away (network wise) have lag, making them more or less unplayable. If these ideas are implemented, more people could play crossfire with others. If a server starts to lag, one could transfer to another. If the only non-lagging servers are empty, one could at least chat with other players.
Sure, but you're missing the relevant point: why many servers are often empty. This is simply because there are not enough players to fill them. Before thinking about what we should do to manage lots of players, I think we should first consider how to attract that many players. It is simply not worth creating complex character sharing systems if we never have more than 25 players - the energy is better spent in other areas.
Au Nom de Son Auguste Majesté,

Lauwenmark Kadensanni Hento Akkendrittae
Général en Chef de l'Armée de l'Ouest.
bort
Forum Junkie
Posts: 607
Joined: Sun Jun 20, 2004 9:40 pm
Location: LG

Post by bort »

For Server to server comminique,
a hacked jabber server or irc server sounds reasonable.

On the issue of names:

- It would be something like:
Gross[cat2.dynu.ca] chats:
and
Gross[crossfire.metalforge.net] chats:

Not much of a Big problem, no?
lordyoukai.DA
My wraith is cooler than your dragon.
Lauwenmark
Junior member
Posts: 111
Joined: Thu May 15, 2003 9:27 am
Location: Sélentine, I. Pref. Occ.

Post by Lauwenmark »

For Server to server comminique,
a hacked jabber server or irc server sounds reasonable.
Actually, you don't really need a "hacked Jabber server" - implementing the Jabber (or IRC) protocol in the Crossfire client, so it effectively serves as a specific Jabber/IRC chat client, is probably what you'd want to do. It isn't really technically difficult - but simply, it is probably considered as very low-priority right now (there are tons of other, more important (IMO) client issues to solve first).
On the issue of names:

- It would be something like:
Gross[cat2.dynu.ca] chats:
and
Gross[crossfire.metalforge.net] chats:

Not much of a Big problem, no?
(It was "gros" with a single 's', but anyway :) )
No, it is not a problem for chatting (inter-server chat isn't that difficult to achieve). On the other hand, I don't think it addresses any of the name-clashing issues that can arise with inter-server data exchanges.

Inter-server chat is rather easy to achieve. Exchanging game data (objects, players, maps), on the other hand, is much more difficult.
Au Nom de Son Auguste Majesté,

Lauwenmark Kadensanni Hento Akkendrittae
Général en Chef de l'Armée de l'Ouest.
Post Reply