Asphyre eXtreme is a framework of Delphi VCL components for creating video games and other interactive applications. The included components fall into the following categories:
Extensive 2D Support:
Simple primitives like lines, rectangles, circles, etc.
Drawing images with transformation (rotation, shearing, stretching, etc) and multiple blending effects.
Easily draw to render targets and then use them as source images to draw on the screen.
Dynamic textures support: modify the contents of textures quickly and then use them either in 2D or for 3D models.
Advanced multi-pass effects using multi-texturing
Displaying text with fonts rendered with included Font Tool. The text can have multiple styles (shadow, emboss), can be stretched and can also contain text tags.
Robust and extendible particle engine capable of displaying explosions, lens and other effects.
GUI Support + WYSIWYG editor:
Completely customizable controls
Easy to use and add to Asphyre applications
Support for transparency and multiple drawing effects
4-corner gradients with alpha-channel support for making very user-friendly interfaces
Labels, Edit boxes, List boxes, Buttons and other controls implemented
Robust set of classes with possibility of creating custom GUI controls.
Limited 3D support:
Load and draw static models.
Provided a complete math unit with an addition of high-level matrix class.
Native billboard technique support for explosions, smoke and other visual 3D effects.
Facing primitives which can be "drawn" easily, like if it was in 2D - for volumetric explosions, trees and other effects.
High-level camera class.
Multiple light and material support.
Cube textures and environment mapping, which can be set easily with few calls.
Rendering to render targets with depth-buffer.
Native multi-texturing support.
Precise timing for displaying in real-time:
Draw as fast as possible, process (move objects, for instance) at constant speed.
Limit rendering speed to specific value - uses a fraction of CPU's time, while delivering best rendering performance.
Latency and frame rate calculation.
Input Handling:
Keyboard support - retreive status of individual keys, detect key presses and releases, etc.
Mouse support - mouse displacement and button state.
Joysticks support - use any number of joysticks with any number of buttons, axes, POVs, etc.
Networking:
Guaranteed and non-guaranteed packets over UDP protocol
Packet serializing for rejecting packets that were previously received
Data compression for optimized bandwidth use
Easy-to-use and highly optimized
Bandwidth usage information and other debugging routines
Native media storage:
Put all images, fonts and other data files in a single "ASDb" file.
The archive compression is compared to ZIP format and sometimes can even be better.
Optionally, 64-bit Blowfish encryption can be used to encode the stored content and prevent third-party from viewing its contents.