Pygame: Difference between revisions
(...) |
m (Reverted edits by 96.243.172.63 (Talk) to last revision by 83.5.209.39) |
||
(16 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
{{Translations}} |
|||
⚫ | |||
⚫ | [http://www.pygame.org Pygame] is the most commonly used library for creating Python games. In design it is a wrapper around the Simple DirectMedia Library (SDL), which provides a low-level interface suitable for doing reasonably efficient 2D games. See '''[[Game development HOWTO]]''' or [[Pygame wrapper]] for details on their usage. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
* [http://dc.ubuntu-us.org/projects/gasp Gasp] |
|||
== Pygame on the OLPC XO == |
== Pygame on the OLPC XO == |
||
Work in progress allows Pygame via SDL to interact with the Sugar (GTK and DBUS) environment. Discussions and announcements normally occur on the [http://mailman.laptop.org/mailman/listinfo/games OLPC Games info/devel OLPC Devel list]. There is a Pygame-to-Sugar wrapper maintained for the XO called 'olpcgames'. To learn how to use it, see [[Game development HOWTO]]. See [[Pygame wrapper]] for documentation and caveats. |
|||
=== Libraries === |
|||
Work is also being done on game programming for the XO hardware. The following is an overview: |
|||
⚫ | |||
⚫ | |||
* Noah's wrapper allows for nested Pygame windows using a separate thread. It forwards GTK events and converts them to Pygame events. |
|||
* Pygame draws onto the screen and plays sounds. |
|||
* Things to avoid with Pygame: |
|||
** Avoid pygame 1.8 features; we probably won't ship with support. |
|||
** You can use pygame.font to draw text, but you should avoid it if possible because of internationalization. Pygame.font doesn't support many required internationalization features like text direction, so you should avoid fonts. (A Cairo backend for Pygame might fix this in the future.) |
|||
** Avoid surfarray, as a future Cairo backend will probably not support it with good performance. |
|||
** There's no CD drive, so you won't need cdrom. |
|||
* Native Pygame events: The regular keyboard keys work in Pygame right now through the wrapper. The mouse works as well (6/8/07). The d-pad and game buttons also do not work yet, but this will probably also be fixed soon; they will hopefully come in as joystick events. Window manager events may need to be forwarded (like resizing windows via the screen rotate button). |
|||
* Mesh: You will be able to interact with the mesh network. The mechanism is not yet defined. [check with J5] Probably you will be able to import a module that allows you to interpret some events from the Pygame event queue as mesh events, and you will be able to communicate through a presence API. |
|||
* Microphone and camera: Pygame doesn't have sound or video input on its own, but you can use GStreamer. Since in our wrapper, another thread is running a GTK main loop, you can construct a GStreamer pipeline and set it to running and it will be executed (magically?). You may need to make some effort to extract needed information from GStreamer. Update this page if you find out more. I doubt that microphone and camera events are likely to be directly integrated into a Pygame event loop, though. |
|||
* [[GASP]] |
|||
⚫ | |||
⚫ | |||
* [http://www.imitationpickles.org/pgu/wiki/index Phil's Game Utilitys (PGU)] |
|||
=== Introductive Reading === |
|||
* [http://rene.f0o.com/mywiki/PythonGameProgramming Pygame Programming] - Great 4 lecture introduction in display, images, sound, event handling |
|||
* [http://pygame.org/docs/ref/index.html Pygame Reference] - List of functions and their usage |
|||
* [http://www.pygame.org/wiki/tutorials Pygame Tutorials] |
|||
* [http://pygametutorials.wikidot.com Pygame object oriented tutorials] |
|||
== Rationale and Discussion == |
== Rationale and Discussion == |
||
Line 37: | Line 27: | ||
Games are an important part of learning. Projects based on pygame that can be helpful for children who want to develop games for themselves and their friends. |
Games are an important part of learning. Projects based on pygame that can be helpful for children who want to develop games for themselves and their friends. |
||
The idea is to develop a curriculum that teaches older kids |
The idea is to develop a curriculum that teaches older kids Game Programming for the OLPC using Python and Pygame. They can then write additional games/activities for the Childsplay environment for younger kids. |
||
Original email sent by Mamading Ceesay to Python-UK mailing list on Friday 20th May 2005: |
Original email sent by Mamading Ceesay to Python-UK mailing list on Friday 20th May 2005: |
||
Line 104: | Line 94: | ||
== See also == |
== See also == |
||
*http://lists.laptop.org/pipermail/games/ |
*http://lists.laptop.org/pipermail/games/ |
||
*[[Game development HOWTO]] |
|||
*[http://lists.laptop.org/pipermail/games/2007-April/000047.html state of the art |
*[http://lists.laptop.org/pipermail/games/2007-April/000047.html state of the art back in 2007-04-13] |
||
[[Category:Pedagogical ideas]] |
[[Category:Pedagogical ideas]] |
Latest revision as of 09:58, 23 May 2011
Pygame is the most commonly used library for creating Python games. In design it is a wrapper around the Simple DirectMedia Library (SDL), which provides a low-level interface suitable for doing reasonably efficient 2D games. See Game development HOWTO or Pygame wrapper for details on their usage.
Pygame on the OLPC XO
Work in progress allows Pygame via SDL to interact with the Sugar (GTK and DBUS) environment. Discussions and announcements normally occur on the OLPC Games info/devel OLPC Devel list. There is a Pygame-to-Sugar wrapper maintained for the XO called 'olpcgames'. To learn how to use it, see Game development HOWTO. See Pygame wrapper for documentation and caveats.
Libraries
There are a number of libraries written on top of the Pygame system which provide simple mechanisms for creating games of certain types. These libraries make it possible for relatively young children to write games and for older children to write games of sufficient polish to distribute to others.
Among the libraries written on top of Pygame that might be useful in setting up a Game development sub-curriculum (or simply in making it easier to develop games for the OLPC):
- GASP
- Pygsear
- Schoolsplay (formerly Childsplay)
- Phil's Game Utilitys (PGU)
Introductive Reading
- Pygame Programming - Great 4 lecture introduction in display, images, sound, event handling
- Pygame Reference - List of functions and their usage
- Pygame Tutorials
- Pygame object oriented tutorials
Rationale and Discussion
Games are an important part of learning. Projects based on pygame that can be helpful for children who want to develop games for themselves and their friends.
The idea is to develop a curriculum that teaches older kids Game Programming for the OLPC using Python and Pygame. They can then write additional games/activities for the Childsplay environment for younger kids.
Original email sent by Mamading Ceesay to Python-UK mailing list on Friday 20th May 2005:
One of the threads at the last London Python Meetup was about Python for Kids. Specifically about how to get kids into Python programming and possibly how to get Python taught in Schools. There was mention of the Livewires python tutorial material for example. Simon B. in particular (IIRC) was interested in Turtle Graphics for Python (a la Logo). Along similar lines, but drawing upon the Karel the Robot tradition there is RUR-PLE where there is a robot that is controlled using Python syntax, there is a set of lessons provided where the student has to accomplish progressively complex tasks with the robot using Python syntax introduced in the course of the lessons. An overview of RUR-PLE can be found at http://rur-ple.sourceforge.net/en/help.htm. It's based on wxPython. I have a young nephew who has just reached school age, so right now I'm more concerned about him having educational games and software than programming. Being able to extend/enhance the software in Python would be useful though. Childsplay http://childsplay.sourceforge.net/ is just the thing, it's a suite of educational games for young children along similar lines to Gcompris but without the C/C++ code and GNOME dependencies. It's based on Pygame and is cross-platform. It only has two games bundled, you have to install the plugins to get the other available games. Games are written as plugins in python that run in the Childsplay environment. Ideally, you might get your older kids to write new game plugins to keep your younger ones amused, just an idle thought! ;-) Anyway, I intend to try out Childsplay on the nephew this weekend.
Follow-up email sent by Mamading Ceesay to the Python-UK mailing list on Saturday 11th June 2005:
The nephew loves it and will nag me to fire up my laptop so that he can run Childsplay. Especially the PacKids game, which is quite useful from the spelling and pronounciation perspective as well as being entertaining. The main drawback with Childsplay so far, is that most of the games/activities are lacking in levels. The project clearly needs more developers to add more levels and games/activities. Perhaps it might even be worth organizing a sprint at something like the rumoured forthcoming PyCon UK. Alternatively, the London Python Meetup crew might like to do something.
Follow-up email sent by Mamading Ceesay to the Python-UK mailing list on Friday 21 October 2005:
Check out the Livewires course and see if it suits: http://www.livewires.org.uk/python/ Alternatively, there's a new Beginning Python book which has 10 projects to build in the last third of the book: http://apress.com/book/bookDisplay.html?bID=10013 I have been toying with the idea of getting some funding to develop and run a Python course for kids with a focus on Game and Multimedia programming.
First milestone - contact Pygame and Childsplay developer mailing lists to garner developer interest in this project.