pygame is
Python
Simple DirectMedia Layer
 
 
pygame.org is
Site Swing
Gummworld2

Gummworld2 - 0.0.5

Gummbum (gummbum)

Tags:

Description

::: 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:

  • gw2_skeleton (a la skellington), get this for fast skeleton setup.
  • The Mana World resources used by some Gummworld2 examples (sorry, TMW must be kept separate because it is GPL v2).
  • The fixed-step game clock, a good general-use clock used in Gummworld2.
  • Mutable world demos (aka Gummcraft) v1.1 and v1.2.
  • The original "bunny roundup game" demo.
  • Pyweek 17 entry Harvest Moon.

::: Google Discussion Group :::

There is a Google group to discuss Gummworld2 and related projects. All are welcome. Please stop by and start a discussion.

Changes

This release contains numerous changes and additions to the model portion of the library.

Highlights:

  • New QuadTree class in support of quadtree worlds.
  • Classes for different purposes in model module: simple world, no world, quadtree world, as well as pymunk world.
  • "use_pymunk" obsolesced in Engine. Replaced with world types: none, simple, quad tree, and pymunk.
  • Special purpose keyword arguments added to Engine for quadtree world type.
  • Examples updated for compatibility.
  • New examples for quadtree world, and simple world.
  • Bunny minigame modified to use quadtree world.

Thanks to Dylan J. Raub for his excellent pygame demo, Quadtree test, after which Gummworld2's quad_tree module has been fundamentally modeled. Visit the project page: http://www.pygame.org/project-Quadtree+test-1691-.html.

Links

Home Page: https://bitbucket.org/gummbum/gummworld2/wiki/Home
Source: http://code.google.com/p/gummworld2/

Screenshot


click to view original size

Releases

Gummworld2 - 0.5.0 - Apr 16, 2014
Gummworld2 - 0.4.5 - Mar 26, 2014
Gummworld2 - 0.4.4 - Aug 23, 2013
Gummworld2 - 0.4.3 - Aug 20, 2013
Gummworld2 - 0.4.2 - Aug 6, 2013
Gummworld2 - 0.4.1 - Mar 28, 2013
Gummworld2 - 0.4.0 - Apr 6, 2012
Gummworld2 - 0.3.0 - Nov 28, 2011
Gummworld2 - 0.2.0 - May 21, 2011
Gummworld2 - 0.1.1 - Mar 25, 2011
Gummworld2 - 0.1.0 - Feb 27, 2011
Gummworld2 - 0.0.12 - Feb 20, 2011
Gummworld2 - 0.0.11 - Feb 8, 2011
Gummworld2 - 0.0.10 - Jan 29, 2011
Gummworld2 - 0.0.9 - Jan 22, 2011
Gummworld2 - 0.0.5 - Jan 10, 2011
Gummworld2 - 0.0.4 - Jan 7, 2011
Gummworld2 - 0.0.2 - Jan 3, 2011
Gummworld2 - 0.0.0 - Dec 31, 2010

Pygame.org account Comments

If you wish to leave a comment with your pygame.org account, please sign in first.

August 20, 2013 3:41pm - Gummbum - nickname: (gummbum)
After a couple years (since I left the last comment), a few trial-by-fire projects in Pyweek and Pyggy, and more than a few improvements and additions, the engine is looking fairly mature. Will it ever reach 1.0!? Great question. I would like to add DR0ID's quite nice transitions. And there are a couple rough points I'd like to file down: 1) at high scrolling speeds the new renderer causes a noticeable hiccup when a new tread is drawn; not noticeable when scrolling slowly; 2) the supermap hiccups when a new map is loaded; this is because the TMX loader does a lot of work all in one chunk; I would like to somehow spread this work out over multiple game ticks.
<p>
I expect the new renderer to support unusual use cases, like hex maps, much better. TMX loader doesn't support hex maps, and by extension neither does the world editor, but these are not required to get the intended benefit of this library: fast scrolling.
<p>
So that's about it. It is mostly finished. Cheers.
February 27, 2011 3:03pm - Gummbum - nickname: (gummbum)
Lots of new stuff. I *think* the only thing remaining before I call it 1.0 are the pymunk entity classes, and maybe some helpers (for example, pymunk collision detection and handling).

Even with the all-Python QuadTree and geometry code, the library seems to be quite usable on new-ish hardware. Dual-core systems that I've tried perform well. Single core systems chug and snort.

In v0.1.0 smaller tiles became a lot faster as a result of the MapLayer change from dict to list. Even collapsed maps are a quite bit faster. The screenshot depicted above could now be updated to show 360 FPS. Just visualize it. :)
January 7, 2011 1:37am - Gummbum - nickname: (gummbum)
Oh, and I forgot. Thank you, I will certainly contact you about the Tiled map loader if needed. So far it is working GREAT. :)
January 7, 2011 1:35am - Gummbum - nickname: (gummbum)
Very right, DR0ID. Combining tiles (via the Gummworld2 toolkit) only works for static tiles in a map object, where all the tiles scroll in unison. I'm not sure you'd want to use the same trick for independent sprites, as they typically do not want to move in unison. But if you could do it there would be gains (e.g. a big dragon or siege engine that is loaded from disk as six tiles combined into a single tile).

One drawback of combining tiles is you can no longer use a tile as a collision object--like the trees in the bunny demo. This is what the map editor is supposed to solve. Thus, if I have a combined tile, there will be geometry in the model representing its original parts. Of course, this means I will have a necessary separation between the graphics and the game model--which is not a bad thing, I think, but many pygamers seem to like the sprite-is-view-and-model school of thought. I like both ways, so Gummworld2 will try to support both with as little fuss as possible.
January 6, 2011 3:39pm - DR0ID - nickname: (dr0id)
If you have any improvements, comments, request or bugfixes about the Tiled map loader just contact me.

I found your trick to batch the tiles together to bigger ones to make the scrolling fascinating. But this only works for static background unless you know yet another trick for that.
January 4, 2011 1:12am - Gummbum - nickname: (gummbum)
<b>Friendly note<b><br>
Make sure you get the right Gummworld2 version to go with the bunny demo game: v0.0.2. The game will not work with v0.0.1.
January 1, 2011 2:05pm - Gummbum - nickname: (gummbum)
@DR0ID
Too late! I'm already using tiledtmxloader (and loving it). :)

Very nice optimization of the gradient trick.

Thanks for the tips, DR0ID, and especially for your work on the Tiled map loader.
January 1, 2011 2:44am - DR0ID - nickname: (dr0id)
for the fill_gradient function there is a trick:

just create a new surface which is 1 line thick, fill it with the gradient, then scale it to the size you want (instead of iterating over all pixels or lines)

I used this trick here:

http://pygame.org/project-gradients-307-.html
January 1, 2011 2:36am - DR0ID - nickname: (dr0id)
Maybe this could be useful to you.

http://pygame.org/project-map+loader+for+%27tiled%27-1158-.html
spotlight

 
our projects
pygame.org welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
 
recent releases
Apr 16, 2014


Apr 13, 2014

Apr 9, 2014

Mar 18, 2014


Mar 15, 2014


Mar 14, 2014

Mar 13, 2014

Mar 11, 2014

Mar 9, 2014

... more!
 
for pygame related questions, comments, and suggestions, please see help (lists, irc)