pygame is
Simple DirectMedia Layer is
Site Swing

Vizier - 2.3.0rc

Chandler Armstrong (omnirizon)



vizier is a game world and sprite image management library. vizier offers two features: 1) image scrolling, zooming, and rotating transformation processes and 2) 2d frustum culling.

vizier facilitates image transformation by offering scrolling and zooming methods for the world image, and rotating methods for sprites. vizier manages the images to ensure the scrolling and zooming is properly applied, relieving client code of responsilibity for repositioning and scaling images. the vizier.Sprite class keeps a cache of and manages all the various images that sprites generate for rotate operations.

vizier provides 2d frustum culling for managing very large game worlds. a frustum loads only that portion of the world within the frustum. the frustum is centered on the visible screen and is typically the size of the screen or bigger. very large worlds challenge game design with memory and precision burdens; frustum culling eliminates these challenges. vizier loads and evicts portions of the world from the frustum, using client supplied load and evict size parameters. see

Bilas, Scott. (2003). The Continuous World of Dungeon Seige. In Proceedings of the Game Developer's Conference 2003.

for more information of frustum culling as it is implemented by vizier.

vizier manages all sprites, ensuring sprites are loaded and evicted along with the portions of the world. evicted sprites are frozen but reactivated automatically when the portion of the world they are upon becomes added to the frustum once again.


* vizier viewer and sprite objects are now pickleable.

* update_funcs methods removed from trunk. images must now be on the HD. a version with update_funcs is now a branch, but will not be supported.

* sprite group update removed from update0. the viewer's sprite group must now be updated manually, but client code may now operate on the sprite after its rect is updated but before the sprite is updated.

* vzP and P containers provided that update with update0 and update1 respectively. P is for world space and vzP is for node space.
* frustum is now centered on the view rect * get_mouse now returns worldpos or nodepos * frustum surface transformations and drawing optimized. only the visible portion of the frustum will be transformed or drawn.


Home Page:


click to view original size


Vizier - 2.3.0rc - Dec 4, 2011
Vizier - 2.2.0rc - Jun 24, 2011 account Comments

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

October 11, 2009 6:44pm - Sean - nickname: (stup) - 4/5
It looks like it requires pygame 1.9 and python 2.6.

I'd recommend having a key to break out of the test loop, otherwise it looks pretty good, I'm looking forward to trying it out.
October 7, 2009 8:50pm - Chandler Armstrong - nickname: (omnirizon)
hmmm... that's an odd one. RotoRect subclasses pygame.rect.Rect, which _does_ have a copy method. Could it be that the copy method of pygame.rect.Rect was just added in pygame 1.9?

If that's not it, make sure you are using the most recent version of the library, also ensure you havn't mixed the xrect and vizier module of two different versions.

October 7, 2009 2:56am - Xandar Kablandar - nickname: (eternalcheesecake)
I tried to run it using Pygame 1.8.1 but I get this error:

Traceback (most recent call last):
File "", line 270, in <module>
test = VizierTest()
File "", line 235, in __init__
topleft = (i, j)) #load sprite
File "", line 39, in load_sprite
return Sprite(image, path, rect)
File "", line 72, in __init__
self.rect = rect.copy()
AttributeError: 'RotoRect' object has no attribute 'copy'

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Feb 21, 2017

Jan 31, 2017

Jan 24, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

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