Asphyre Sphinx is a cross-platform framework for developing 2D/3D video games and interactive business applications. It aids the developer with resource management, displaying real-time graphics and text, handle keyboard, mouse and joystick input, and multiplayer capabilities.
This release supersedes all previous Asphyre releases and is under continuous development. It requires Delphi XE 3 or FreePascal/Lazarus. It can also be used in all other Delphi versions starting from Delphi 2006, including Delphi 2007, XE2 and others. Several development platforms are supported including 32-bit Windows, 64-bit Windows, 32-bit Linux, 64-bit Linux and Mac OS X. This release also supports FireMonkey v2 in Delphi XE 3 on Windows and Mac OS X too.
The applications powered by Asphyre Sphinx on Windows platform can use many providers including DirectX 7, DirectX 9, DirectX 10 and DirectX 11 for displaying real-time graphics. In addition, all platforms including Windows, Mac OS and Linux can take advantage of OpenGL 2.1 provider.
The developer can decide whether to use one of the mentioned providers or let the user choose the provider at run-time. This feature is particularly useful for casual game developers where the game is required to run on the majority of consumer hardware. No external files and DLLs are required for Asphyre Sphinx applications to run.
Support for latest DirectX 11 technology
The current Asphyre product features provider for using latest Microsoft DirectX 11 technology, which can be used both in Delphi and FreePascal/Lazarus. This provider, similarly to DirectX 9 and DirectX 10 providers, has an advanced automatic fallback mechanism to lower feature levels (Direct3D 10.1 and Direct3D 10.0), Windows WARP software device and even legacy Direct3D 9 mode, allowing Asphyre applications to run on practically any system that has DirectX 11 installed, with or without dedicated hardware support.
2D Graphics Features
- Image transformation including rotation, skew, mirroring and so on.
- Multiple blending effects including add, subtract, multiply, shadow among others.
- Buffered drawing calls deliver extremely high rendering performance in real-time.
- Many different drawing primitives such as rectangles, ellipses, arcs, ribbons and holes.
- Multiple image pixel formats to maximize quality and minimize video memory consumption.
- Images can be loaded from compressed Asphyre archives, external files and streams.
- Patterns (small sub-images) can be distributed among different textures to reduce memory footprint.
- Dynamic textures allow fast pixel access for effects such as plasma and destructible terrain.
- Rendering targets allow dazzling visual effects such as motion blur, glows and other effects.
- Proper handling of lost focus, surviving Alt+Tab, Win+L, screen resolution change, laptop undocking and other rare events.
- Bitmap text drawing with Unicode support, color gradient tags and alignment options.
- Multiple display support showing full-screen graphics on all monitors.
- Shader effects for blazing visuals that are easy to use and optimized for performance.
- Support of different image formats including PNG, TGA, JPEG, BMP and so on.
- Native GUI support with WYSIWYG GUI designer to display fully featured interfaces with forms, buttons, edit boxes, lists and so on.
3D Graphics Features
- Easy to use 3D mesh drawing even for inexperienced developers.
- Mesh instancing for improved performance when many small meshes are drawn.
- Illumination models including Phong, Blinn-Phong, Minneart, Cook-Torrance, Oren-Nayer, Isotropic and Anisotropic Ward.
- Optimized 3D pipeline with hidden surface removal and triangle sorting.
- Transparent support for different providers across multiple platforms.
- Billboard rendering for particle effects, explosions and smoke.
- Load meshes from 3D Studio Max using the conversion tool, which can read 3DS and ASE formats.
- Mesh generation code for 3D planes, spheres, round boxes, torus, torus knots and super ellipsoids.
- Cross-platform Networking and Multiplayer support using UDP protocol that works transparently in Delphi (including FireMonkey) and FreePascal/Lazarus, on Windows, Linux and Mac OS platforms.
- Capture the state of all keyboard keys, read multiple joysticks and mouse displacement (Windows only, other platforms are under development).
- Store all images, sounds and other files using ZIP-like compression in a single Asphyre archive for easier deployment. In fact, you can even store this file inside application's executable to distribute only one single file!
- Set password for Asphyre archive to encrypt the contents using XTEA 128-bit cipher to protect your copyrighted artwork and confidential content.
- Complete set of mathematical types and functions with operator overloading for 2D and 3D vectors and matrices.
- High-precision timer for independent graphics rendering and object movement.
Please note that Asphyre Tools have not been ported to other platforms yet as they are only available for Windows. However, they have been tested to run perfectly on Linux using Wine. On Mac OS X platform, the tools have been successfully tested using Parallels, but you can also use Fusion. You can also use Winebottler on Mac OS too.
Asphyre Sphinx v3.0.4 - Complete Package (September 14, 2012)
This is a complete Asphyre Sphinx package, which contains source code, examples, tools and documentation - everything you need to start the development.
Tulip UI (optional add-on)
You can also use alternative UI with its accompanying WYSIWYG open-source editor kindly provided by Marcos Gomes. You can obtain more information and download link by visiting the official post from the link below.
Asphyre project on Google Code and SVN
You can also access official Asphyre project on Google Code and its corresponding SVN repositories at:
Vampyre Imaging Library (optional add-on)
Normally, you can load different image formats such as PNG, TGA and JPEG in Asphyre applications by using LoadFromFile methods and manually by using BitmapManager (from AsphyreBitmaps.pas). This is achieved by adding AsphyrePNG, AsphyreJPG and AsphyreTGA to your application's USES list.
Delphi's PNG implementation has an issue in alpha-channel. An alternative solution is to use Vampyre Imaging Library and add AsphyreVampyre to USES list. This solution also works for FreePascal/Lazarus. You should download the latest snapshot from the link below.
Alternatively, you can download the snapshot that was verified to be working both in FreePascal/Lazarus and Delphi XE 3 from the links below.