Welcome to Null City Software
Tasty, tasty software.
Null City Logo Home Kitae Breeze Products Login Forums Contact Us About Us
By RobHutchinson on 02nd Jul 2009 @ 08:15PM
One of the design goals with Kitae was to have the engine completely manage your game resources, so all your graphics, sound, music, level data, etc. All these resources can be added at design time to your project's modules. At its heart Kitae is a complete content management system for games.

A project can have any number of modules and you decide how you want your modules to be arranged. Modules can be loaded and unloaded as whole units during run-time and you can pick the modules you want to be loaded automatically at startup using the Game Editor. This gives you a streamlined way to implement game levels and shared resources. For example, in a platform game you may decide that your main character and all enemies are common resources that are used on all levels of the game. Therefore building these resources into a 'Common' module that is always loaded makes sense. In a platform game, usually you're only dealing with one whole level at a time, or one set of levels (a world) that all use the same resource set. Here it makes sense to have each world or level type have it's own module. That way you can reload levels simply by unloading the module (and therefore all it's resources) and reloading it. This provides you with an extremely simple way of managing your game's life cycle. From the point at which the player enters the game world on the first level, through to the last level of the game, switching scenes and expunging groups of unused assets is simple using Kitae.

Modules are expressed in XML with embedded resources. The modules (.kmo) and the project file (.kpf) are the only files you need to add to your content projects, and even this is handled for you by the Game Editor application that is provided with Kitae. The module files contain information about your graphics, graphic data, scenes, actors, layers, sounds, sound data, etc. All in one nice neat package. These modules are transformed at runtime using the XNA content pipeline into XNB files (one per module), making it even harder for 3rd parties to access or modify your game resources and reducing the number of files you need to provide to end users.

Addional to all this, Kitae provides a very powerful graphics handling feature that can help you improve performance and build more maintainable games. Graphics in Kitae work as 'Sprite Sheets'. A single Graphic object contains many images, which are automatically managed by the framework. So for example, you may have a single Graphic that contains all the frames of animation for your main character. At build time, each image in a Graphic is packed into a single texture which is embedded into your module binary. You have certain options available to you as to how you want that texture to be created, but by and large, this process is handled for you completely automatically.

Graphics cards like to work without being interupted by developers switching textures all the time. Because of this, having all your resources in a single sheet alone can increase performance across the board, particularly in Tile Map rendering processes. Keeping all your tiles together in a single texture and using only that texture to render an entire Tile Map keeps performance high. With a little bit of thought, this is done automatically for you by Kitae.

Null City Software
Null City is dedicated to developing top quality sofware products for Windows PC, XBox and Windows Phone. We specialise in games and .NET applications & components.