[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Networking



Well I've a petitions (or suggestions) I'm doing a online real-time game and have to solve that problem...

I'll suggest you to do the thinks that are necessary from TCP to use over UDP, that's:

A packet indexing method (to mantain the order of the packets in the reciber, it can be done by inserting extra bits in the head of each packet)
A CRC to find errors.

To make online games, you prefer UDP vs TCP because UDP supports multicast (well, the ISP's normally no, but the protocol yes) and because the lost/corrupted packages are resended by stoping the queue (and that's no aceptable for a game in real-time. In that sort of games you prefer to recognize a damaged package and ignore it, TCP sends to emissor a ACK of each package and THEN emissor sends the next one or resends the last one if something went wrong... it sucks...). So the CRC will be a great idea.

The order: normally, I send to clients from server orders to draw in screen (draw image A in screen coords x,y, image B in x1,y1...) but the order must be known in the client (sending info in each package saying: now there is the info of tho next screen to draw, the number X: draw a image A in screen coords x,y, image B....) so if the packet of the screen number X+1 arrives to client before the X, the client will draw the X+1 and ignore the X.



2011/3/6 Joseph Lewis <joehms22@xxxxxxxxx>
Hi,

Does pygame have a networking module?  There doesn't seem to be anything about networking in the documentation or subversion.

If there is no module I was thinking about building one through GSOC 2011, if pygame is participating of course, with some general features, such as:
  • Chat (possibly with expletive filtering).
  • A way to send objects transparently across the network.
  • Possible multicast.
  • A high level client server model to allow for quick setup of certain kinds of games (i.e. turn based)
  • Any other cool suggestions you have.
Cheers,
    Joe

--

Message Sent By: Joseph Lewis
Public Key: [0xF8462E1593141C16]



--
Nota: Tildes omitidas para evitar incompatibilidades.

:wq