Gummworld2 - 0.5.0
::: News :::
Hosting has changed to Bitbucket. The old files are still up on Google Code.
Now works with Python 3. Still works with Python 2.7, and 2.6.
Smarter, faster BasicMapRenderer. See examples/07_tiled_tmw_renderer_complete.py.
::: About :::
Gummworld2 is a light pygame framework for a scrolling game, where the map is larger than the display. It emphasizes simplicity, freedom, and performance.
Tiled helpers are included. However, Tiled is not required.
Source and documentation bundle is available, as well as SVN, via the project home page. Plenty of uncomplicated examples.
Yes, that screenshot shows a legitimate 332 FPS in a scrolling 800x600 window. It's a 2048x2048-pixel map of nearly 500 visible sprites, collapsed down to 36 images by Gummworld2 for batch efficiency.
::: More :::
Also available in downloads:
::: Google Discussion Group :::
There is a Google group to discuss Gummworld2 and related projects. All are welcome. Please stop by and start a discussion.
Gummworld2 is now compatible with Python 3. Also backwards-compatible with Python 2.x, tested back to 2.6.
The core of the BasicMapRenderer has had some smarts added to enable it to render all of a Mana World map.
The benefit. A smarter renderer relieves you of manually splitting the map layers up, and deciding what background layers the renderer can manage while you are stuck figuring out how to process the upper layers. An example of this old knuckle-dragging way is in 07_tiled_tmw_renderer_bg_only.py.
The cost. A smarter renderer requires you to modify the avatar slightly (one attribute), set a sort_key attribute on dynamic layers (one attribute), and revise your game loop to notify the renderer of the dirty areas that changed; but it is a fairly repeatable method. An example of this new way is in 07_tiled_tmw_renderer_complete.py.
The other benefit. A smarter renderer is also much, much faster and smoother scrolling. With these efficiencies I was able to run 001-01.tmw at 1024x768 w/ collision handling for 240 fps. This is a 4-layer map with many srcalpha images. =) The original TMW example improved @800x600 from 120 fps to over 500 fps; and @1024x768 from 35 fps to 240 fps. I mighta felt my hair blow back. =)
Why should I care about fps!? =P Simply, the less time spent on the bottleneck in a scroller--blitting--the more headroom there is to add game logic.
Pygame.org account Comments
If you wish to leave a comment with your pygame.org account, please sign in first.