Vizier - 2.3.0rc
2d game world and sprite management library
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.
Changes
* 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.
* 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.