Easy networking in PyGame

Szymon Wróblewski

Short description: Basing on idea from PyGame GSoC 2012 list, I would like to propose a creation of easy networking module for PyGame. Basic idea is to write something similar to PodSixNet library, but better integrated with PyGame.

Szymon Wróblewski
Contact information
Phone number: +48 605370885

Email: bluex0[at]gmail.com

IRC: bluex (freenode)

Skype: bluex0

Time zone: UTC +02:00 Warsaw (summer time)
Preferred language: English or Polish

Time commitment:

I plan to spend the summer break time on GSoC.

Although beginning of GSoC collides with my semester schedule (regular classes ends May 24th and exams ends June 5th), I’m going to split time over studying at mornings and developing at evenings to fulfil expected work time.

Programing experience:

I've been programming for about 11 years. I know C/C++, Java, C#, Python well and I know how to use HTML, JS and CSS. I have experience developing small games, as projects for studies, mainly written in Cocos2d and Pyglet libraries, I’m also familiar with PyGame library. I develop plugins for Minecraft server - Bukkit as exercises with Java and Git, write scripts in Python whenever I want to speed up any work or process some text.

PyGame experience:

SDL was the first graphic library, which I learned. After discovering Python it was obvious path to start using PyGame. My first bigger project in PyGame was creating some kind of library to make simple games like snake or tetris in window similar to old brick game handheld, because of the large amount of work at school I dropped this and after that I switched to using Cocos2d.


About project

Basing on idea from PyGame GSoC 2012 list, I would like to propose a creation of easy networking module for PyGame. Basic idea is to write something similar to PodSixNet library, but better integrated with PyGame.

My first idea is to use asyncore to send encoded dictionaries with the action and user objects. Received data will be handled by either calling methods corresponding to action defined in dictionary, or pushing events to PyGame event queue. However, I'm open to any other community suggestions.


The finished module will contain a fully functional system for sending and receiving messages over the network, while providing a minimum set of required functions, to do so.


This should allow for the creation of different types of multiplayer games and applications, fulfilling the need for networking in PyGame.


Time line

  • weeks 1-2
    • Determining requirements and consulting, with mentors and community, choice of best way to handle network communication
    • Examination of similar available open-source networking modules
    • Creating a document outlining the results of research and project objectives
  • weeks 3-4
    • Creating prototype API classes based on suggestions of mentor and community
    • Writing basic tests
    • Creating initial documentation
  • weeks 5-6
    • Creating internal classes of module
    • Implementation of defined API methods
    • Extending documentation
  • weeks 7-9
    • Writing extended tests
    • Initial implementation of internal classes and methods
  • weeks 10-12
    • Final implementation of internal classes and methods
    • Creating documentation of internal classes and how to use the module


Community feedback

Project was discussed with contributors and mentors on #pygame IRC channel.

Their comments helped in creation of this document and presented possible problems I will face during the writing of this module.