C4 Engine
Encyclopedia
The C4 Engine is a computer 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 Terathon Software that is used to create 3D games and other types of interactive virtual simulations for 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...

 (XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...

, Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...

, and 7), Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 (versions 10.5, 10.6, and 10.7
Mac OS X Lion
Mac OS X Lion is the eighth and current major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers....

), and PlayStation 3
PlayStation 3
The is the third home video game console produced by Sony Computer Entertainment and the successor to the PlayStation 2 as part of the PlayStation series. The PlayStation 3 competes with Microsoft's Xbox 360 and Nintendo's Wii as part of the seventh generation of video game consoles...

. It is ranked in the number one position among commercial game engines on the engine review site DevMaster.net.

Development history

Development of the C4 Engine is led by computer graphics author Eric Lengyel
Eric Lengyel
Eric Lengyel is a computer game engine developer with expertise in 3D graphics, animation, physics, audio, and networking. He holds a Ph.D. in Computer Science from the University of California, Davis and a Masters Degree in Mathematics from Virginia Tech....

, who is also the founder of Terathon Software. Although in development sporadically for several years beforehand, the engine was first made available under a commercial license in May, 2005. Since then, the C4 Engine has been under continuous development, and 54 updates have been released through the end of 2010, averaging nine updates per year.

Capabilities and features

The architecture of the C4 Engine is that of a layered collection of software components, in which the lowest layers interact with the computer hardware and operating system, and the higher layers provide platform-independent
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...

 services to the game code. While a considerable portion of the engine is dedicated to 3D graphics, there are also large components dedicated to functionality pertaining to audio, networking, physics, input devices, and scripting. Documentation for the engine is available online through a set of API web pages and a wiki.

Graphics

The C4 Engine is based on the 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...

 library on Windows and Mac platforms, and it uses a one-pass-per-light forward rendering model. The engine is capable of rendering with several different types of light sources and shadowing methods. The primary method for rendering dynamic shadows is 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...

, but the engine also supports shadow mapping
Shadow mapping
Shadow mapping or projective shadowing is a process by which shadows are added to 3D computer graphics. This concept was introduced by Lance Williams in 1978, in a paper entitled "Casting curved shadows on curved surfaces"...

 for dynamic light sources and a variant of cascaded shadow mapping for very large outdoor scenes.

Shader
Shader
In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

s are created in C4 using one of two available methods, both of which isolate the user from the shader code required by the underlying graphics library. Simple shaders can be created by specifying a set of material attributes such as a diffuse reflection color, a specular reflection color, and a group of texture maps. The engine internally generates the necessary shader code for each combination of material and light type that it encounters when rendering a scene. Material attributes can be used to produce effects such as normal mapping
Normal mapping
In 3D computer graphics, normal mapping, or "Dot3 bump mapping", is a technique used for faking the lighting of bumps and dents. It is used to add details without using more polygons. A common use of this technique is to greatly enhance the appearance and details of a low polygon model by...

, parallax mapping
Parallax mapping
Parallax mapping is an enhancement of the bump mapping or normal mapping techniques applied to textures in 3D rendering applications such as video games...

, horizon mapping, and bumpy reflections or refractions.

C4 also includes a graphical Shader Editor that allows complex custom materials to be created using a large set of predefined operations. This method of designing materials enables greater creative freedom and functionality for expert users, but requires somewhat more work by the user. Materials created using the standard material attributes can be converted to custom shaders to serve as a starting point in the Shader Editor.

The terrain capabilities of the C4 Engine are based on a voxel technology, allowing full 3D sculpting to produce features such as overhangs, arches, and truly vertical cliffs that would not be possible under a conventional height-based terrain system. Triangle meshes are generated from voxel data using the Marching cubes
Marching cubes
Marching cubes is a computer graphics algorithm, published in the 1987 SIGGRAPH proceedings by Lorensen and Cline, for extracting a polygonal mesh of an isosurface from a three-dimensional scalar field...

 algorithm, and seamless multiresolution level of detail
Level of detail
In computer graphics, accounting for level of detail involves decreasing the complexity of a 3D object representation as it moves away from the viewer or according other metrics such as object importance, eye-space speed or position....

 is made possible by using the Transvoxel algorithm to stitch together regions of differing resolutions.

The engine is capable of rendering a large variety of special effects, including particle system
Particle system
The term particle system refers to a computer graphics technique to simulate certain fuzzy phenomena, which are otherwise very hard to reproduce with conventional rendering techniques...

s, procedural fire, electrical effects, volumetric fog, and weather phenomena. During a post-processing stage, the engine can also apply full-scene cinematic motion blur
Motion blur
Motion blur is the apparent streaking of rapidly moving objects in a still image or a sequence of images such as a movie or animation. It results when the image being recorded changes during the recording of a single frame, either due to rapid movement or long exposure.- Photography :When a camera...

 to the final image using a technique based on a velocity buffer, as well as glow and distortion effects. The engine does not provide the capability to design custom post-processing effects.

Audio

The C4 Engine can play sounds stored in the WAV
WAV
Waveform Audio File Format , is a Microsoft and IBM audio file format standard for storing an audio bitstream on PCs...

 format using 16-bit mono or stereo sampling, and audio data can be played from memory or streamed from disk. The engine plays sounds using a custom mixer that provides capabilities such as frequency shifting, Doppler effect
Doppler effect
The Doppler effect , named after Austrian physicist Christian Doppler who proposed it in 1842 in Prague, is the change in frequency of a wave for an observer moving relative to the source of the wave. It is commonly heard when a vehicle sounding a siren or horn approaches, passes, and recedes from...

, reverberation
Reverberation
Reverberation is the persistence of sound in a particular space after the original sound is removed. A reverberation, or reverb, is created when a sound is produced in an enclosed space causing a large number of echoes to build up and then slowly decay as the sound is absorbed by the walls and air...

, and atmospheric absorption.

Networking

Multiplayer gameplay in C4 is supported by a two-layer messaging system that uses the UDP protocol
User Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...

 to communicate among different computers connected to a game.

Tools

The C4 Engine ships with a number of tools that are essential for the development of a game. Each tool is packaged as a plugin module that exists separately from the engine itself. Many tools make use of the comprehensive graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 system provided by the engine so that a consistent interface is presented to the user across multiple platforms.

World Editor

The World Editor
Level editor
A level editor is a software tool used to design levels, maps, campaigns, etc and virtual worlds for a video game. In some cases the creator of a video game releases an official level editor for a game, but other times the community of fans step in to fill the void...

 tool is a 3D content creation application that is typically used to create game environments for use with the C4 Engine. It provides a large set of drawing and manipulation capabilities that are used to construct world geometry as well as many game necessities such as lights, sounds, triggers, and special effects.

The World Editor can import scene information through the COLLADA
COLLADA
COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications. COLLADA is managed by the nonprofit technology consortium, the Khronos Group....

 format. This enables the use of content from a large number of digital content creation
Digital content creation
Digital Content Creation is a modern term denoting the creation and modification of digital content, such as animation, audio, graphics, images and video, as part of the production process before presentation in its final medium. This large field encompasses many segments such as 3D graphics,...

 programs such as Maya
Maya (software)
Autodesk Maya , commonly shortened to Maya, is 3D computer graphics software that runs on Microsoft Windows, Mac OS and Linux, originally developed by Alias Systems Corporation and currently owned and developed by Autodesk, Inc. It is used to create interactive 3D applications, including video...

 or 3D Studio Max
3D Studio Max
Autodesk 3ds Max, formerly 3D Studio MAX, is for making 3D animations. It was developed and produced by Autodesk Media and Entertainment. It has modeling capabilities, a flexible plugin architecture and can be used on the Microsoft Windows platform. It's frequently used by video game developers, TV...

.

Script editor

The World Editor tool includes a graphical script editor designed to be accessible to artists and level designers as well as programmers. The script editor allows the user to place various “methods” into a directed graph
Directed graph
A directed graph or digraph is a pair G= of:* a set V, whose elements are called vertices or nodes,...

 connected by “fibers” representing action dependencies and the order of execution. Scripts support loops through the creation of cycles in the graph structure, and conditional execution is supported by marking fibers to be followed or not followed based on the result value output by the methods at which they start.

The engine ships with several standard script methods that perform simple actions such as enabling or disabling a scene node (for example, to turn a light on or off) and more complex actions such as evaluating an arbitrary mathematical expression. New script methods can be defined by the game code, and they appear in the script editor as custom actions that can be used by a level designer.

Panel editor

The World Editor tool includes a sub-editor called the “panel editor” providing for the creation of 2D interface panels that can be placed inside a 3D world. The panel editor lets the user place various types of widgets such as text and images in a panel effect node that is rendered as part of the scene. Panels can also include a special camera widget that displays the scene that is visible to a camera placed anywhere else in the same world.

Interface panels are both dynamic and interactive. The engine provides an extensible set of “mutators” that can be applied to individual panel items to induce various forms of animation such as scrolling, rotation, or color change. A character in a game can interact with a panel by approaching it and clicking the mouse inside interactive items. Script can be attached to such items, causing a sequence of actions to occur when the player activates them.

Licensing

There are five types of commercial licenses available for the C4 Engine. A Basic Edition and a Standard Edition are available to independent developers who do not receive funding from a major publisher. The Industrial Edition is designed for the development of applications outside the realm of entertainment. The Academic Edition is available to educational institutions that use the C4 Engine for instructional purposes. Lastly, a Professional Edition is available for professional game developers who either wish to develop games for consoles or are funded by a publisher and have received at least $100,000 (US) from the publisher in funding. The pricing for the Industrial and Professional Editions is not publicly available, and the company has to be contacted for licensing details.

Each edition of the C4 Engine except the Basic Edition includes the complete source code to the engine, sample games, and tools. Other features such as support for third-party plugins, plugin development and special forums are missing from the Basic Edition. Games made using the Basic Edition cannot be sold. In order to sell such games, the user is required to upgrade to at least the Standard License by paying the remainder of the licensing fee. No such restriction exists for the Professional and Industrial Licenses.

Updates to the engine are included with every license for one year at no additional cost for the Basic, Standard, and Academic Licenses, and for the duration of the project for the Industrial and Professional licenses. Access to updates can be renewed on a yearly basis.

Products created with the C4 Engine are required to display the C4 Engine logo.

Academics

The C4 Engine has been licensed by many universities in connection with games-oriented software engineering curricula or for special research projects. These universities include MIT, Georgia Tech
Georgia Institute of Technology
The Georgia Institute of Technology is a public research university in Atlanta, Georgia, in the United States...

, Worcester Polytechnic Institute
Worcester Polytechnic Institute
Worcester Polytechnic Institute is a private university located in Worcester, Massachusetts, in the United States.Founded in 1865 in Worcester, WPI was one of the United States' first engineering and technology universities...

 (WPI), McMaster University
McMaster University
McMaster University is a public research university whose main campus is located in Hamilton, Ontario, Canada. The main campus is located on of land in the residential neighbourhood of Westdale, adjacent to Hamilton's Royal Botanical Gardens...

, and the University of Kempten
Kempten University of Applied Sciences
The Kempten University of Applied Sciences or Hochschule Kempten is a University of applied sciences in Kempten im Allgäu, Germany.-Faculties:The Kempten University of Applied Sciences has the following faculties:...

. Students in some of these programs are required to create their own games as part of a course using the C4 Engine, and many of these projects have gone on to be entered in the Independent Games Festival
Independent Games Festival
The Independent Games Festival is an annual festival at the Game Developers Conference, the largest annual gathering of the indie video game industry. It was founded in 1998 to assist and inspire innovation in video game development and to recognize the best independent video game developers...

 student competition.

One particular university research project involved the TactaVest technology developed at WPI, and their use of the C4 Engine was featured in the Discovery Channel Canada television show Daily Planet airing on May 26, 2006.

Games using C4

Games that use the C4 Engine include World of Subways (winner of Best Corporate Game at CeBIT 2009), City Bus Simulator
City Bus Simulator
City Bus Simulator 2010 is a game by TML Studios, and was released 3rd quarter 2009. There is a demo version of the game which is available on their website. It simulates an M42 bus line, operated by MTA New York City Bus, from the Circle Line or Jacob Javits Center to 1st Av./United Nations...

, Lego Wolf3D,, and Quest of Persia: Lotfali Khan Zand
Quest of Persia: Lotfali Khan Zand
Quest of Persia: Lotfali Khan Zand is a third-person sword-fighting video game. The game released in May 2008.QoP: Lotfali Khan Zand is a third person sword fighting game, which tells the story of the last swordsman of the east, "Lotfali Khan Zand", the brave king of Persia, 200 years...

(winner of "Best Persian Game of the Year" at Game Expo Dubai 2008).

External links

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