Difference between revisions of "Summer of Code 2011 Project Ideas"

Jump to navigation Jump to search
added PySoy ideas
m
(added PySoy ideas)
(3 intermediate revisions by the same user not shown)
Line 11: Line 11:
The unix philosophy of "write programs that do one thing and do it well, write programs to work together" is very relevant to building an open social network.  
The unix philosophy of "write programs that do one thing and do it well, write programs to work together" is very relevant to building an open social network.  


XMPP, like Unix's design, gives us a nice interface to build components that handle tasks of work like calculating location, delivering media, serving a directory of channels.
XMPP, like Unix's design, gives us a nice interface to [http://m.buddycloud.com/tmp/proofs/buddycloud%20architecture.png build components that handle tasks] of work like calculating location, delivering media, serving a directory of channels.


New buddycloud clients will have "plugins" that are really just addresses to xmpp components:
New buddycloud clients will have "plugins" that are really just addresses to xmpp components:
Line 129: Line 129:


== Gajim ==
== Gajim ==
[http://gajim.org Gajim] is a jabber client written in pyton and GTK. If you're interested in this (or other) project, please jump into the [xmpp:gajim@conference.gajim.org?join gajim@conference.gajim.org] room and talk to Asterix.
[http://gajim.org Gajim] is a jabber client written in python and GTK. If you're interested in this (or other) project, please jump into the [xmpp:gajim@conference.gajim.org?join gajim@conference.gajim.org] room and talk to Asterix.


=== Stream Management ===
=== Stream Management ===
* '''Summary''': Implement all [http://xmpp.org/extensions/xep-0198.html XEP-0198]
* '''Summary''': Implement all [http://xmpp.org/extensions/xep-0198.html XEP-0198]
* '''Difficulty''': Medium
* '''Difficulty''': Medium
* '''Details''': This extensions has to be implemented at the lowest layer of Gajim: XMPP parser. It requires a carefull implementation to not break things, but should not be a so hard project.
* '''Details''': This extensions has to be implemented at the lowest layer of Gajim: XMPP parser. It requires a careful implementation to not break things, but should not be such a hard project.
 


== Prosody ==
== Prosody ==
Line 149: Line 148:
* '''Difficulty''': Medium
* '''Difficulty''': Medium
* '''Details''': Collect, prepare and present realtime statistics of a running prosody instance in numbers and fancy graphs. The system should be easy to extend and could include metrics like, memory usage, stanza throughput per connection, connected clients and so on.
* '''Details''': Collect, prepare and present realtime statistics of a running prosody instance in numbers and fancy graphs. The system should be easy to extend and could include metrics like, memory usage, stanza throughput per connection, connected clients and so on.
== PySoy ==
[http://www.pysoy.org/ PySoy] is 3d cloud game engine for Python 3.  The game engine uses XMPP as an open game network in much the same way as the closed Steam, PSN or XBox Live networks.  Interested students should join #PySoy on irc.freenode.net and/or [http://lists.pysoy.org/mailman/listinfo/pysoy-dev pysoy-dev@pysoy.org].
=== Chat Widgets ===
* '''Summary''': Add new widgets (soy.widgets.*) specifically designed for XMPP IM between players both in and out of game.
* '''Difficulty''': Easy
* '''Details''':  Support for buddy lists, chat windows, and [http://xmpp.org/extensions/xep-0050.html ad-hoc command execution] would make implementing a network game much easier.  These widgets should be implemented in a generic manner so they can be used for other purposes and modify/extend soy.net classes to be used with them.
=== XMPP Client Plugin ===
* '''Summary''': Write a Soy plugin for a popular XMPP client, such as Empathy or Pidgin
* '''Difficulty''': Easy to Medium (client dependent)
* '''Details''': PySoy is designed such that the Python game code runs on a server and Soy clients, using the same libsoy backend, connect to the server such that games can be played without downloading them.  One goal is to allow users to launch a game one of their friends is playing directly inside their XMPP client.  As libsoy uses glib/gobject, writing a plugin for a GTK-based XMPP client may be easiest.  There's already an early example plugin for web browsers as a starting point, but some additional integration will be needed.
=== Jingle Voice ===
* '''Summary''': Implement support for player-to-player voice chat using XMPP/Jingle.
* '''Difficulty''': Medium
* '''Details''': Using libraries we already depend on (loudmouth, libnice, libspeex, openal), add voice support support such that players can chat voice with other players and friends who aren't playing the same game but are also using an XMPP/Jingle client with speex support.
34

edits

Navigation menu