C4 Engine

From Wikipedia, the free encyclopedia

Jump to: navigation, search
C4 Engine
C4Engine.png
Developer(s) Terathon Software LLC
Stable release Version 1.5.9 / April 28, 2009
Operating system Microsoft Windows
Mac OS X
Playstation 3
Platform PC, Mac, PlayStation 3
Type Game Engine
License Multiple types
Website C4 Engine Overview

The C4 Engine is a computer game engine developed by Terathon Software that can be used to create games for Windows (XP and Vista), Mac OS X (version 10.5), and the PlayStation 3 game console. It is ranked in the #1 position among commercial game engines on the engine review website DevMaster.net[1].

Contents

[edit] Development History

Development of the C4 Engine is lead by computer graphics author Eric Lengyel, 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 50 updates have been released through the end of 2009, averaging ten updates per year.[2]

[edit] Capabilities and Features

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

[edit] Graphics

The C4 Engine is based on the OpenGL library[4] 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.[5] The primary method for rendering dynamic shadows is stencil shadow volumes, but the engine also supports shadow mapping for dynamic light sources and a variant of cascaded shadow mapping for very large outdoor scenes.

Shaders 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, parallax mapping, 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.[6] 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 engine is capable of rendering a large variety of special effects, including particle systems, procedural fire, electrical effects, volumetric fog, and weather phenomena.[7] During a post-processing stage, the engine can also apply full-scene cinematic motion blur to the final image using a technique based on a velocity buffer,[8] as well as glow and distortion effects. The engine does not provide the capability to design custom post-processing effects.

[edit] Audio

The C4 Engine can play sounds stored in the WAV 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, reverberation, and atmospheric absorption.

[edit] Networking

Multiplayer gameplay in C4 is supported by a two-layer messaging system that uses the UDP protocol to communicate among different computers connected to a game.

[edit] 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 system provided by the engine so that a consistent interface is presented to the user across multiple platforms.

[edit] World Editor

The World Editor 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.[9]

The World Editor can import scene information through the COLLADA format.[10] This enables the use of content from a large number of digital content creation programs such as Maya or 3D Studio Max.

[edit] 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 connected by “fibers” representing action dependencies and the order of execution.[11] 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.

[edit] 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.[12] 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.

[edit] Licensing

There are four types of commercial licenses available for the C4 Engine.[13] The Standard Edition costs $350 (US) per user and is available to independent developers who do not receive funding from a major publisher. Publisher-funded development studios are required to purchase the Professional Edition.

For the development of applications outside the realm of entertainment, sometimes called serious games, an Industrial Edition is available. An Industrial Edition license for the C4 Engine has been acquired by Lockheed Martin.[14]

Lastly, an Academic Edition is available to educational institutions that use the C4 Engine for instructional purposes. The C4 Engine has been licensed by many universities, including Georgia Tech, Worcester Polytechnic Institute, McMaster University, and the University of Kempten.[15]

Each edition of the C4 Engine includes the complete source code to the engine, sample games, and tools. All future updates to the engine are included with every license at no additional cost.

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

[edit] Games using C4

The following list names several games that have been released or are in development using the C4 Engine.

[edit] Notes

[edit] Further reading

  • Lengyel, Eric (2010). Game Engine Gems. Jones and Bartlett. ISBN 978-0763778880. 
  • Shiratuddin, Mohd Fairuz; Kitchens, Kevin; Fletcher, Desmond (2008). Virtual Architecture: Modeling and Creation of Real-Time 3D Interactive Worlds. Lulu.com. ISBN 978-1-4357-5642-7. 

[edit] External links

Languages