Gummworld2 is a light pygame framework for a scrolling game, where the map is larger than the display. It emphasizes simplicity, freedom, and performance.
Version 1.0.0 is released. It has all the features I presently need. Junk has been removed and fat trimmed over the past few releases. It has been tried and refined in several Pyweeks, and the API seems to have settled.
HUD has been slightly revamped. It uses the wonderfully precise str.format now instead of str % best_guess.
The SuperMap API has had some changes, the internals are improved. See the Mercurial change log. This feature has not been tried in a game yet. It has only seen demos. (Waiting on my wish list feature: a Tiled map loader that spreads the load out over multiple game cycles. DR0ID *poke* :)) SuperMap is the feature that enables arbitrarily huge realms with on-demand loading and unloading.
The biggest volume of changes in 1.0.0 are to bring the code into PEP 8 compliance.
::: 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. You add the display elements and game logic, the engine provides the framework for timing, events, updates, and rendering.
Tiled helpers are included for elaborate mapping. However, Tiled is not required.
Compatible with Python 2.7 and 3.
The fast renderer BasicMapRenderer matured in v0.5.0. The Mana World's map01 blazes. It is a five layer map with many SRCALPHA tiles. See examples/07_tiled_tmw_renderer_complete.py.
The old screenshot below is from an early version on an older Intel, getting 332 FPS in an 800x600 window while scrolling. It is a one-layer 2048x2048-pixel map, using the old method of collapsing nearly 500 on-screen sprites down to 36 surfaces for faster blitting. (Note: the BasicMapRenderer does this on the fly, and solves the older issues of mixing various image formats in a single view.)
::: More :::
Also available in downloads (Gummworld2 required):
- gw2_skeleton, a la skellington. Get this for fast skeleton setup. Highly recommended. I've gotten a fair number of how-to questions that are solved by this module layout.
- The Mana World resources needed by some Gummworld2 examples (sorry, TMW must be kept separate because it is GPL v2).
- A fixed-step game clock, a good general-use clock and scheduler.
- Mutable world demos (aka Gummcraft) v1.1 and v1.2.
- The original "bunny roundup game" demo.
- Pyweek 17 entry Harvest Moon.
- Odds and ends: Xbox 360 Controller, ImageCache, SqlNub.
::: Google Discussion Group :::
There is a Google group to discuss Gummworld2 and related projects. All are welcome. Please stop by and start a discussion.