[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] Networking?
On Monday 19 November 2007 19:08:49 Jason Ward wrote:
> I want to make my game playable over the network and if possible the
> internet.
> For the network it must support more than 2 computers and be realtime
> Would the sockets library in python solve all my needs?
Simple outline of a networked pong game (just a networked bouncing ball :-)
using Kamaelia for networking and pygame:
http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/MPS/Pong.py?revision=3744&view=markup
To run as a server:
# ./Pong.py server
To run the client (on the same machine)
# ./Pong.py 127.0.0.1
The server runs the game model and publishes to all clients. These need to be
serialised, so for the moment the message ("ballpos", 100, 200) is serialised
as "ballpos|100|200X". The "X" is needed as a record separator. This makes
the client slightly more complex. (Since the client needs to demarshall such
messages)
Other than that, that code is really divided into 4 parts.
* A PygameComponent which simplfies using pygame. (To be merged at
somepoint onto the mainline)
* A component to handle display of scene objects
* A component to handle updating the system model
* A bunch of components declarations / pipelines to orchestrate behaviour.
The code in that example uses some newer features of Kamaelia (mainly to
assist readability), so if you want to try that code, you'll need to check
out my scratch branch:
svn co
https://kamaelia.svn.sourceforge.net/svnroot/kamaelia/branches/private_MPS_Scratch
Then install Axon (which Kamaelia depends upon, then install Kamaelia) :
cd private_MPS_Scratch
cd Axon
sudo python setup.py install
cd ..
cd Kamaelia
sudo python setup.py install
Hope its of interest :-)
Michael.