Differences between revisions 4 and 9 (spanning 5 versions)
Revision 4 as of 2006-04-24 06:45:04
Size: 1586
Editor: d220-238-73-98
Comment:
Revision 9 as of 2008-11-15 14:00:50
Size: 120
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Write a simple network library which integrates with the pygame event queue.

== Basic requirements: ==
 * Seamless reconnection
 * Support TCP and UDP
 * use select based non blocking IO
 * network library is iterated manually (so we use our own event loops)

== Potential API: ==
 * connect(url, onConnection, onLostConnection)
 * send(conn, data)
 * recv(conn, num_bytes)
 * listen(url, onConnection, onLostConnection)
 * poll()



== Things not to worry about: ==
 * Object serialization

== NOTES, api part 2? ==
I think I like the url idea. We could not worry about connections at all by using urls. Optional carring about connections could be implmented.

Two or three example games should be implemented to test the API. Something turnbased. Something with lots of action. Something with lots of connections (eg > 100 players).

UDP and ENet are interesting things to consider for the api. UDP is connectionless.


All bits of data could be strings. Serialisation should be done outside of it... however perhaps we can add a safe basic serialisation so that people don't use pickle.

The event queue api could event be used for some of it.
{{{
pygame.events.post(e)
events = pygame.events.get()

for e in events:
    if e.type == NET:
        if e.what == NET_DATA_IN:
            print e.channel
            print e.data
        if e.what == NET_CONNECT:
            print e.ip
            print e.port
            print e.sequence_id
            print e.channel
            pass

}}}
This page has been moved to SummerOfCode/PythonLibraries/SimpleNetworkingForPygame

Simple Networking For Pygame

This page has been moved to SummerOfCode/PythonLibraries/SimpleNetworkingForPygame

SummerOfCode/SimpleNetworkingForPygame (last edited 2008-11-15 14:00:50 by localhost)

Unable to edit the page? See the FrontPage for instructions.