Version 1, last updated by nolver at November 10, 2009 03:16 UTC

Tomahawk XNA Game Engine Features

Logic framework

The engine features a powerfull and easy to use logic framework that helps you keep your game logic conveniently separated from the technology layer. It provides lots of base classes for typical game objects and functions (like actors, pawns, controllers...) and support a component-based composition pattern to expand and reuse functions across several logic objects.

Life-cycle of logic objects is controlled by the engine's World, enabling both painless destruction of objects (and their childs) and spawning new objects during gameplay.

Serialization framework

One of the most powerfull features of the engine is the ability to create objects from data archetypes. The serialization framework is seamlessly integrated into the logic layer, enabling any logic object to define serializable attributes that can be configured within the archetypes.

The serialization framework uses Nivel21's SerialBoost technology to enable ultra-fast Xml serialization that is 10x faster the standard .NET XmlSerialize.

GUI framework

Powerfull GUI framework that support extensible controls, and archetypes. It works using patterns similar to thoose found in ASP.NET or recent WPF: visual presentation of the interfaces can be defined into XML archetypes, and logic can be later added via c# code.

It also features an keyframe-based animation system that can be used to easyly add life and richness to user interfaces.

Resource Management

Resource management abstracts the developpers from loading the resources manually. Logic objects that require resources (like models, textures...) can be created at any point, and they'll automatically start updating when all their required resources had been loaded from disk.

This manager can also be used to pack a bunch of resources to be loaded into a single loading operation that can be performed while a loading screen is being show.

Material framework

Tomahawk fully supports NVIDIA's FXComposer project (collada-based) format to import materials and shaders into the game.

Shaders parametters can be definided from whithin FXComposer using SAS sintax to enable automated value injection of engine matrices. Also there's an optimized layer to enable custom code to inject user values into these materials.

Optimized Rendering pipeline

The rendering pipeline support lots of optimizations for grouping and minimizing render calls.

The entire rendering pipeline can be reconfigured from withing FX Composer, including defining render targets and custom post-process effects that can be activated during the game.

Localization framework

Easyly add several languages to your games using separated language files. All components of the engine support not only localized strings, but localized textures too.

This framework also enable the game to support language hot-switching at any moment.

Networking framework

Fully integrated with logic layers, the Networking framework enables easy multiplayer game creation.

Also, special network services are supported, like customizable background content sharing.

Integrated extensible development console

The game feature an interactive game console that is very usefull during game development to log events or errors, and also enabling the game to respond to typed commands.

Physics support

GibLibX is fully integrated into the logic layer to enable easy physical behaviours in your logic objects.

Animation support

XNA Animation System (XMAS) is fully integrated into the logic layer to enable effient and powerfull animation to your logic objects.