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.

Cross-Platform and Cross-Compiler Portability


supported 32-bit supported 64-bit
Linux / Unix
Linux / Unix

supported 32-bit supported 64-bit

  • Use the same source code on Windows, Linux, and (soon!) Mac OS X.
  • Full support for native 32- and 64-bit code on all platforms.
  • Supports the Microsoft Visual C++ 2005, 2008 and 2010 compilers on Windows, and the GCC 3.x and 4.x on Linux and Unix.

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.
  • All this is implemented in the Cafu Material System.

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.

Model Editor

The CaWE Model Editor The CaWE Model Editor

  • Use the graphical Model Editor to import many model file formats.
  • A complete toolbox for inspecting, transforming and texturing your models.
  • Adjust and tweak any Cafu-specific model feature to prepare your models for use in the Cafu Engine.
  • Attach graphical, interactive GUIs to any model.

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.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

A group of currently 13 students (and growing) at the University of Applied Science of Ingolstadt is using the Cafu Engine for developing a game project in the course of their computer science lectures.

Their goal is to create a platform independent MMORPG whose gameplay does not involve gun battles, but requires the player to make economic decisions to win.

The project uses high-definition textures and is set in a medieval architecture, thanks to a texture artist and a map architect among the group members.

The project team is currently negotiation a sponsoring contract with EPOS CAT GmbH in Ingolstadt.

Cafu Engine Compiling Tutorial for Windows

Cafu Engine Compiling Tutorial for Windows

Installers Tutorial

The Official Tutorial of Cafu Engine in order to compile the Source code in Windows... Also you can check:

AnnieRTaylor - - 50 comments

Thanks for posting this. I will use this for a game. Looks very good.

I wish more engines had built in Lua or Java support. Would save people a lot of time.

Reply Good karma Bad karma+1 vote
AnnieRTaylor - - 50 comments

Oh, wow. My expectations were rather large, weren't they.

Looks good, but not what I am looking for.

Reply Good karma Bad karma+1 vote
sixcentgeorge - - 298 comments

your project looks very great , may be you should add the hl2 models and textures support with an automated conversion from hl1 to hl2 models .
for sure hl2 mdl is a mess compared to the "all in one file" hl1 mdl format , this tool should help porting mods and models and with your engine , mods team could learn gpu-special-effects ;']
wish you to get to opengl 3 or 4 as soon as possible .

Reply Good karma Bad karma+1 vote
Taurustar_Drakest Creator
Taurustar_Drakest - - 29 comments

Wow have passed a lot of time since I checked this, and sorry for the late of the answer, I'm not the original developer of Cafu Engine (it is Carsten Fuchs) I'm just a user of this engine who post this on ModDB (with the permission of Carsten Fuchs)

Anyway I'll give him the message

Reply Good karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.


Latest posts from @cafuengine

Cafu on the Raspberry Pi: Well, I could barely believe this myself: I checked out Cafu on a Raspberry Pi 2 fo... Bit.ly

Sep 9 2016

Changeset in git [4c59921]: Build Cafu on the ARMv7 architecture. That's all that it took to build ...: Bui... Bit.ly

Aug 9 2016

Using Git submodules for binary assets: We have always had the problem that Cafu requires a large amount of b... Bit.ly

Aug 8 2016

Changeset in git [8715e03]: No longer attempt to mount any zip archives in ...: No longer attempt to mount a... Bit.ly

Aug 5 2016

Changeset in git [d273005]: CaBSP: Transform the flood-fill sources into the worldspawn's entity ...: CaBSP:... Bit.ly

Jul 27 2016

Changeset in git [61c9920]: Map Editor: Add support for Visual C++ 2015 (14.0) when searching for map ...: M... Bit.ly

Jul 25 2016

Changeset in git [dce8e5e]: DeathMatch: Add support to map compile script for Visual C++ 2015 (14.0).: Death... Bit.ly

Jul 19 2016

Changeset in git [22178d4]: Doxygen: Make it easy to provide FTP login details. The "callback" in ...: Doxy... Bit.ly

Jul 13 2016

Changing the license from GPL to MIT: I'm happy to announce that today we have changed the Cafu license from ... Bit.ly

Jun 19 2016

Changeset in git [7de7d6c]: Merge branch 'mit-license' Change Cafu license from GPL to MIT.: Merge branch '... Bit.ly

Jun 13 2016