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.
