The C4 Engine is a proprietary computer game engine developed by Terathon Software that is used to create 3D games and other types of interactive virtual simulations for PlayStation 5 , PlayStation 4 , PlayStation 3 , Windows ( XP and later), Mac OS X (versions 10.9 and later), Linux , and iOS .
56-531: Development of the C4 Engine is led 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. Due to changing market conditions, the C4 Engine was retired in 2015, but an announcement has been made that it is returning in 2021. C4 Engine version 7.0
112-474: A GUI and some level of a CLI, although the GUIs usually receive more attention. GUI wrappers find a way around the command-line interface versions (CLI) of (typically) Linux and Unix-like software applications and their text-based UIs or typed command labels. While command-line or text-based applications allow users to run a program non-interactively, GUI wrappers atop them avoid the steep learning curve of
168-410: A combination of technologies and devices to provide a platform that users can interact with, for the tasks of gathering and producing information. A series of elements conforming a visual language have evolved to represent information stored in computers. This makes it easier for people with few computer skills to work with and use computer software. The most common combination of such elements in GUIs
224-589: 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. The C4 Engine is licensed for $ 100 per person, and this includes all future updates at no additional cost. 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 , Worcester Polytechnic Institute (WPI), McMaster University , and
280-508: A grid of items with rows of text extending sideways from the icon. Multi-row and multi-column layouts commonly found on the web are "shelf" and "waterfall". The former is found on image search engines , where images appear with a fixed height but variable length, and is typically implemented with the CSS property and parameter display: inline-block; . A waterfall layout found on Imgur and TweetDeck with fixed width but variable height per item
336-427: 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. 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
392-506: A program was busy. Additionally, it was the first GUI to introduce something resembling Virtual Desktops . Windows 95 , accompanied by an extensive marketing campaign, was a major success in the marketplace at launch and shortly became the most popular desktop operating system. In 2007, with the iPhone and later in 2010 with the introduction of the iPad , Apple popularized the post-WIMP style of interaction for multi-touch screens, and those devices were considered to be milestones in
448-474: A retail store, airline self-ticket and check-in, information kiosks in a public space, like a train station or a museum, and monitors or control screens in an embedded industrial application which employ a real-time operating system (RTOS). Cell phones and handheld game systems also employ application specific touchscreen GUIs. Newer automobiles use GUIs in their navigation systems and multimedia centers, or navigation multimedia center combinations. A GUI uses
504-414: A short sequence of words and symbols. Custom functions may be used to facilitate access to frequent actions. Command-line interfaces are more lightweight , as they only recall information necessary for a task; for example, no preview thumbnails or graphical rendering of web pages. This allows greater efficiency and productivity once many commands are learned. But reaching this level takes some time because
560-428: A system or moved about to different places during redesigns. Also, icons and dialog boxes are usually harder for users to script. WIMPs extensively use modes , as the meaning of all keys and clicks on specific positions on the screen are redefined all the time. Command-line interfaces use modes only in limited forms, such as for current directory and environment variables . Most modern operating systems provide both
616-491: A variant of cascaded shadow mapping is used 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
SECTION 10
#1732787718215672-674: Is a related technology that promises to deliver the representation benefits of 3D environments without their usability drawbacks of orientation problems and hidden objects. In 2006, Hillcrest Labs introduced the first ZUI for television. Other innovations include the menus on the PlayStation 2 , the menus on the Xbox , Sun's Project Looking Glass , Metisse , which was similar to Project Looking Glass, BumpTop , where users can manipulate documents and windows with realistic movement and physics as if they were physical documents, Croquet OS , which
728-417: Is especially common with applications designed for Unix-like operating systems. The latter used to be implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons and placing buttons. Designing programs this way also allows users to run the program in a shell script . Many environments and games use
784-507: Is released on 22 March 2023. 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 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
840-669: Is represented by rotating a cube with faces representing each user's workspace, and window management is represented via a Rolodex -style flipping mechanism in Windows Vista (see Windows Flip 3D ). In both cases, the operating system transforms windows on-the-fly while continuing to update the content of those windows. The GUI is usually WIMP-based, although occasionally other metaphors surface, such as those used in Microsoft Bob , 3dwm, File System Navigator, File System Visualizer , 3D Mailbox, and GopherVR . Zooming (ZUI)
896-506: Is supported by a two-layer messaging system that uses the User Datagram Protocol to communicate among different computers connected to a game. The C4 Engine has a native physics engine which can be used or allows the option for implementing a 3rd party solution instead. The C4 Engine ships with basic game development tools required to make a modern game. Each tool is packaged as a plugin module that exists separately from
952-440: Is the windows, icons, text fields, canvases, menus, pointer ( WIMP ) paradigm, especially in personal computers . The WIMP style of interaction uses a virtual input device to represent the position of a pointing device's interface , most often a mouse , and presents information organized in windows and represented with icons . Available commands are compiled together in menus, and actions are performed making gestures with
1008-654: Is the inventor of the Slug font rendering algorithm , which allows glyphs to be rendered directly from outline data on the GPU with full resolution independence. Lengyel is also the inventor of the Transvoxel algorithm , which is used to seamlessly join multiresolution voxel data at boundaries between different levels of detail that have been triangulated with the Marching cubes algorithm . Among his many written contributions to
1064-555: Is usually implemented by specifying column-width: . Smaller app mobile devices such as personal digital assistants (PDAs) and smartphones typically use the WIMP elements with different unifying metaphors, due to constraints in space and available input devices. Applications for which WIMP is not well suited may use newer interaction techniques , collectively termed post-WIMP UIs. As of 2011, some touchscreen-based operating systems such as Apple's iOS ( iPhone ) and Android use
1120-689: The C4 Engine , Lengyel is the creator of the Open Data Description Language (OpenDDL) and the Open Game Engine Exchange (OpenGEX) file format. Lengyel is originally from Reynoldsburg, Ohio , but now lives in Lincoln, California . He is a cousin of current Ohioan and "Evolution of Dance" creator Judson Laipply . Eric Lengyel is credited on the following games: Eric Lengyel is the primary inventor on
1176-459: The Marching cubes algorithm, and seamless multiresolution level of detail 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 systems , procedural fire, electrical effects, volumetric fog, and weather phenomena. During a post-processing stage, the engine can also apply full-scene cinematic motion blur to
SECTION 20
#17327877182151232-511: The OpenGEX and COLLADA formats. This enables the use of content from a large number of digital content creation programs such as Autodesk Maya or 3D Studio Max . 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
1288-770: The University of Kempten . 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 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 that use
1344-709: The Xerox Star . These early systems spurred many other GUI efforts, including Lisp machines by Symbolics and other manufacturers, the Apple Lisa (which presented the concept of menu bar and window controls ) in 1983, the Apple Macintosh 128K in 1984, and the Atari ST with Digital Research 's GEM , and Commodore Amiga in 1985. Visi On was released in 1983 for the IBM PC compatible computers, but
1400-501: The cursor (or rather pointer ) control: mouse , pointing stick , touchpad , trackball , joystick , virtual keyboards , and head-up displays (translucent information devices at the eye level). There are also actions performed by programs that affect the GUI. For example, there are components like inotify or D-Bus to facilitate communication between computer programs. Ivan Sutherland developed Sketchpad in 1963, widely held as
1456-627: The 1970s, Engelbart's ideas were further refined and extended to graphics by researchers at Xerox PARC and specifically Alan Kay , who went beyond text-based hyperlinks and used a GUI as the main interface for the Smalltalk programming language , which ran on the Xerox Alto computer , released in 1973. Most modern general-purpose GUIs are derived from this system. The Xerox PARC GUI consisted of graphical elements such as windows , menus , radio buttons , and check boxes . The concept of icons
1512-453: The C4 Engine include: Eric Lengyel Eric Lengyel is a computer scientist specializing in game engine development, computer graphics , and geometric algebra . He holds a Ph.D. in computer science from the University of California, Davis and a master's degree in mathematics from Virginia Tech , where he also competed in cross-country and track and field. Lengyel is an expert in font rendering technology for 3D applications and
1568-513: The GUIs advantages, many reviewers questioned the value of the entire concept, citing hardware limits, and problems in finding compatible software. In 1984, Apple released a television commercial which introduced the Apple Macintosh during the telecast of Super Bowl XVIII by CBS , with allusions to George Orwell 's noted novel Nineteen Eighty-Four . The goal of the commercial was to make people think about computers, identifying
1624-401: The class of GUIs named post-WIMP. These support styles of interaction using more than one finger in contact with a display, which allows actions such as pinching and rotating, which are unsupported by one pointer and mouse. Human interface devices , for the efficient interaction with a GUI include a computer keyboard , especially used together with keyboard shortcuts , pointing devices for
1680-457: The command words may not be easily discoverable or mnemonic . Also, using the command line can become slow and error-prone when users must enter long commands comprising many parameters or several different filenames at once. However, windows, icons, menus, pointer ( WIMP ) interfaces present users with many widgets that represent and can trigger some of the system's available commands. GUIs can be made quite hard when dialogs are buried deep in
1736-413: The command-line, which requires commands to be typed on the keyboard . By starting a GUI wrapper, users can intuitively interact with, start, stop, and change its working parameters, through graphical icons and visual indicators of a desktop environment , for example. Applications may also provide both interfaces, and when they do the GUI is usually a WIMP wrapper around the command-line version. This
C4 Engine - Misplaced Pages Continue
1792-571: The designer's work to change the interface as user needs evolve. Good GUI design relates to users more, and to system architecture less. Large widgets, such as windows , usually provide a frame or container for the main presentation content such as a web page, email message, or drawing. Smaller ones usually act as a user-input tool. A GUI may be designed for the requirements of a vertical market as application-specific GUIs. Examples include automated teller machines (ATM), point of sale (POS) touchscreens at restaurants, self-service checkouts used in
1848-485: The development of mobile devices . The GUIs familiar to most people as of the mid-late 2010s are Microsoft Windows , macOS , and the X Window System interfaces for desktop and laptop computers, and Android , Apple's iOS , Symbian , BlackBerry OS , Windows Phone / Windows 10 Mobile , Tizen , WebOS , and Firefox OS for handheld ( smartphone ) devices. Since the commands available in command line interfaces can be many, complex operations can be performed using
1904-435: The display represents a desktop, on which documents and folders of documents can be placed. Window managers and other software combine to simulate the desktop environment with varying degrees of realism. Entries may appear in a list to make space for text and details, or in a grid for compactness and larger icons with little space underneath for text. Variations in between exist, such as a list with multiple columns of items and
1960-450: The editor for the three-volume Game Engine Gems book series. Lengyel founded Terathon Software in 2000 and is currently President and Chief Technology Officer at the company, where he leads development of the C4 Engine . He has previously worked in the advanced technology group at Naughty Dog , and before that was the lead programmer for the fifth installment of Sierra's popular RPG adventure series Quest for Glory . In addition to
2016-453: The engine is available online through a set of API web pages and a wiki. The C4 Engine is based on the OpenGL library on Windows, Mac, Linux, and iOS 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 shadow mapping , and
2072-592: 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. 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. The World Editor can import scene information through
2128-468: The field of game development, Lengyel is the author of the four-volume book series Foundations of Game Engine Development . The first volume, covering the mathematics of game engines, was published in 2016 and is now known for its unique treatment of Grassmann algebra . The second volume, covering a wide range of rendering topics, was published in 2019. Lengyel is also the author of the textbook Mathematics for 3D Game Programming and Computer Graphics and
2184-591: 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. 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. Multiplayer gameplay in C4
2240-611: The first graphical computer-aided design program. It used a light pen to create and manipulate objects in engineering drawings in realtime with coordinated graphics. In the late 1960s, researchers at the Stanford Research Institute , led by Douglas Engelbart , developed the On-Line System (NLS), which used text-based hyperlinks manipulated with a then-new device: the mouse . (A 1968 demonstration of NLS became known as " The Mother of All Demos ".) In
2296-594: The following patents: This biographical article relating to a video game specialist is a stub . You can help Misplaced Pages by expanding it . Graphical user interface A graphical user interface , or GUI ( / ˈ ɡ uː i / GOO -ee ), is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation . In many applications, GUIs are used instead of text-based UIs , which are based on typed command labels or text navigation. GUIs were introduced in reaction to
C4 Engine - Misplaced Pages Continue
2352-485: The interface found in current versions of Microsoft Windows, and in various desktop environments for Unix-like operating systems , such as macOS and Linux . Thus most current GUIs have largely common idioms. GUIs were a hot topic in the early 1980s. The Apple Lisa was released in 1983, and various windowing systems existed for DOS operating systems (including PC GEM and PC/GEOS ). Individual applications for many platforms presented their own GUI variants. Despite
2408-413: The kind of data they hold. The widgets of a well-designed interface are selected to support the actions necessary to achieve the goals of users. A model–view–controller allows flexible structures in which the interface is independent of and indirectly linked to application functions, so the GUI can be customized easily. This allows users to select or design a different skin or theme at will, and eases
2464-435: The methods of 3D graphics to project 3D GUI objects onto the screen. The use of 3D graphics has become increasingly common in mainstream operating systems (ex. Windows Aero , and Aqua (MacOS)) to create attractive interfaces, termed eye candy (which includes, for example, the use of drop shadows underneath windows and the cursor ), or for functional purposes only possible using three dimensions. For example, user switching
2520-549: 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. This method of designing materials enables greater creative freedom and functionality for expert users, but requires somewhat more work by
2576-406: 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
2632-680: The perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard . The actions in a GUI are usually performed through direct manipulation of the graphical elements. Beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices, smartphones and smaller household, office and industrial controls . The term GUI tends not to be applied to other lower- display resolution types of interfaces , such as video games (where head-up displays ( HUDs ) are preferred), or not including flat screens like volumetric displays because
2688-403: The pointing device. A window manager facilitates the interactions between windows, applications , and the windowing system . The windowing system handles hardware devices such as pointing devices, graphics hardware, and positioning of the pointer. In personal computers , all these elements are modeled through a desktop metaphor to produce a simulation called a desktop environment in which
2744-517: The system never reached commercial production. The first commercially available computer with a GUI was the 1979 PERQ workstation , manufactured by Three Rivers Computer Corporation. Its design was heavily influenced by the work at Xerox PARC. In 1981, Xerox eventually commercialized the ideas from the Alto in the form of a new and enhanced system – the Xerox 8010 Information System – more commonly known as
2800-505: The term is restricted to the scope of 2D display screens able to describe generic information, in the tradition of the computer science research at the Xerox Palo Alto Research Center . Designing the visual composition and temporal behavior of a GUI is an important part of software application programming in the area of human–computer interaction . Its goal is to enhance the efficiency and ease of use for
2856-456: The underlying logical design of a stored program , a design discipline named usability . Methods of user-centered design are used to ensure that the visual language introduced in the design is well-tailored to the tasks. The visible graphical interface features of an application are sometimes referred to as chrome or GUI . Typically, users interact with information by manipulating visual widgets that allow for interactions appropriate to
SECTION 50
#17327877182152912-516: 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
2968-470: The user-friendly interface as a personal computer which departed from prior business-oriented systems, and becoming a signature representation of Apple products. In 1985, Commodore released the Amiga 1000 , along with Workbench and Kickstart 1.0 (which contained Intuition ). This interface ran as a separate task, meaning it was very responsive and, unlike other GUIs of the time, it didn't freeze up when
3024-521: 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
3080-399: Was later introduced by David Canfield Smith , who had written a thesis on the subject under the guidance of Kay. The PARC GUI employs a pointing device along with a keyboard. These aspects can be emphasized by using the alternative term and acronym for windows, icons, menus, pointing device ( WIMP ). This effort culminated in the 1973 Xerox Alto , the first computer with a GUI, though
3136-588: Was never popular due to its high hardware demands. Nevertheless, it was a crucial influence on the contemporary development of Microsoft Windows . Apple, Digital Research, IBM and Microsoft used many of Xerox's ideas to develop products, and IBM's Common User Access specifications formed the basis of the GUIs used in Microsoft Windows, IBM OS/2 Presentation Manager , and the Unix Motif toolkit and window manager . These ideas evolved to create
#214785