Difference between revisions of "Development Team/Sugargame"

From Sugar Labs
Jump to navigation Jump to search
(Created page with '== Sugargame == Sugargame is a Python package which allows [http://www.pygame.org/ Pygame] programs to run well under Sugar. It is fork of the olcpgames framework, which is no …')
 
Line 13: Line 13:
 
* Provides hooks for saving to and restoring from the Journal
 
* Provides hooks for saving to and restoring from the Journal
  
Advantages vs olpcgames:
+
=== Differences between Sugargame and olpcgames ===
 +
 
 +
The olpcgames framework provides a wrapper around Pygame which attempts to allow a Pygame program to run mostly unmodified under Sugar.  To this end, the Pygame program is run in a separate thread with its own Pygame message loop while the main thread runs the GTK message loop.  Also, olpcgames wraps Sugar APIs such as the journal and mesh into a Pygame-like API.
 +
 
 +
Sugargame takes a simpler approach; it simply offers a way to embed Pygame into a GTK widget.  The Sugar APIs are used to interact with Sugar, the Pygame APIs are used for the game. 
 +
 
 +
Sugargame advantages:
  
 
* Simpler code
 
* Simpler code
 
* More elegant interface between Pygame and GTK
 
* More elegant interface between Pygame and GTK
 
* Runs as a single thread: no thread related segfaults
 
* Runs as a single thread: no thread related segfaults
 +
* Possible to use Sugar widgets with Pygame
 +
 +
Sugargame limitations:
 +
 +
* No support for Pango or SVG sprites (yet)
  
 
== Using Sugargame ==
 
== Using Sugargame ==

Revision as of 10:47, 21 November 2009

Sugargame

Sugargame is a Python package which allows Pygame programs to run well under Sugar. It is fork of the olcpgames framework, which is no longer maintained.

Sugargame embeds the Pygame window into a GTK window, and translates GTK events to Pygame events.

What it does:

  • Wraps a Sugar activity around an existing Pygame program with few changes
  • Allows Sugar toolbars and other widgets to be added to the activity UI
  • Provides hooks for saving to and restoring from the Journal

Differences between Sugargame and olpcgames

The olpcgames framework provides a wrapper around Pygame which attempts to allow a Pygame program to run mostly unmodified under Sugar. To this end, the Pygame program is run in a separate thread with its own Pygame message loop while the main thread runs the GTK message loop. Also, olpcgames wraps Sugar APIs such as the journal and mesh into a Pygame-like API.

Sugargame takes a simpler approach; it simply offers a way to embed Pygame into a GTK widget. The Sugar APIs are used to interact with Sugar, the Pygame APIs are used for the game.

Sugargame advantages:

  • Simpler code
  • More elegant interface between Pygame and GTK
  • Runs as a single thread: no thread related segfaults
  • Possible to use Sugar widgets with Pygame

Sugargame limitations:

  • No support for Pango or SVG sprites (yet)

Using Sugargame

To use Sugargame in an activity, copy the sugargame folder into the activity's source directory.

The activity directory should look something like this:

  activity/            - Activity directory: activity.info, SVG icon, etc.
  sugargame/           - Sugargame package
  MyActivity.py        - Activity class
  mygame.py            - Pygame code
  setup.py             - Install script
  

To make the Activity class, start with test/TestActivity.py.

Support

For help with Sugargame, please email the Sugar Labs development list:

sugar-devel@lists.sugarlabs.org

Author

Sugargame is developed by Wade Brainerd <wadetb@gmail.com>.

It is loosely based on the source code to the olpcgames framework, developed by the One Laptop Per Child project.