[Adium-devl] [Gaim-devel] Gaim integration with gnome-games

Henry Jen henryjen at ztune.net
Tue May 30 21:31:17 UTC 2006


David Smith wrote:
> 
> On May 30, 2006, at 10:14 AM, Colin Barrett wrote:
> 
>> On May 30, 2006, at 6:49 AM, Andreas Røsdal wrote:
>>
>>> Luke Schierer wrote:
>>>> On Tue, May 30, 2006 at 09:40:23AM -0500, Richard Laager wrote:
>>>>
>>>>> On Tue, 2006-05-30 at 10:21 +0200, Andreas Røsdal wrote:
>>>>>
>>>>>> I'm wondering if there would be any interest in implementing
>>>>>> support for launching network games from Gaim? Gnome-games has
>>>>>> network games (gnibbles and iagno, and more planned), and it
>>>>>> would be very convenient for users to be able to launch network
>>>>>> games directly from Gaim. On Windows, this is already supported
>>>>>> using MSN Messenger launching minesweeper network games.  Could
>>>>>> the current plugin system for Gaim support something like this?
>>>>>>
>>>>> Almost surely. If not, we can add hooks as necessary.
>>>>>
>>>>> Richard
>>>>>
>>>>>
>>>>
>>>> I am not opposed to this, but I'd rather it be a plugin than in gaim
>>>> proper.
>>>>

[also CCing jxta community, follow up this discussion should only on 
gaim devel list and/or jxta-c discuss list]

This is an interesting idea and I had been exploring that idea as well.

We had a project call jxta-c(http://jxta-c.jxta.org), which is a C 
implementation for the JXTA P2P 
protocol(http://wiki.java.net/bin/view/Jxta/WhatIsJxta) under Apache 
license.

Within the project, we implemented a socket tunneling capability and 
demonstrated a video playback through JXTA p2p network with legacy 
socket application(VLC, http://www.videolan.org) unmodified.

With the same capability, we can tunnel the game through a local socket 
which in turn relays data over JXTA.

I had spent some time to work on a JXTA plugin for gaim, which now is 
running with CVS tree to support group chat with 
MyJxta(http://myjxta2.jxta.org/) application. However, the end goal is 
to evolve the plugin into a p2p collaboration foundation with all 
different IM networks, as JXTA defines a pluggable authentication
and access control, it can be easily adapted over an existing IM 
networks, from which self-organized, scalable secure peer to peer 
modules can be built.

We are open to release the plugin under GPL/LGPL license, while it can 
linked against the apache licensed JXTA-C and APR(Apache Portable 
Runtime, http://apr.apache.org) library, which should be OK as those 
libs can be separately distributed with the operating system but I am 
not a lawyer.

Cheers,
Henry

>>> Do you have any pointers about implementing such a plugin? So far
>>> I've found: http://gaim.sourceforge.net/api/c-howto.html
>>>
>>> To start a network game using Gaim, it would have to:
>>> -Find the IP address of another user which also has Gaim.
>>> -When the users wants to play a network game, launch the correct
>>> game (eg. gnibbles),
>>> and give information to gnibbles about either starting a new
>>> network game, or connect to an existing game.
>>>
>>> I don't think there is a need for a gnome-games specific plugin,
>>> all that is needed is a general plugin for Gaim which
>>> can negotiate which game to start, and pass the appropriate
>>> parameters to the executable to the game knows which
>>> IP address to connect to.
>>
>> There was an effort done by some Adium contributors and developers to
>> create a similar protocol. I'm ccing the Adium Dev list this message
>> in the hopes that  they can provide you with some help and possibly
>> interop(?)
> 
>     Hi folks. I was one of the developers on the project Colin 
> mentioned. Our architecture was significantly different from the 
> proposed one, though, in both good and bad ways:
> 
> The primary difference is that all communication took place via IMs, 
> with the game plugin hiding game-related IMs from the user. Upside: easy 
> NAT traversal. Downsides: Rate limiting is evil, and IMs aren't suitable 
> for anything vaguely realtime.
> 
> If I were going to redesign it, it would consist of two, or maybe three, 
> parts:
> 1) a presence API along the lines of Galago that games could plug into 
> to provide their own in-game lists (why on earth are things like 
> battle.net not integrated with IM buddy lists?)
> 2) a client plugin that would launch games and provide an IP address (as 
> mentioned here)
> 3 (maybe) ) an API for communicating over Jingle streams or something 
> like them for games to use
> 






More information about the devel mailing list