Cafu Engine
Encyclopedia
The Cafu Engine is a game engine
Game engine
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...

 developed by Carsten Fuchs. It is portable across platforms
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 and currently runs under Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, with plans to be adapted to Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

. The engine's source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 is freely available
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 under the GPL, but can be obtained under a proprietary license.

Features

In general, Cafu is built with a modular architecture so as to avoid program constructs and libraries that are specific to any given operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

, compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, CPU or graphics processor. To that end, the Cafu source code compiles both as 32-
32-bit
The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory....

 as well as native 64-bit
64-bit
64-bit is a word size that defines certain classes of computer architecture, buses, memory and CPUs, and by extension the software that runs on them. 64-bit CPUs have existed in supercomputers since the 1970s and in RISC-based workstations and servers since the early 1990s...

 software.
  • The Cafu Engine abstracts out its handling of materials and instead uses rendering objects, thus enabling users to work with different graphics systems such as OpenGL
    OpenGL
    OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

     or DirectX
    DirectX
    Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...

    .
  • Physics are handled by an internal system to deal with human movement, and everything else uses Bullet
    Bullet (software)
    Bullet is an open source physics engine featuring 3D collision detection, soft body dynamics, and rigid body dynamics. It is used in games, and in visual effects in movies. The Bullet physics library is published under the zlib license. Erwin Coumans, its main author, worked for Sony Computer...

    , a free physics engine; Cafu synchronizes the two systems
  • Lighting is handled by radiosity computations, or dynamic lighting through stencil shadow volumes
    Shadow volume
    Shadow volume is a technique used in 3D computer graphics to add shadows to a rendered scene. They were first proposed by Frank Crow in 1977 as the geometry describing the 3D shape of the region occluded from a light source...

  • Like the material system, sound is abstracted out and can support various implementations such as OpenAL
    OpenAL
    OpenAL is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL.- History :...

     and FMOD
    FMOD
    FMOD is a proprietary audio library made by Firelight Technologies that plays music files of diverse formats on many different operating system platforms, used in games and software applications to provide audio functionality....

  • Inherently designed for online games with multiple players over a computer network
    Computer network
    A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

  • Game server
    Game server
    A game server is a remotely or locally run server used by game clients to play multiplayer video games. Most video games played over the Internet operate via a connection to a game server...

     that centrally manages the game state and events, as well as a client
    Client (computing)
    A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....

     that is used by players

Scripting and editing

In order to not have to fix details in difficult to modify program code, the Cafu Engine employs scripting based on the programming language Lua in many parts of the program.
Cafu includes a graphical editor, CaWE, that contains all the tools required to create new levels: a Map Editor, GUI Editor, Font-Wizard, Material Browser and Model Editor.

Licensing

The Cafu Engine's source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 has been freely available
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 under the GPL since December 2009. It is also available under a commercial license (dual licensing) so that producers are not necessarily bound to the GPL.

Reviews and applications

The Cafu Engine has been used by the United States Air Force's Research Labs for Human Effectiveness in a study about the visual working memory of pilots.
It has also been used in multiple studies and research projects that simulate artificial lighting in urban environments and examine how that lighting is perceived by humans and influences the nocturnal orientation of pedestrians and motorists:
  • Dennis Köhler, 2007: "Artificial light in urban space", presentation and movie report at the 8th Conference of European Architectural Endoscopy Association 2007, Moskau.
  • Stefan Hochstadt und Manfred Walz, 2008: "Wahrnehmung von Stadträumen bei Nacht: eine städtebauliche Grundlage zur Lichtplanung im öffentlichen Raum. (Perception of urban environments at night: an urban development basis for lighting planning in public space.)" in: Eberhard Menzel (publisher): Research Report of the University of Applied Sciences and Arts of Dortmund, pages 52-56.
  • Dennis Köhler, 2009: "Artificially enlightened urban spaces at night – A matter of special importance for livable cities." in: György Széll & Ute Széll (eds.): Quality of Life & Working Life in Comparison. Peter Lang Verlag, Frankfurt am Main, Germany, pages 323-339.

The Cafu Engine has been reviewed and presented in these publications:
  • Clemens Gleich: "Grafik-Engine", c't 14/2005, page 72, http://www.heise.de/kiosk/archiv/ct/2005/14
  • Ralf Nebelo, Tobias Engler, Mathias Poets, Lars Bremer, Lukas Liebich: "Geburtstagsgeschenk" (special issue with DVD for the 25th jubilee), c't 24/2008, page 198, http://www.heise.de/kiosk/archiv/ct/2008/24

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK