We know that just over 100 developers have now downloaded IwGame, but we don’t know who is using it and for what, so making the decision to big changes to improve the engine can be a tough choice, for example the recent animation system changes will have meant a fair bit of code re-writing for some.
We have a new big change that we would like to make to allow the engine and XOML in particular to support many more resource types. At the moment we have specific managers that manage separate types of resources such as images, resource groups, animations and time lines. The global resource system and scenes both have these managers. The change we would like to make its to remove all of those managers and have a single unified resource system that encompasses all resources and all resource types. A quick example can better explain this:
If you want to add a marmalade resource gruop to the scene so that it gets managed by the global resource system you would use code like this:
// Create a resource group for our level1 and add it to the resource group manager CIwGameResourceGroup* level1_group = new CIwGameResourceGroup(); level1_group->setGroupName("Level1"); level1_group->setGroupFilename("Level1.group"); level1_group->Load(); IW_GAME_GLOBAL_RESOURCES->getResourceGroupManager()->addGroup(level1_group);
At the moment you need to get the resource group manager and add the resources. The problem being that you have to request the resource group manager. We would like to change this so that you only ever have to request a single manager, so the code would look more like this:
// Create a resource group for our level1 and add it to the resource group manager CIwGameResourceGroup* level1_group = new CIwGameResourceGroup(); level1_group->setGroupName("Level1"); level1_group->setGroupFilename("Level1.group"); level1_group->Load(); IW_GAME_GLOBAL_RESOURCES->getResourceManager()->addResource(level1_group, "ResourceGroup");
You would call the same method no matter what type of resource you add, the only thing that would change would be the resource name type. So for example, if you pass an image you would pass “Image” or an animation you would pass “Animation” etc.
The major advantage of this system is that we and yourself included can add custom resource types to the scene and global resource managers, which means you can also include them inside XOML files.
If you strongly object to this change then please let us know quickly before we make a final decision.