Complete.Org: Mailing Lists: Archives: freeciv-dev: June 2002:
[Freeciv-Dev] Re: Chat Functionality with Jabber
Home

[Freeciv-Dev] Re: Chat Functionality with Jabber

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Reinier Post <rp@xxxxxxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Chat Functionality with Jabber
From: Adam Theo <theo@xxxxxxxxxxxxx>
Date: Mon, 10 Jun 2002 23:07:38 -0400



Reinier Post wrote:
On Fri, Jun 07, 2002 at 11:36:51AM -0400, Adam Theo wrote:
Jabber is the XML protocol. It is very modular and lightweight since you choose what features and functionality to include in the protocol as you use it. The only bloat it has is from the simple fact it is XML, which is not the most streamlined of computer languages. Even with that, Jabber is a fast, stable, and resource-easy platform. The post popular server, JabberD (also called JOSS) [http://jabberd.jabberstudio.org], can easily handle up to 100 users online at once over a ISDN line and on regular desktop computer hardware. The jabber.org server handles an average of 500+ users at once on decent server hardware (and I think the website also runs on it, too). I can try to get hard stats, but this should show that Jabber is more than able to keep up with FreeCiv's small scale.

For chatting, Jabber looks like a very good idea.
For client/server gameplay, it probably isn't.

By client/server gameplay you mean the actual game data between clients, right? In that case, possibly not, yes, although I will tackle that at a later date if the Jabber for chatting part happens. Jabber is quickly becomming a very feasible generic data transport, even better than HTTP, the current standard transport for web services and basic network communication. Take a look at DotGNU [www.dotgnu.org] for example. It has recently endorsed Jabber as a generic data transport alongside HTTP, and from the way many of the developers are talking, Jabber is likely to have a bigger place in DotGNU than HTTP.

> [...] Freeciv
> as a plug-in to a chat system.  Some chatters would get
> together, agree on the settings, and start a Freeciv game,
> at which point everybody would get a Freeciv client and the
> Freeciv server would start the game.  Does Jabber support this?

With a bit of programming work this can be done. The Jabber protocol doesn't forbid it in any way, and is in fact extensible for reasons just as this. The only work needed would be to get a couple of existing Jabber clients to "recognize FreeCiv" and send, receive, and act on commands it gets through chats.

Do they already "recognise" chess or some other game in this way?
I used to play chess on ICS and it had exact;ly the same problem
of mixing a fairly poor chat interface with generic game management
functions and chess-specific functions.  It would be nice to get the
chat functionality for free, and share the game management functions
with other games ias far as possible.  As far as the Jabber interface
is concerned, Freeciv should be equal to any other multiplayer game,
say, Risk or QUake.

Yes, games over Jabber are already starting up, and not just for the chat functionality. Take a look at the Vista Jabber client by i3connect [http://www.i3connect.com/vista.html]. It allows the users to play chess and other games over the Jabber platform, by routing the gama data instantly and reliably (and of course securely) between players. As long as the game data is text-based and not in binary format, Jabber can do it. Even the binary aspect will be soon solved in a matter of months, since there is a heated debate going on right now on how to best do binary data, file transfers, and other out of band data over Jabber. If you are interested, take a look at the JDev archives for the past week or two [http://mailman.jabber.org/pipermail/jdev/2002-June/thread.html] (the "File Transfers" thread).

This is just an idea, I can't actually help out with code here.

Understood. One of the great things with using Jabber as I said before is that there are already many libraries and developer tools to make using Jabber a snap. Is FreeCiv primarily written in C? If so, then I'm sure I can qiuckly find many good GPL'ed libraries and codebases to use. Check out JECL [jecl.jabberstudio.org] and Jabberoo [jabberoo.sf.net] for starters. Also browse through www.jabbercentral.com and www.jabberstudio.org (Note: browsing the CVS shows alot more projects than are on the index page) for some other good Jabber projects.

Also, here's a quick list of client-side features that Jabber could bring to FreeCiv:

* Ability for XHTML formatting, if you want it. And the good thing is, *not* having XHTML doesn't have any of the bloat of the XHTML protocols, if that makes any sense. * Ability for IRC-style commands like /me and /topic, although you should note these are strictly client-side issues, the protocol itself doesn't get bogged down in extranneous things like this. But there are plenty of clients that can provide good examples of how to impliment these sorts of things. * Soon, the ability for themeable, cross-client emoticons and "genicons" in Jabber clients. Meaning emoticon graphics can be shared and traded by users of different Jabber clients like WinAmp and XMMS skins [www.theoretic.com/?Emoticons_And_Genicons]. If you want this sort of thing.... * Non-chat commands can be easily added to FreeCiv by using Jabber's X-Tag and X-Namespace extensions. This helps make FreeCiv future-proof, so the developers don't have to seriously re-vamp part of the code base everytime a major feature is added to the protocol. More time can be dedicated to the code implimentation itself.

If you can think of any other features or issues which FreeCiv might like, tell me and I'll reply with whether Jabber can help or not.

--
    /\  Adam Theo, Age 22, Tallahassee FL USA
   //\\   Email & Jabber: theo@xxxxxxxxxxxxx
  //  \\  (Boycotting AOL, therefore no AIM or ICQ)
=//====\\=  Theoretic Solutions: http://www.theoretic.com
//  ||  \\     "Bringing Ideas Together"
    ||      Jabber Protocol: http://www.jabber.org
    ||         "The Coolest IM on the Planet"
    ||  "A Free-Market Socialist Patriotic American
    ||      Buddhist Political Philosopher."



[Prev in Thread] Current Thread [Next in Thread]