|
Feature List |
|
|
3D Rendering and Material System Features



 |
- New Cafu Material System that handles all rendering.
- The main MatSys components are Renderers, Materials, and Shaders.
- All material surface properties can be controlled by the mapper or texture artist via easy to understand material scripts.
That is, even after a map or model is finished, the composition, translucency, filtering, modulation, blending, reflectiveness and all other properties of any material can be modified. This even works while the engine is running!
- Designed to be implemented on virtually anything:
- Operating Systems: Windows, Linux, MacOS, Pocket PC, Palm, DOS, ...
- APIs: OpenGL 1.2 to 2.0, DirectX 7 to 9, Cg, GLSL, Mesa, software renderers, ...
- Hardware: NVidia, ATI, 3Dlabs, consoles, ...
- Cafu demo packages currently come with complete sets of renderers for Windows and Linux, each containing variants for:
- OpenGL 1.2 (mostly used as fall-back renderer for the Cafu demo),
- Cg with fp20/vp20 profile (for NV2X and higher GPUs),
- Cg with arbvp1/arbfp1 profile (for NV3X and higher GPUs),
- OpenGL 1.4+ extended with ARB vertex/fragment program (all modern GPUs from ATI, NVidia and others), and
- a "Null" renderer that is useful e.g. for performance profiling or dedicated Cafu servers.
On start-up, Cafu automatically determines and loads the best renderer that is supported on the current system, so that highest image quality is obtained without user query.
- New special effects on the latest hardware can easily be exploited, while at the same time fall-back solutions for older hardware can always be provided.
- Direct import of jpeg, bmp, tga and png image file formats.
- Global resource management for efficient sharing of common textures and meshes.
- Powerful Pre-Caching System of all rendering resources for stutter-free animations.
|
Multi-Player Network Support

 |
- Client/server architecture for multi-player support, implemented in very well designed C++ code.
- The server can run on Windows or Linux (both client-integrated as well as dedicated servers are available).
- The client is available both for Windows and Linux. Clients can also act as servers (e.g. for LAN games)!
- New, amazingly fast internet network code!
- Optimized for minimum bandwidth requirements.
- Based on Berkeley Sockets (highly portable, and no unnecessary overhead of general-purpose network libraries).
- Full client prediction (for movement, events, and weapons).
- Delta compression for network packets.
|
Cross-Platform and Cross-Compiler Portability


 |
- Very thoroughly designed and well documented C++ source code.
- The C++ standard compliance of the entire code base makes ports to other compilers, platforms and architectures easy.
- Available for Windows 95, 98, ME, NT, 2000, XP and Vista.
- Available for Linux (all i686 distributions).
- A port to the Mac OS is in preparation.
- Supports the Microsoft VC++ 6, 2005 and 2008 compilers on the Win32 platform, and the GCC 3.x and 4.x on Linux.
|
State-of-the-Art Lighting Technology

 |
- First engine ever to combine light-maps with dynamic lighting effects!
- Radiosity-based, physically correct lighting.
- Dynamic, shader-driven, per-pixel lighting for both worlds and models.
- Stencil buffer shadow volumes (everything casts shadows on everything!).
- Support for diffuse-, normal-, bump-, specular-, and luminance-maps.
- Support for ATI and NVidia programmable GPUs and shaders.
- Smooth-Group support even for world brushes, easily controlled in the map editor!
- Shader-driven, multi-textured or 2-pass LightMap rendering.
- Spherical Harmonic Lighting available as presented in my diploma thesis (the thesis is also available in the Downloads section).
- All this is implemented in the Cafu Material System.
|

 |
3D Sound Effects and Audio Support
 |
- Employs fmod for all sound, audio and music effects.
- 3D stereo sounds for all audio sources (e.g entities, explosions, etc.).
- Doppler effects that distort all sounds according to the relative velocity of the listener.
- Can play mp3 and ogg-vorbis music files.
- Available on all currently and future supported platforms.
|
Graphical User Interface System

 |
- A powerful Graphical User Interface (GUI) System (or short: GuiSys) is integrated with the engine.
- GUIs can be 2D (regular GUIs for game menus etc.) as well as 3D for world (entity) GUIs. This provides a maximum of flexibility in functionality and design for all in-game interactive elements like for example call-lift buttons, doors with access control, computer displays of all kinds, etc.
- GUIs can fully be scripted by the Lua-based Scripting system!
- The GuiSys C++ interfaces can also be accessed from the game code directly, e.g. in order to implement all kinds of HUDs (Head-Up Displays) for the player.
- An easy-to-use tool for creating own fonts for use with the Gui System is included with the SDK.
- As examples, the current SDK implements the in-game console, the chat input, the "Really Quit?" dialog, the HUD and a world (entity) GUI all with the GuiSys.
|
Powerful Models Support

 |
- Can directly import models in ase, mdl (Half-Life 1) and md5 (Doom 3) model file formats.
- Importers for 3ds, lwo, obj, mdl2 (Half-Life 2) file formats are in preparation.
- The object-oriented model code design makes adding new or own file formats very easy.
- A discrete-level-of-detail (dlod) technique allows artists to easily create and combine models that dynamically reduce their level-of-detail when the viewer gets farther away. This way, a huge number of highly detailed models can be on the screen all at the same time.
- An effective proxy mechanism makes sure that resources are optimally managed: No model and no texture is ever instantiated more than once. Whenever multiple models can share any resources, they are shared.
- All models consistently employ the new Cafu Material System for rendering, can exploit all of the MatSys's advantages, and thus obtain optimal results and perfect integration with the other objects on the screen.
- For animated models, both vertex-blending (morphing) as well as skeleton-based animation are supported.
- If the file format supports it, Cafu can hierarchically combine sub- and super-models and blend animations (e.g. the mixing of different upper and lower body animations).
- Static Detail Models for adding a rich and immersing amount of detail to the worlds.
- A model (pre-)viewer that displays models with per-pixel lighting and shadows is included with the SDK.
|
Very Large Terrains

 |
- Implements the excellent SOAR algorithm by Peter Lindstrom and Valerio Pascucci.
- Provides continuous-level-of-detail, permitting very large out-door scenes.
- Employs geo-morphing for perfectly smooth transitions between levels of detail.
- View-frustrum culling yields an optimal terrain approximation.
- Can directly load terrains from Terragen (ter) and portable graymap (pgm) files in full 16 bit precision or from any bmp, tga, png or jpeg image file in 8 BPP precision.
- Integrates fully into the rest of Cafu (i.e. terrains are in the PVS, use optimized code for collision detection and physics, etc.).
- Even all compile tools are aware of terrains, and act accordingly.
- There are no restrictions in combining terrains with other elements of Cafu worlds.
- Full integration with the new Cafu Material System - you can apply arbitrary materials to terrains (e.g. with detail-maps and so on).
- Direct terrain support and terrain preview in the Cafu world editor CaWE.
- A terrain (pre-)viewer is included with the SDK.
|
Easy Extensibility and Great Flexibility

 |
- Supports Scripting based on the Lua programming language!
- Several forms of scripting are supported by the Cafu engine (e.g. cmat material definition files), the most important of which are GUI scripting and entity (map) scripting. For example, a lift that stops at several floors with each floor having a call button can completely be implemented by GUI and map scripts.
- Many relevant interfaces are available to (have bindings to) both the C++ game code as well as the Lua scripts.
- Dynamic Link Libraries (DLLs) control the engine.
- Simple to use C++ code interfaces make it easy to create entirely new games or applications (MODs) with Cafu.
- Also the Material System can easily be augmented with new effects, or ported to new platforms via clean and well-documented C++ interfaces.
- An example: the United States Air Force, Research Labs for Human Effectiveness employ the Cafu engine in warfighter simulation experiments to study the visuo-spatial working memory of their pilots.
|
Software Development Kit

 |
- The live demos include all binaries for developing new worlds or entirely new games.
- Includes the sample source-code of the Cafu DeathMatch game.
- Includes CaWE, the Cafu World Editor, a comfortable editor for editing worlds for Cafu.
- CaWE is included both in the Windows and the Linux packages!
- The user interface is intuitive and easy to learn for beginners. For experts, it has powerful features for fast and comfortable editing.
- Real-time preview of all models and Material System effects.
- Auto-save and recovery feature for crash-safe editing.
- Can import Doom 3 and Half-Life 1+2 maps.
- Includes all binary tools that are required for Cafu game development: CaWE, CaBSP, CaPVS, CaLight, CaSHL, Model Viewer, Material Viewer, Terrain Viewer.
- Exhaustive documentation and support is available online.
- Reasonably priced source code licenses are available at the Licensing page for independent developers, students, professional teams and academic institutions.
|
Special Features
 |
- Full support for curved surfaces (Bezier Patches) as seen in Doom 3, from the CaWE editor through preprocessing to dynamic lighting and shadows.
- The vegetation of large eco-systems as implemented in one of my university projects is soon to be integrated.
- In-game command console. For example, the display resolution and mode (full-screen or windowed) can be changed "in-game".
- Realistic physics modeling for all world entities: natural player movement, accurate collision detection, 6 degrees of freedom, acceleration, friction, gravity, water, ladders, ...
In addition, the integration of a physics engine is planned for one of the next releases.
- Particle Effect Engine (for explosions, smoke, muzzle flashes, fog, rain, snow, blood, ...)
- BSP, PVS and Portal-based rendering.
|
|
|