The Project Gamma Development Progress Blog

It's been too long again >_>

Apr 17, 2011 by DX-MON
Ok, two major events (for me at least) have occurred with the base libraries that I'm writing to make this game - libImage and libAudio are what are in question:

  • libAudio's MOD Mixing engine is now working bar for a few miss-tunings. This means it's basically suitable for use for truly 8-bit music in the game while rendering that music in unadulterated high definition for the most part (the lesser part meaning the miss-tunings that a few test songs have).

  • I've been hard at work for a week rewriting libImage and it's test suit so it is fully reentrant and has a smaller number of memory allocations per image. Reentrancy is useful here due to it both ensuring I can keep pointers to image data floating about for as long as I like provided I keep the pointer to the opened file about and making it nigh-impossible to leak memory provided my library had none anyway due to all state data now being held at dynamically allocated places in memory that are specific to each opened file and are in no way shared between files.

  • libImage's tests are far far more thorough and far easier to maintain

All this culminates with my now being ready to re-do all libImage-calling parts of the engine and MapMaker. While making these fixes I am planning to:

  • De-restrict MapMaker from being able to create and use two layers to dynamically creating more than one layer as needed (and automatically removing layers as they become empty and are navigated away from) - this will allow us to complete the Hoenn map where the map data had become too complex for even two layers to cope - think Cycle Way.

  • Generate a texture index for each map loaded that as each texture in the map is processed will be used to check the texture is not already loaded and if it is, just use the OpenGL texture index instead of loading it again and if not, add a new index for the map - this will allow us to use less OpenGL Texture memory and will result in faster map loading due to slightly less opening/closing of texture files and having to decoder the image data for OpenGL then load it in.

  • Use the generated texture index to allow that rather than having to browse for at texture all over again while making maps, if the texture is already loaded into the Texture Index, just use the index to locate the texture to add to the current layer which will make mapping much quicker and again reduce memory footprint for textures.

The evolution of the proposed Texture Index is that any images loaded into OpenGL Texture memory will be stored into an engine-wide index and any duplicates will just use the same Texture Index location thereby preventing loading the same texture twice at any time and helping to reduce load-times of maps as people cross from region to region as many of the textures will already be loaded, so the texture indices for the new map will just map to the old Index locations from previous ones

Apart from being a rather techy post, I hope that actually makes some sense..
signing off for now,


No comments yet

Add Comment

This item is closed, it's not possible to add new comments to it or to vote on it