New pages

Jump to navigation Jump to search
New pages
Hide registered users | Hide bots | Show redirects
  • 22:08, 16 September 2023Release Notes for Version 7.2 (hist | edit) ‎[1,431 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' TBD == Core Engine == === Graphics Manager === * Horizon mapping is now disabled by default for spot lights. It can be enabled by checking the "Include spot lights" box in the Material Manager or in the settings for the Horizon process. * A problem in which the perspective mask would not be updated for effect nodes in the World Editor has been fixed. === Interface Manager === * Some minor updates have been made in the Slug Libr...")
  • 21:43, 12 September 2023SimpleChar Source Code (hist | edit) ‎[28,522 bytes]Eric Lengyel (talk | contribs) (Created page with "This page contains the complete source code for the <code>SimpleChar</code> example game module. See the Simple Games page for more information about the basic examples. == SimpleChar.h == <syntaxhighlight lang="c++"> #ifndef SimpleChar_h #define SimpleChar_h #include "C4Application.h" #include "C4World.h" #include "C4Input.h" #include "C4Cameras.h" #include "C4Interface.h" #include "C4Character.h" // Every application/game module needs to declare a function ca...")
  • 21:41, 12 September 2023SimpleBall Source Code (hist | edit) ‎[26,101 bytes]Eric Lengyel (talk | contribs) (Created page with "This page contains the complete source code for the <code>SimpleBall</code> example game module. See the Simple Games page for more information about the basic examples. == SimpleBall.h == <syntaxhighlight lang="c++"> #ifndef SimpleBall_h #define SimpleBall_h #include "C4Application.h" #include "C4World.h" #include "C4Input.h" #include "C4Cameras.h" #include "C4Interface.h" #include "C4Particles.h" // Every application/game module needs to declare a function ca...")
  • 12:58, 15 July 2023Screenshots (hist | edit) ‎[1,313 bytes]Eric Lengyel (talk | contribs) (Created page with "The C4 Engine can take screenshots and store them on the disk as TGA files. There are two different methods by which a screenshot can be taken, using the menu command in the C4 Menu or using the <code>shot</code> console command. The console command can also be bound to an input control so that screenshots can be taken at the press of a button while playing a game. Screenshots are always stored in the user's documents directory in the C4 Engine s...")
  • 12:55, 15 July 2023Foundations of Game Engine Development (hist | edit) ‎[303 bytes]Eric Lengyel (talk | contribs) (Created page with "''Foundations of Game Engine Development'', abbreviated FGED, is a series of books written by Eric Lengyel. It describes the mathematical and engineering details of many of the techniques used in the C4 Engine. More information is available on the [http://foundationsofgameenginedev.com/ FGED] website.")
  • 12:53, 15 July 2023World Viewport Widget (hist | edit) ‎[682 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''World Viewport Widget''' renders a complete world inside a frustum viewport, and the it provides camera orbit functionality. The widget color is not used. == Settings == The following settings are available specifically for World Viewport Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''World Viewport Settings'''}} |- {{Setting|'''World clear color'''|If checked, specifies the clear color used to initialize the contents...")
  • 12:53, 15 July 2023Tree Widget (hist | edit) ‎[2,025 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Tree Widget''' displays a list box with a scroll bar, and the items can have collapsable subtrees. The widget color controls the color of the tree's border. == Settings == The following settings are available specifically for Tree Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Tree Settings'''}} |- {{Setting|'''Item spacing'''|Specifies the vertical distance from one list item to the next. The height of the list box should...")
  • 12:52, 15 July 2023Text Button Widget (hist | edit) ‎[608 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Text Button Widget''' displays a clickable text string. The widget color controls the color of the text. == Settings == The following settings are available specifically for Text Button Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Text Button Settings'''}} |- {{Setting|'''Highlight color'''|Determines the color in which the text is rendered while the mouse button is pressed inside the text.}} |} == See Also == * ...")
  • 12:51, 15 July 2023Slug Library (hist | edit) ‎[395 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right The Slug Library is a product developed by Terathon Software for rendering high-quality, resolution-independent text and vector graphics in 3D applications on the GPU. It is used to render all text and icons in the C4 Engine. Detailed information can be found on the [http://sluglibrary.com/ Slug website]. == See Also == * Text Widget * Slug Effects")
  • 12:51, 15 July 2023Text Widget (hist | edit) ‎[13,956 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Text Widget''' displays a text string using the rendering technology in the Slug Library. Other widgets that display text, such as a check box, are derived from the Text Widget and possess all of the same capabilities. In the Panel Editor, the text string box contains the string that is displayed by the widget. If the text is displayed as multiple lines (because '''Box mode''' is set to '''Wrap text'''), then a hard line break can be inserted by entering...")
  • 12:50, 15 July 2023Table Widget (hist | edit) ‎[2,349 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Table Widget''' displays a table with a fixed number of columns in a box with a scroll bar. The widget color controls the color of the table's border. == Settings == The following settings are available specifically for Table Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Table Settings'''}} |- {{Setting|'''Number of columns'''|Specifies the number of columns in the table.}} |- {{Setting|'''Cell size X'''|Specifies the hori...")
  • 12:49, 15 July 2023Stroke Widget (hist | edit) ‎[1,518 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Stroke Widget''' displays a vector-based line that can have cap styles and dashing. A stroke widget is drawn using the Slug Library. The widget color controls the color of the stroke. == Settings == The following settings are available specifically for Stroke Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Stroke Settings'''}} |- {{Setting|'''Stroke thickness'''|Specifies the thickness of the stroke, in pixels.}} |-...")
  • 12:49, 15 July 2023Slider Widget (hist | edit) ‎[891 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Slider Widget''' displays a slider. The widget color controls the color of the slider bar. == Settings == The following settings are available specifically for Slider Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Slider Settings'''}} |- {{Setting|'''Slider style'''|Determines the style of the indicator button, and it can be circular or square.}} |- {{Setting|'''Initial value'''|Specifies the initial value for the slider.}}...")
  • 12:48, 15 July 2023Scroll Widget (hist | edit) ‎[1,022 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Scroll Widget''' displays a scroll bar. The widget color controls the color of the scroll bar's background. == Settings == The following settings are available specifically for Scroll Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Scroll Bar Settings'''}} |- {{Setting|'''Horizontal appearance'''|Causes the widget to be rendered with the appearance adjusted for a horizontally-oriented scroll bar.}} |- {{Setting|'''Initi...")
  • 12:47, 15 July 2023Radio Widget (hist | edit) ‎[1,479 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Radio Widget''' displays a radio button that can be in the selected or unselected state. When a radio button is selected, all other radio buttons in the same group (or in the entire window if the radio button is not in a group) are automatically unselected. The widget color controls the color of the text. == Settings == The following settings are available specifically for Radio Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Rad...")
  • 12:47, 15 July 2023Quad Widget (hist | edit) ‎[245 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Quad Widget''' displays a plain colored quad. The widget color controls the color of the quad. == See Also == * Widgets * <code>[http://c4engine.com/docs/InterfaceMgr/QuadWidget.html QuadWidget]</code> class Category:Interface")
  • 12:47, 15 July 2023Push Button Widget (hist | edit) ‎[922 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Push Button Widget''' displays a button with a text string. The widget color controls the color of the text. == Settings == The following settings are available specifically for Push Button Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Push Button Settings'''}} |- {{Setting|'''Primary button'''|Indicates that the button should be rendered with the appearance of a primary button, which causes the color of the button be...")
  • 12:46, 15 July 2023Progress Widget (hist | edit) ‎[1,103 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Progress Widget''' displays a progress bar. The widget color controls the color of the background of the progress bar that is shown for the uncompleted portion of progress. == Settings == The following settings are available specifically for Progress Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Progress Bar Settings'''}} |- {{Setting|'''Render plain (no border)'''|Specifies that the progress bar is rendered without a...")
  • 12:46, 15 July 2023Popup Menu Widget (hist | edit) ‎[1,058 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Popup Menu Widget''' displays a popup menu. The widget color controls the color of the text. == Settings == The following settings are available specifically for Popup Menu Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Popup Menu Settings'''}} |- {{Setting|'''Render plain (text only)'''|Causes the background button not to be rendered.}} |- {{Setting|'''Item spacing'''|Specifies the vertical distance from one menu item...")
  • 12:45, 15 July 2023Password Widget (hist | edit) ‎[824 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Password Widget''' displays a password entry box that obscures the text entered into it. The widget color controls the color of the text. == Settings == The following settings are available specifically for Password Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Password Settings'''}} |- {{Setting|'''Enable security features'''|Specifies that extra steps be taken to ensure the security of the password text. In particular, w...")
  • 12:45, 15 July 2023Paint Widget (hist | edit) ‎[1,410 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Paint Widget''' displays an interactive painting canvas. The brush radius, fuzziness, opacity, and color can be set from a script using controller functions. The widget color applies a tint to the contents of the painting canvas. == Settings == The following settings are available specifically for Paint Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Paint Settings'''}} |- {{Setting|'''Resolution X'''|Determines the internal...")
  • 12:44, 15 July 2023Ortho Viewport Widget (hist | edit) ‎[274 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Ortho Viewport Widget''' displays a viewport having an orthographic camera. The widget color is not used. == See Also == * Widgets * <code>[http://c4engine.com/docs/InterfaceMgr/OrthoViewportWidget.html OrthoViewportWidget]</code> class Category:Interfaceutf-8�‚… 0�  �5 )š« ���hThe '''Paint Widget''' displays an interactive painting canvas. The brush radius, fuzziness, opacity, and color can be set from a script using controlle...")
  • 12:44, 15 July 2023Multipane Widget (hist | edit) ‎[1,307 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Multipane Widget''' displays a multipane box. The border and selection tabs are displayed outside the actual boundary of the widget. The widget color controls the color of the border. == Settings == The following settings are available specifically for Multipane Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Multipane Settings'''}} |- {{Setting|'''Line style'''|Determines whether the border is rendered as solid, dotted (wit...")
  • 12:43, 15 July 2023Movie Widget (hist | edit) ‎[1,177 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Movie Widget''' plays a movie resource. The widget color applies a tint to the entire movie image. == Settings == The following settings are available specifically for Movie Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Movie Settings'''}} |- {{Setting|'''Movie name'''|Specifies the resource name of the movie.}} |- {{Setting|'''Movie is initially playing'''|Causes the movie to start playing when the panel is loaded.}} |- {...")
  • 12:43, 15 July 2023Menu Bar Widget (hist | edit) ‎[1,074 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Menu Bar Widget''' displays a menu bar that allows the user to choose commands from pull-down menus. The widget color applies a tint to the menu bar. == Settings == The following settings are available specifically for Menu Bar Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Menu Bar Settings'''}} |- {{Setting|'''Menu title font'''|Determines what font is used to display menu titles.}} |- {{Setting|'''Menu title font si...")
  • 12:42, 15 July 2023List Widget (hist | edit) ‎[1,862 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''List Widget''' displays a list box with a scroll bar. The widget color controls the color of the list's border. == Settings == The following settings are available specifically for List Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''List Settings'''}} |- {{Setting|'''Item spacing'''|Specifies the vertical distance from one list item to the next. The height of the list box should be a multiple of this value to avoid extra sp...")
  • 12:42, 15 July 2023Line Widget (hist | edit) ‎[614 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Line Widget''' displays a one-pixel-wide line that can be solid, dotted, or dashed. The widget color controls the color of the line. == Settings == The following settings are available specifically for Line Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Line Settings'''}} |- {{Setting|'''Line style'''|Determines whether the line is rendered as solid, dotted (with either one-pixel dots or two-pixel dots), or dashed.}} |} ==...")
  • 12:42, 15 July 2023Image Button Widget (hist | edit) ‎[930 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Image Button Widget''' displays a button with a texture image. The widget color applies to the texture image displayed in the button. == Settings == The following settings are available specifically for Image Button Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Image Button Settings'''}} |- {{Setting|'''Stays selected when clicked'''|Causes the button to remain in the selected state when it is clicked.}} |- {{Setting|...")
  • 12:41, 15 July 2023Image Widget (hist | edit) ‎[1,823 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Image Widget''' displays a plain texture image. The widget color applies a tint to the texture image. == Settings == The following settings are available specifically for Image Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Image Settings'''}} |- {{Setting|'''Texture map'''|Specifies the texture resource that is displayed by the widget.}} |- {{Setting|'''X scale'''|Applies a horizontal scale to the texture image.}} |- {{Set...")
  • 12:40, 15 July 2023Icon Button Widget (hist | edit) ‎[929 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Icon Button Widget''' displays a button with a texture image. The widget color applies to the texture image displayed in the button. == Settings == The following settings are available specifically for Icon Button Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Icon Button Settings'''}} |- {{Setting|'''Stays selected when clicked'''|Causes the button to remain in the selected state when it is clicked.}} |- {{Setting|'''...")
  • 12:39, 15 July 2023Picture Widget (hist | edit) ‎[2,597 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Picture Widget''' displays a vector-based picture stored in an album resource. A picture widget is drawn using the Slug Library. The widget color is not used. == Settings == The following settings are available specifically for Picture Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Picture Settings'''}} |- {{Setting|'''Album'''|Specifies the album resource containing the picture.}} |- {{Setting|'''Picture index'''|...")
  • 12:38, 15 July 2023Icon Widget (hist | edit) ‎[2,803 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Icon Widget''' displays a vector-based icon stored in an album resource. An icon widget is drawn using the Slug Library. The widget color controls the color of a monochrome icon but is not used for a multicolor icon. == Settings == The following settings are available specifically for Icon Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Icon Settings'''}} |- {{Setting|'''Album'''|Specifies the album resource containing t...")
  • 12:35, 15 July 2023Hyperlink Widget (hist | edit) ‎[716 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Hyperlink Widget''' displays a text button with a hyperlink. Clicking on the button opens the default web browser installed on the user's computer and navigates to the address stored in the widget. The widget color controls the color of the text. == Settings == The following settings are available specifically for Hyperlink Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Hyperlink Settings'''}} |- {{Setting|'''Hyperlink URL'...")
  • 12:35, 15 July 2023Frustum Viewport Widget (hist | edit) ‎[274 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Frustum Viewport Widget''' displays a viewport having a frustum camera. The widget color is not used. == See Also == * Widgets * <code>[http://c4engine.com/docs/InterfaceMgr/FrustumViewportWidget.html FrustumViewportWidget]</code> class Category:Interface")
  • 12:35, 15 July 2023Edit Text Widget (hist | edit) ‎[3,121 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Edit Text Widget''' displays an editable text box that allows a single line or multiple lines of text entry. The widget color controls the color of the text. == Settings == The following settings are available specifically for Edit Text Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Edit Text Settings'''}} |- {{Setting|'''Maximum length'''|Specifies the maximum number of characters that can be entered into the text box...")
  • 12:34, 15 July 2023Configuration Widget (hist | edit) ‎[1,276 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Configuration Widget''' displays a configuration table that is used to show property settings to the user. The widget color controls the color of the configuration table's border. == Settings == The following settings are available specifically for Configuration Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Configuration Settings'''}} |- {{Setting|'''Title column fraction'''|Determines what fraction of the full width of th...")
  • 12:34, 15 July 2023Color Widget (hist | edit) ‎[1,148 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Color Widget''' displays a color selection box that displays a color picker dialog when clicked. The widget color controls the color of the color box's border. == Settings == The following settings are available specifically for Color Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Color Box Settings'''}} |- {{Setting|'''Initial color value'''|Specifies the color value to which the color box is initially set (the color...")
  • 12:34, 15 July 2023Check Widget (hist | edit) ‎[1,293 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Check Widget''' displays a check box that can be in the checked state or unchecked state. The widget color controls the color of the text. == Settings == The following settings are available specifically for Check Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Check Box Settings'''}} |- {{Setting|'''Initially checked'''|Determines whether the check box is initially in the checked state.}} |- {{Setting|'''Use highlight...")
  • 12:33, 15 July 2023Camera Widget (hist | edit) ‎[1,160 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Camera Widget''' displays a remote camera view in the world being played. It is only available for in-game panel effects. The widget color applies a tint to the entire camera view. == Settings == The following settings are available specifically for Camera Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Camera Settings'''}} |- {{Setting|'''Camera connector'''|Identifies a connector belonging to the panel effect node that is...")
  • 12:33, 15 July 2023Border Widget (hist | edit) ‎[747 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Border Widget''' displays a one-pixel-wide rectangular border. The border is rendered around the outside of the actual boundary of the widget so that it precisely frames any other widget of the same size. The widget color controls the color of the border. == Settings == The following settings are available specifically for Border Widgets. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Border Settings'''}} |- {{Setting|'''Line style'...")
  • 12:31, 15 July 2023Widgets (hist | edit) ‎[5,643 bytes]Eric Lengyel (talk | contribs) (Created page with "A '''widget''' is an individual component of a window, panel, or any kind of interface displayed to the user. There are many different types of widgets defined by the C4 Engine, and these are described in the table below. Applications can also define their own custom widget types. Click on the name of a widget for information about the specific settings for that type of widget. {| style="border: solid 1px #444; border-spacing: 0px; border-collapse: collapse;" {{Tableh...")
  • 12:30, 15 July 2023Zones Page (hist | edit) ‎[266 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Zones Page. The '''Zones Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:30, 15 July 2023Worlds Page (hist | edit) ‎[4,081 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Worlds Page. The '''Worlds Page''' is a tool page in the World Editor. It can be found under the '''Instance''' tab. The list shown in the Worlds Page displays the instanced world resources that have been placed in the current world. When a world in the list is selected, clicking in an editor viewport places a new instance of that world in the current world. Placement adjustments are applied if the...")
  • 12:30, 15 July 2023Water Page (hist | edit) ‎[265 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Water Page. The '''Water Page''' is a tool page in the World Editor. It can be found under the '''Earth''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:29, 15 July 2023Viewports Page (hist | edit) ‎[278 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Viewports Page. The '''Viewports Page''' is a tool page in the World Editor. It can be found under the '''Editor''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:29, 15 July 2023Triggers (hist | edit) ‎[4,109 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Triggers Page. The '''Triggers Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. A trigger node is used to detect when some object has entered or exited a specific volume of space. The engine defines three different shapes for a trigger volume: a box, a cylinder, and a sphere. The trigger nodes in a world are activated and deactivated by calling the [http://c...")
  • 12:28, 15 July 2023Transform Page (hist | edit) ‎[1,156 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Transform Page. The '''Transform Page''' is a tool page in the World Editor. It can be found under the '''Editor''' tab. The position and rotation values are specified in the object space of the selected node. The '''Copy''' button copies the current position, rotation, or both, depending on which radio button is selected underneath. The '''Paste''' button applies a previously copied transform...")
  • 12:28, 15 July 2023Texture Mapping Page (hist | edit) ‎[297 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Texture Mapping Page. The '''Texture Mapping Page''' is a tool page in the World Editor. It can be found under the '''Material''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:27, 15 July 2023Terrain Palettes (hist | edit) ‎[3,060 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Terrain Palette dialog. A '''terrain palette''' is a set of textures that can be used to paint voxel-based terrain geometry. A terrain palette texture resource is a special kind of <code>.tex</code> file that contains references to several other texture maps. The terrain palette is a very small file because the texture image data remains in the referenced resources. A different terrain palette would ty...")
  • 12:26, 15 July 2023Terrain (hist | edit) ‎[317 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Terrain Page. The '''Terrain Page''' is a tool page in the World Editor. It can be found under the '''Earth''' tab. == See Also == * World Editor Pages * World Editor * Terrain Palettes * Terrain Tutorial Category:Editor")
  • 12:26, 15 July 2023Sources Page (hist | edit) ‎[272 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Sources Page. The '''Sources Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:26, 15 July 2023Portals Page (hist | edit) ‎[272 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Portals Page. The '''Portals Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:25, 15 July 2023Placement Page (hist | edit) ‎[3,275 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Placement Page. The '''Placement Page''' is a tool page in the World Editor. It can be found under the '''Instance''' tab, and it contains settings that control how the transforms of instances, models, and markers are adjusted when they are placed in the world. Placement adjustments are applied only when the '''Enable adjustments''' box is checked at the time when a new instance, model, or marke...")
  • 12:25, 15 July 2023Physics Page (hist | edit) ‎[307 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Physics Page. The '''Physics Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor * Physics Category:Editor Category:Physics")
  • 12:24, 15 July 2023Paths Page (hist | edit) ‎[266 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Paths Page. The '''Paths Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:24, 15 July 2023Particles Page (hist | edit) ‎[278 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Particles Page. The '''Particles Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:23, 15 July 2023Paint Page (hist | edit) ‎[268 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Paint Page. The '''Paint Page''' is a tool page in the World Editor. It can be found under the '''Material''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:23, 15 July 2023Node Management Page (hist | edit) ‎[295 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Node Management Page. The '''Node Management Page''' is a tool page in the World Editor. It can be found under the '''Editor''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:23, 15 July 2023Models Page (hist | edit) ‎[1,950 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Models Page. The '''Models Page''' is a tool page in the World Editor. It can be found under the '''Instance''' tab. The list shown in the Models Page displays all of the models registered with the engine. When a model in the list is selected, clicking in an editor viewport places a new instance of that model in the world and attaches the default controller to it. (The type of the default controlle...")
  • 12:22, 15 July 2023Material Page (hist | edit) ‎[3,292 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Material Page. The '''Material Page''' is a tool page in the World Editor. It can be found under the '''Material''' tab. A material can be embedded inside a world or referenced as an external resource. (Material resources have the <code>.mtl</code> extension.) Both types are displayed in the same list inside the Material Page. The names of materials embedded inside a world, if they are named at a...")
  • 12:21, 15 July 2023Markers Page (hist | edit) ‎[272 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Markers Page. The '''Markers Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:21, 15 July 2023Lights Page (hist | edit) ‎[269 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Lights Page. The '''Lights Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:20, 15 July 2023Landscaping Page (hist | edit) ‎[2,702 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Landscaping Page. The '''Landscaping Page''' is a tool page in the World Editor. It can be found under the '''Earth''' tab, and it is used to manage landscaping brushes and paint landscaping on the terrain. == Managing Landscaping Brushes == The popup menu in the upper-right corner of the page contains the commands used to manage landscaping brushes. Each command is described in the following...")
  • 12:20, 15 July 2023Info Page (hist | edit) ‎[263 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Info Page. The '''Info Page''' is a tool page in the World Editor. It can be found under the '''Editor''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:19, 15 July 2023Impostors (hist | edit) ‎[280 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Impostors Page. The '''Impostors Page''' is a tool page in the World Editor. It can be found under the '''Instance''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:18, 15 July 2023Grid Page (hist | edit) ‎[263 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Grid Page. The '''Grid Page''' is a tool page in the World Editor. It can be found under the '''Editor''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:18, 15 July 2023Geometries Page (hist | edit) ‎[281 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Geometries Page. The '''Geometries Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:17, 15 July 2023Find Page (hist | edit) ‎[1,381 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Find Page. The '''Find Page''' is a tool page in the World Editor. It can be found under the '''Editor''' tab. The controls in the Find Page can be used to select nodes in the world using search criteria such as the node's name, the node's type, and the type of controller attached to the node. If the '''Name''' box is not empty, then only nodes having the exact name entered, but without case sensiti...")
  • 12:17, 15 July 2023Flare Effect (hist | edit) ‎[1,840 bytes]Eric Lengyel (talk | contribs) (Created page with "A '''flare effect''' renders a billboarded flare around a central point. It can be created in the World Editor by using the Flare Effect tool in the Effects Page. The difference between a flare effect and a quad effect is that the flare effect does not use depth testing, but instead uses an occlusion query to determine how bright it is. == Flare Effect Settings == A flare effect can be configured under the '''Flare''' tab in the Node Info window...")
  • 12:16, 15 July 2023Beam Effect (hist | edit) ‎[1,652 bytes]Eric Lengyel (talk | contribs) (Created page with "A '''beam effect''' renders a polyboarded quad around a central axis. It can be created in the World Editor by using the Beam Effect tool in the Effects Page. A beam effect is similar to a quad effect, with the difference being that the beam rotates about its ''z'' axis where the quad rotates about its origin position. == Beam Effect Settings == A beam effect can be configured under the '''Beam''' tab in the Node Info window. The specific settin...")
  • 12:16, 15 July 2023Quad Effect (hist | edit) ‎[2,221 bytes]Eric Lengyel (talk | contribs) (Created page with "A '''quad effect''' renders a billboarded quad around a central point. It can be created in the World Editor by using the Quad Effect tool in the Effects Page. == Quad Effect Settings == A quad effect can be configured under the '''Quad''' tab in the Node Info window. The specific settings are described in the following table. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Quad Settings'''|}} |- {{Tablerow|'''Quad color'''|The...")
  • 12:15, 15 July 2023Halo Effect (hist | edit) ‎[870 bytes]Eric Lengyel (talk | contribs) (Created page with "A '''halo effect''' renders a volumetric halo around a central point. It can be created in the World Editor by using the Halo Effect tool in the Effects Page. == Halo Effect Settings == A halo effect can be configured under the '''Halo''' tab in the Node Info window. The specific settings are described in the following table. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Halo Settings'''|}} |- {{Tablerow|'''Halo color'''|The c...")
  • 12:14, 15 July 2023Shaft Effects (hist | edit) ‎[5,754 bytes]Eric Lengyel (talk | contribs) (Created page with "right|frame|'''Figure 1.''' Shaft effects in a dungeon. A '''shaft effect''' renders a volumetric light shaft in a particular direction like those shown in Figure 1. There are four types of shaft effect (box, cylinder, truncated pyramid, and truncated cone) that can be created in the World Editor by using the tools in the Effects Page. A shaft effect is rendered with a volumetric light in-scattering shader that calculates the actual distance...")
  • 12:12, 15 July 2023Effects Page (hist | edit) ‎[631 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Effects Page. The '''Effects Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. The Effects Page contains tools for creating the following types of effect nodes. * Quad Effect * Flare Effect * Beam Effect * Tube Effect * Fire Effect * Halo Effect * Shaft Effects * Slug Effects Panel effects can also be created using the tool in...")
  • 12:11, 15 July 2023Atmosphere Page (hist | edit) ‎[414 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Atmosphere Page. The '''Atmosphere Page''' is a tool page in the World Editor. It can be found under the '''Object''' tab. The Atmosphere Page contains tools for creating the following types of nodes. * Fog Space * Skybox == See Also == * World Editor Pages * World Editor Category:Editor")
  • 12:08, 15 July 2023Text Formatting (hist | edit) ‎[11,468 bytes]Eric Lengyel (talk | contribs) (Created page with "Strings displayed by text widgets may contain the embedded formatting directives supported by Slug. A list of formatting directives begins with the two-character sequence '''{#''' and ends with the closing brace '''}'''. Each directive has the form '''directive(''params'')''', where ''params'' can be empty or consist of one or more parameters that apply to the directive. Multiple directives can be included in one list by separating them with semicolons. The followin...")
  • 12:05, 15 July 2023Panel Editor (hist | edit) ‎[13,016 bytes]Eric Lengyel (talk | contribs) (Created page with "right|frame|'''Figure 1.''' The Panel Editor window. The '''Panel Editor''', shown in the image to the right, is a tool included with the C4 Engine that is used to create and edit graphical user interfaces of two different types. First, the panel editor can be used to create windows, dialogs, and heads-up displays that are rendered on top of a game on a two-dimensional desktop, and these interfaces are saved in individual panel resource files. Se...")
  • 12:03, 15 July 2023Expression Evaluation in Scripts (hist | edit) ‎[8,961 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ A script in the C4 Engine can contain methods of the type '''Evaluate Expression''', sometimes called an ''expression method'' for short. An expression method holds a text string representing a mathematical expression that gets evaluated when script execution reaches the method. For an expression method, a text box is displayed on the left side of the Method Info window where a textual expression may be entered. (The Method Info window is o...")
  • 12:02, 15 July 2023Methods (hist | edit) ‎[15,175 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ There are several types of script methods that are defined in the engine module. An application module can define any number of its own custom script methods as well, and they will show up in the palette on the left side of the script editor window. === Basic Methods === The following table describes the operation of the methods built into the engine that appear under the '''Basic''' in the Script Editor. {| {{Table}} {{Table...")
  • 12:01, 15 July 2023Script Editor (hist | edit) ‎[16,437 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The C4 Engine contains a powerful scripting language that can be used to implement event sequences taking place in response to some kind of trigger in a world. A script does not require the use of any textual programming language. Instead, a script is shown as a graphical representation of the actions to be performed and their interdependencies. Scripts support local and global variables, conditional execution, loops, and expression evaluation. For information...")
  • 11:59, 15 July 2023Interpolant Shader Processes (hist | edit) ‎[8,446 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ When the graphics hardware renders a triangle, some values are calculated at each pixel and other values are calculated only at the vertices. The values calculated at the vertices are smoothly varied across the interior of a triangle through a process called perspective-correct interpolation. Hence, these values are called ''interpolants''. The list below describes each of the interpolants available for use in the Shader Editor under the Interpolants tab....")
  • 11:59, 15 July 2023Complex Shader Processes (hist | edit) ‎[8,230 bytes]Eric Lengyel (talk | contribs) (Created page with "This is a list of the complex shader processes that are available in the Shader Editor under the Complex tab. {| {{Table}} {{Tablehead|Process|Description}} |- {{Process|Diffuse Reflection|Shader_diffuse.png|Tangent-space normal '''N''' (optional)|Scalar|Calculates the Lambertian diffuse reflection factor '''N''' · '''L''', where '''L''' is the tangent-space direction to light. The result is saturated to the range [0,1]. If '''N''' is omitted, then...")
  • 11:58, 15 July 2023Mathematical Shader Processes (hist | edit) ‎[8,898 bytes]Eric Lengyel (talk | contribs) (Created page with "This is a list of the mathematical shader processes that are available in the Shader Editor under the Math tab. {| {{Table}} {{Tablehead|Process|Description}} |- {{Process|Absolute Value|Shader_abs.png|Value '''A'''|Value of size matching '''A'''|Calculates the absolute value of each component of the input '''A'''.}} |- {{Process|Add|Shader_add.png|Values '''A''' and '''B'''|Value of size matching larger of '''A''' and '''B'''|Calculates the componentwise sum of the...")
  • 11:57, 15 July 2023Basic Shader Processes (hist | edit) ‎[4,940 bytes]Eric Lengyel (talk | contribs) (Created page with "This is a list of the basic shader processes that are available in the Shader Editor under the Basic tab. {| {{Table}} {{Tablehead|Process|Description}} |- {{Process|Constant Scalar|Shader_constantscalar.png|None|Scalar|Outputs a constant scalar value that is specified in the settings for the process. A ''parameter slot'' may be specified in the process settings. If the parameter slot is set to “Constant” (the default), then the output of this process c...")
  • 11:55, 15 July 2023Shader Editor (hist | edit) ‎[12,817 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ There are two ways to create materials in the C4 Engine. The first method is to simply configure a set of predefined attributes in the Material Editor. This is the easiest and fastest way to create a new material, and most ordinary materials can be made using only those attributes. A more advanced method is to use the Shader Editor to define the exact calculations used by the engine to render a material. The Shader Editor provides you with the power to crea...")
  • 11:54, 15 July 2023Material Editor (hist | edit) ‎[986 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Material Editor window. The '''Material Editor''' is a component of the World Editor, and it is used to create materials by configuring a large set of specific attributes. Materials can also be created with the Shader Editor, and this functionality is also accessed through the Material Editor. == Opening the Material Editor == The Material Editor is usually opened from inside the World Edit...")
  • 11:52, 15 July 2023Modifiers (hist | edit) ‎[7,590 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ A '''modifier''' is something that can be assigned to an instance node in order to change the appearance or properties of the world it references in some way. There are several modifiers built into the engine, and an application may define additional custom modifiers for its own use. Modifiers are assigned to an instance node in the World Editor under the '''Modifiers''' tab in the Node Info window. == Standard Modifiers == The following modifiers are bui...")
  • 11:51, 15 July 2023Connectors (hist | edit) ‎[5,687 bytes]Eric Lengyel (talk | contribs) (Created page with "right|frame|'''Figure 1.''' Connectors can be added or removed from a node under the '''Connectors''' tab in the '''Node Info''' window. Every node in a world can have one or more ''connectors'' attached to it. A connector forms a link between the node that owns it and some other node in the world. Connectors are used for a variety of different purposes, such as connecting a portal to the zone that it leads to or connecting a node with a scr...")
  • 11:50, 15 July 2023World Editor Pages (hist | edit) ‎[6,274 bytes]Eric Lengyel (talk | contribs) (Created page with "A '''page''' is one of the palette-like subwindows shown on the left side of the World Editor. They are organized into five groups under the tabs '''Object''', '''Material''', '''Earth''', '''Instance''', and '''Editor'''. The pages can be rearranged by dragging them upward and downward by their title bars, and they can be collapsed or expanded by clicking on the small box with a plus or minus symbol in it. Each page contains a group of related tools or settings. Th...")
  • 11:49, 15 July 2023World Editor (hist | edit) ‎[16,734 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''World Editor''' tool module is used to create every scene that the C4 Engine displays (however, scene data may be imported from other sources.) All of the data describing a world is stored in a world resource having the <code>.wld</code> extension, and world resources are stored in subfolders of the <code>Data</code> directory. The World Editor is opened by selecting '''New World''' or '''Open World''' from the C4 Menu, or by typing <code>world</code> [''name...")
  • 11:48, 15 July 2023Landscaping Editor (hist | edit) ‎[469 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Landscaping Editor window. The '''Landscaping Editor''' is a tool inside the World Editor that is used to create landscaping paint brushes. The Landscaping Editor is opened by double-clicking on an existing paint brush in the Landscaping Page or by choosing '''New Landscaping Brush...''' from the menu in the Landscaping Page. == See Also == * Landscaping Page Category:Editor")
  • 11:47, 15 July 2023Model Viewer (hist | edit) ‎[5,384 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Model Viewer''' is a plugin tool for the C4 Engine. It is used to preview dynamic models and to import animations for those models. == Opening a Model == The Model Viewer is opened by selecting Open Model from the C4 Menu, or by typing <code>model</code> [''name''] in the Command Console. If the Open Model menu item is selected (or ''name'' is omitted from the console command), then a dialog appears to let you select a model resource. == Model...")
  • 11:45, 15 July 2023Texture Viewer (hist | edit) ‎[1,320 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Texture Viewer window. The '''Texture Viewer''' is part of the '''Texture Tool''' plugin that ships with the C4 Engine, and it is used to preview texture files in the engine's proprietary <code>.tex</code> format. == Opening a Texture == The Texture Viewer is opened by selecting '''Open Texture''' from the C4 Menu, or by typing <code>texture [''name'']</code> in the Command Console. If the '''...")
  • 11:44, 15 July 2023Texture Importer (hist | edit) ‎[13,430 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ Texture maps used by the C4 Engine have the <code>.tex</code> file extension. These texture map resources are created by importing texture images from a subdirectory of the <code>Import</code> directory using the Texture Importer tool. The Texture Importer tool supports <code>.tga</code> files, which may be in 8-bit grayscale, 16-bit color, 24-bit color, or 32-bit color format, with or without RLE compression. When a texture is imported, a <code>.cfg</code> f...")
  • 11:43, 15 July 2023Font Importer (hist | edit) ‎[10,480 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Font Importer window. In most types of applications, text is rendered into a 2D drawing context by the operating system using the information stored in OpenType or TrueType font files. However, this method of text rendering is not compatible with hardware-accelerated 3D graphics, and it suffers from inconsistencies among different platforms. In order to render high-quality text in a 3D environment and pr...")
  • 11:41, 15 July 2023Sound Player (hist | edit) ‎[1,404 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Sound Player window. The '''Sound Player''' is part of the '''Sound Tool''' plugin that ships with the C4 Engine, and it is used to preview sound files in the engine's proprietary <code>.snd</code> format. == Opening a Sound == The Sound Player is opened by selecting '''Open Sound''' from the C4 Menu, or by typing <code>sound [''name'']</code> in the Command Console. If the '''Open Sound''' menu...")
  • 11:41, 15 July 2023Sound Importer (hist | edit) ‎[1,389 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Sound Importer window. The '''Sound Importer''' is part of the '''Sound Tool''' plugin that ships with the C4 Engine, and it generates sound resources in the engine's proprietary <code>.snd</code> file format. The Sound Importer can be run by choosing '''Import Sound''' from the C4 Menu or by typing <code>isound [''name'']</code> in the Command Console. If the '''Import Sound''' menu item is se...")
  • 11:40, 15 July 2023Recording Movies (hist | edit) ‎[2,271 bytes]Eric Lengyel (talk | contribs) (Created page with "The C4 Engine has the capability to record the video and audio output as you're playing a game or using the tools. Video is saved to a set of "sequence" files that can later be imported as a movie, and audio is saved to a standard wave file. A movie is generated from these files using the Movie Importer tool. Recording is started by entering the record command in the Command Console as follows: <code>record ''name'' [-rate ''fps''] [-noaudio] [-novideo]</code>...")
  • 11:39, 15 July 2023Movie Player (hist | edit) ‎[1,140 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|thumb|800px|'''Figure 1.''' The Movie Player window. The '''Movie Player''' is part of the '''Movie Tool''' plugin that ships with the C4 Engine, and it is used to preview movie files in the engine's proprietary <code>.mvi</code> format. == Opening a Movie == The Movie Player is opened by selecting '''Open Movie''' from the C4 Menu, or by typing <code>movie [''name'']</code> in the Command Console. If the '''Open Movie''...")
  • 11:38, 15 July 2023Movie Importer (hist | edit) ‎[3,392 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ right|frame|'''Figure 1.''' The Movie Importer dialog. The '''Movie Importer''' tool is used to generate movies in the proprietary C4 Engine <code>.mvi</code> format. This functionality is part of the '''Movie Tool''' plugin. To generate a movie, either choose '''Import Movie''' from the C4 Menu or type the <code>imovie</code> command in the Command Console. This causes this Import Movie dialog, shown in Figure 1, to be displ...")
  • 11:37, 15 July 2023Open Data Description Language (hist | edit) ‎[329 bytes]Eric Lengyel (talk | contribs) (Created page with "right|thumb|640px|'''Figure 1.''' [http://openddl.org/ The Open Data Description Language.] The Open Data Description Language (OpenDDL) is a generic text-based data language used for a variety of purposes by the C4 Engine. == See Also == * [http://openddl.org/ openddl.org] * Open Game Engine Exchange")
  • 11:35, 15 July 2023Open Game Engine Exchange (hist | edit) ‎[430 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''Open Game Engine Exchange (OpenGEX)''' format is a text-based file format designed to facilitate the transfer of complex scene data between applications such as modeling tools and game engines. The C4 Engine World Editor can import files in the OpenGEX format after they have been exported from programs such as 3ds max and Maya. == See Also == * [http://opengex.org/ opengex.org] * Open Data Description Language")
  • 11:33, 15 July 2023String Importer (hist | edit) ‎[1,626 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''String Importer''' is a plugin that ships with the C4 Engine, and it generates string table resources in the engine's proprietary <code>.str</code> file format. The String Importer can be run by choosing '''Import String Table''' from the C4 Menu or by typing <code>istring [''name'']</code> in the Command Console. If the '''Import String Table''' menu item is selected (or name is omitted from the console command), then a dialog appears to let you select a...")
  • 11:32, 15 July 2023Resource Packer (hist | edit) ‎[973 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Resource Packer''' is a plugin that ships with the C4 Engine, and it is used to create pack files in the engine's proprietary <code>.pak</code> format. For information about how pack files work, see Pack Files and Virtual Directories. == Creating a Pack File == The console command <code>pack ''name''</code> is used to create a pack file, where ''name'' is the name of a top-level subfolder inside the <code>Data</code> folder. Once a pack file has b...")
  • 11:25, 15 July 2023Simple Games (hist | edit) ‎[3,017 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The C4 Engine ships with two basic game projects called <code>SimpleBall</code> and <code>SimpleChar</code>. Both are made up of two files that are heavily commented and represent nearly the minimum amount of code that needs to be written to have a working game module. You can tell the engine to load one of these game module by editing the file <code>Data/Engine/game.cfg</code> and changing the value of the variable <code>gameModuleName</code> to either <code>...")
  • 11:23, 15 July 2023Teleport Tutorial (hist | edit) ‎[9,824 bytes]Eric Lengyel (talk | contribs) (Created page with "This tutorial describes the method used to create an indirect portal that can see another part of a level, apply a material with animated waves to the portal, and make the destination image float up and down. This tutorial doesn't have you modify a world, but instead examines what has been done in a fully functional example. To follow this tutorial, you need the <code>Data/Tutorial/world/Teleport.wld</code> file that is included in the C4 Engine distribution. To enlarg...")
  • 11:21, 15 July 2023Water Tutorial (hist | edit) ‎[6,923 bytes]Eric Lengyel (talk | contribs) (Created page with "This tutorial guides you through the creation of a new water surface with reflection and refraction effects applied. To follow this tutorial, you need the <code>Data/Tutorial/world/Water.wld</code> file that is included in the C4 Engine distribution. To enlarge any of the screenshots below, click on the thumbnail icon below the image. == Step A: Open Water.wld == Open <code>Data/Tutorial/world/Water.wld</code> in the World Editor by typing Ctrl-O or by entering <...")
  • 11:17, 15 July 2023Terrain Tutorial (hist | edit) ‎[6,074 bytes]Eric Lengyel (talk | contribs) (Created page with "This tutorial guides you through the creation of a new terrain block and some basic terrain editing operations. For more general information about the terrain tools, see the Terrain article. To follow this tutorial, you need the <code>Data/Tutorial/world/Terrain.wld</code> file that is included in the C4 Engine distribution. To enlarge any of the screenshots below, click on the thumbnail icon below the image. == Step A: Open Terrain.wld == Open <code>Data/Tutoria...")
  • 11:09, 15 July 2023Oscillation Tutorial (hist | edit) ‎[6,364 bytes]Eric Lengyel (talk | contribs) (Created page with "This tutorial teaches you how to assign an Oscillation Controller to a node in a level. The Oscillation Controller is a specific type of controller that's built into the C4 Engine, and it causes a node to oscillate back and forth between two points with a velocity based on a sine wave. To follow this tutorial, you need the <code>Data/Tutorial/world/Oscillation.wld</code> file that is included in the <code>C4-xxx-Data.zip</code> distribution. To enlarge any of the s...")
  • 11:05, 15 July 2023Portal Tutorial (hist | edit) ‎[7,692 bytes]Eric Lengyel (talk | contribs) (Created page with "In order to allow for arbitrarily large and complex environments, every sizable world built in the C4 Engine World Editor should be organized into multiple zones. The root node of a world is an infinitely large zone, and all other zones are contained within the root zone. When new zones are added to a world, they need to be connected by portals so that it's possible to see from one zone into another. This tutorial describes a simple example in which two rooms are con...")
  • 11:02, 15 July 2023New World Tutorial (hist | edit) ‎[18,594 bytes]Eric Lengyel (talk | contribs) (Created page with "This tutorial teaches you how to create a new world from scratch in the C4 Engine and add all of the essential pieces for a typical game level. To enlarge any of the screenshots below, click on the thumbnail icon below the image. == Step A: Open the World Editor == To open the World Editor with a new empty world, select '''New World''' from the C4 Menu or type Ctrl-N when any user interface window is open. If you're running the demo game, you may want to hit E...")
  • 10:57, 15 July 2023Fog Spaces (hist | edit) ‎[4,926 bytes]Eric Lengyel (talk | contribs) (Created page with "In the C4 Engine, a '''fog space''' is a node that causes fog to be rendered in a scene. It's actually a half-space because all space is divided in half by a single boundary plane, and fog is rendered on one side of the plane. == Creating a Fog Space == right A fog space is placed in a world using the Fog Space tool in the Atmosphere Page (shown to the right) in the World Editor under the Object tab. This tool draws a rectangular...")
  • 10:55, 15 July 2023Motion Blur (hist | edit) ‎[2,490 bytes]Eric Lengyel (talk | contribs) (Created page with "right|frame|'''Figure 1.''' Motion blur is visible due to the movement of the camera and the falling debris. The C4 Engine is capable of rendering full-scene motion blur as a post-processing effect. Motion blur in C4 is based on the concept of a velocity buffer, and it employs a sophisticated algorithm that uses information in both the velocity buffer and the structure buffer to apply the correct blur after the entire scene has been rendered. The...")
  • 10:54, 15 July 2023Cascaded Shadow Mapping (hist | edit) ‎[3,167 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ Cascaded shadow mapping is the method used by the C4 Engine to cast real-time dynamic shadows over very large areas for an infinite light source. This article describes the settings that control the sizes of the cascades and the transition areas between them, which affect the resolution of the shadows and the smoothness involved in changing from one cascade to another. == Shadow Settings == The infinite light generates up to four separate shadows maps during...")
  • 10:53, 15 July 2023Models and Instanced Worlds (hist | edit) ‎[5,423 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ There are two file formats in which scene data can be saved for use in the C4 Engine: # A world file having the <code>.wld</code> extension. # A model file having the <code>.mdl</code> extension. Both of these types of resources can contain just about any kind of scene data, and they can both be loaded into a larger world as instances of the data they contain. This article describes the differences between models and instanced worlds and discusses when one ty...")
  • 10:51, 15 July 2023The C4 Rendering Pipeline (hist | edit) ‎[5,804 bytes]Eric Lengyel (talk | contribs) (Created page with "right|frame|'''Figure 1.''' The major stages of the C4 Engine rendering pipeline. The C4 Engine executes a complex sequence of rendering operations during each frame of gameplay. This article gives a high-level overview of the various components of the C4 Engine rendering pipeline so that users of the engine, having some knowledge of its internal processes, can achieve more efficient results. The following sections describe the rendering stages exec...")
  • 10:49, 15 July 2023Defining a Custom Method (hist | edit) ‎[11,633 bytes]Eric Lengyel (talk | contribs) (Created page with "In the C4 Engine, a ''method'' refers to an individual action that can appear in a script. There are many types of methods built into the engine, and an application can define its own custom methods by implementing new subclasses of the [http://c4engine.com/docs/Controller/Method.html Method] class. == Defining a Method Subclass == In this article, we will use the example of a method called <code>ChangeLightColorMethod</code> that simply changes the color of a light so...")
  • 10:48, 15 July 2023Defining a Custom Controller (hist | edit) ‎[13,036 bytes]Eric Lengyel (talk | contribs) (Created page with "In the C4 Engine, a ''controller'' is attached to a node to give it some kind of dynamic behavior. A controller is represented by a subclass of the [http://c4engine.com/docs/Controller/Controller.html <code>Controller</code>] class and contains all of the information needed to move or change an object in some way. It is often the case that a controller is assigned to a node and configured in the World Editor under the Controller tab in the Node Info window. == Defining...")
  • 10:46, 15 July 2023Distribution Controller (hist | edit) ‎[2,057 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Distribution Controller''' is a special type of controller that forwards the messages it receives to other controllers. This can be useful for performing the same action on multiple nodes in the world using only a single script method. If the target of a script method has a Distribution Controller attached to it, then it's as if the same script method were applied to all of the nodes to which the distribution controller forwards its messages. As an exam...")
  • 10:46, 15 July 2023Animation Controller (hist | edit) ‎[1,728 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Animation Controller''' is a type of controller that can be used to play animations for a generic model. == Settings == The following settings are available for Animation Controllers. {| {{Table}} {{Tablehead|Setting|Description}} |- {{Setting|'''Initial animation name'''|The name of the animation resource that is initially applied to the model.}} |- {{Setting|'''Animation is initially playing'''|If checked, then the animation is initially playing whe...")
  • 10:45, 15 July 2023Physics Controller (hist | edit) ‎[1,426 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Physics Controller''' is a type of controller that represents the global physics simulation. The Physics Controller is built into the core engine, and automatically assigned to the Physics Node when it is placed in the scene. A single Physics Node should be placed in any world that uses the built-in physics simulation by using the tool in the Physics Page. == Settings == The following settings are available for Physics Controllers. {| {{Table}} {{...")
  • 10:45, 15 July 2023Rigid Body Controller (hist | edit) ‎[2,971 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Rigid Body Controller''' is a type of controller that represents a rigid body in a physics simulation. The Rigid Body Controller is built into the core engine, and it's used for all solid objects that move under the control of the built-in physics system. == Settings == The following settings are available for Rigid Body Controllers. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Rigid Body Flags'''|}} |- {{Setting|'''...")
  • 10:44, 15 July 2023Cloth Controller (hist | edit) ‎[5,491 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Cloth Controller''' is the type of controller assigned to a dynamic cloth geometry. The Cloth Controller is built into the core engine, and it is part of the Physics Manager. == Settings == The following settings are available for Cloth Controllers. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Deformable Body Flags'''|}} |- {{Setting|'''Ignore force fields'''|If checked, then force fields do not affect this...")
  • 10:43, 15 July 2023Rope Controller (hist | edit) ‎[5,041 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Rope Controller''' is the type of controller assigned to a dynamic rope geometry. The Rope Controller is built into the core engine, and it is part of the Physics Manager. == Settings == The following settings are available for Rope Controllers. {| {{Table}} {{Tablehead|Setting|Description}} |- {{HeadingSetting|'''Deformable Body Flags'''|}} |- {{Setting|'''Ignore force fields'''|If checked, then force fields do not affect this rop...")
  • 10:43, 15 July 2023Spin Controller (hist | edit) ‎[2,788 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Spin Controller''' is a type of controller that causes a node to continuously spin about a particular axis. The Spin Controller is built into the core engine, and it is one of four ''kinematic'' controllers that cause an object to follow an exact motion. Rigid bodies controlled by the Physics Manager are able to interact with kinematic objects, but they cannot stop kinematic objects or alter their motions. A kinematic object pushes rigid bodies out of it...")
  • 10:42, 15 July 2023Rotation Controller (hist | edit) ‎[3,388 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Rotation Controller''' is a type of controller that causes a node to rotate forward or backward through a given angle. The Rotation Controller is built into the core engine, and it is one of four ''kinematic'' controllers that cause an object to follow an exact motion. Rigid bodies controlled by the Physics Manager are able to interact with kinematic objects, but they cannot stop kinematic objects or alter their motions. A kinematic object pushes rigid b...")
  • 10:42, 15 July 2023Oscillation Controller (hist | edit) ‎[2,960 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Oscillation Controller''' is a type of controller that causes a node to oscillate between two positions on a sine wave. The Oscillation Controller is built into the core engine, and it is one of four ''kinematic'' controllers that cause an object to follow an exact motion. Rigid bodies controlled by the Physics Manager are able to interact with kinematic objects, but they cannot stop kinematic objects or alter their motions. A kinematic object pushes rig...")
  • 10:40, 15 July 2023Movement Controller (hist | edit) ‎[3,273 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ The '''Movement Controller''' is a type of controller that causes a node to move forward and backward between two positions. The Movement Controller is built into the core engine, and it is one of four ''kinematic'' controllers that cause an object to follow an exact motion. Rigid bodies controlled by the Physics Manager are able to interact with kinematic objects, but they cannot stop kinematic objects or alter their motions. A kinematic object pushes rigid bo...")
  • 10:39, 15 July 2023String Tables (hist | edit) ‎[1,512 bytes]Eric Lengyel (talk | contribs) (Created page with "'''String tables''' are used by the C4 Engine to store human-readable text strings in resources that are external to the engine code and game code. The use of string tables is not required, but they can be convenient for storing strings separately in order to make localization easy and allow text to be changed without the need to recompile your game. == String Table Resources == String table resources have the <code>.str</code> file extension and reside inside subfolde...")
  • 10:38, 15 July 2023File Locations (hist | edit) ‎[1,325 bytes]Eric Lengyel (talk | contribs) (Created page with "The following table lists the locations where certain types of files created by the C4 Engine are stored under Windows. {| {{Table}} {{Tablehead|File Type|File Location}} |- {{Tablerow|Log file|<code>C:\Users\''<username>''\AppData\Local\C4 Engine\</code>}} |- {{Tablerow|Configuration files|<code>C:\Users\<username>\AppData\Roaming\C4 Engine\</code>}} |- {{Tablerow|Screenshots and saved games|<code>C:\Users\<username>\Documents\C4 Engine\</code>}}...")
  • 10:36, 15 July 2023Pack Files and Virtual Directories (hist | edit) ‎[3,269 bytes]Eric Lengyel (talk | contribs) (Created page with "The Resource Manager supports pack files and a virtual directory hierarchy. All resources are stored inside the <code>Data</code> folder, where resources can be organized in an arbitrary manner. However, the top-level contents of the <code>Data</code> folder have special meanings. All of the top-level sub-folders of the <code>Data</code> folder behave as if their contents belonged to a single virtual folder at the root of the resource name space. These top-level subfold...")
  • 10:35, 15 July 2023Command Console (hist | edit) ‎[11,243 bytes]Eric Lengyel (talk | contribs) (Created page with "480px|right The '''Command Console''' window can be opened at any time by pressing the tilde/grave key. (On some non-English keyboards, the key directly below the Escape key should be used.) The window displays a command line and an output buffer as shown in the image to the right. If the C4 Engine was built using the debug settings, the window displays "(Debug)" to the right of the build number. The console stores a small command history that can b...")
  • 10:30, 15 July 2023C4 Menu (hist | edit) ‎[4,160 bytes]Eric Lengyel (talk | contribs) (Created page with "The '''C4 Menu''' is opened by clicking on the skull logo in the bottom-left corner of the screen. It contains several commands that are built into the core engine as well as commands that access the plugin tools. Most of these menu commands also have equivalent console commands that can be typed into the Command Console. {| {{Table}} {{Tablehead|Command|Description}} |- {{Tablerow|'''New World'''|Opens the World Editor with a new blank world. You can type...")
  • 10:26, 15 July 2023Release Notes for Version 7.1 (hist | edit) ‎[1,513 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 24, 2023 == Core Engine == * Luminance and chromaticity have been separated for most things that emit light. This applies to light sources, emission attributes, and several special effects. This essentially allows color to be chosen independently of brightness, which can be much higher than 1.0. Brightness is now measured in physical quantities appropriate for the type of object. Infinite lights have illuminance measured in kilolux (...")
  • 10:25, 15 July 2023Release Notes for Version 7.0 (hist | edit) ‎[5,282 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 22, 2023 == Core Engine == * The <code>Color4C</code> class has been renamed to [http://c4engine.com/docs/Math/Color4U.html <code>Color4U</code>] to reflect the fact that it has unsigned components. There are also new classes called [http://c4engine.com/docs/Math/Color2U.html <code>Color2U</code>], [http://c4engine.com/docs/Math/Color2S.html <code>Color2S</code>], and [http://c4engine.com/docs/Math/Color4S.html <code>Color4S</code>],...")
  • 10:24, 15 July 2023Release Notes for Version 6.9 (hist | edit) ‎[4,179 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 2, 2018 (C4 version 6.9 corresponds to Tombstone version 2.9.) * The file formats have been updated a little bit in this version. While it's not a requirement, you ''may'' upgrade your resources to the newer formats by typing <code>updateworlds</code> in the Command Console. '''Always backup your entire Data folder before doing this just in case something goes wrong.''' == Core Engine == * All of the unsigned integer types t...")
  • 10:23, 15 July 2023Release Notes for Version 6.5 (hist | edit) ‎[2,931 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 30, 2017 (C4 version 6.5 corresponds to Tombstone version 2.5.) == Core Engine == === Math Library === * The vector and matrix classes have been redesigned and now have new capabilities that promote higher performance and more legible code. * Vector components can now be accessed using the swizzle syntax that's available in shading languages. For example, a 3D vector <code>v</code> can be treated as another 3D vector with its...")
  • 10:22, 15 July 2023Release Notes for Version 6.2 (hist | edit) ‎[757 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 11, 2017 (C4 version 6.2 corresponds to Tombstone version 2.2.) == Core Engine == === Graphics Manager === * When the <code>GL_NV_alpha_to_coverage_dither_control</code> extension is available, the engine now disables dithering for alpha to coverage rendering. This gets rid of the unsightly dot pattern sometimes visible in dense alpha-tested vegetation. == Tools == === Model Viewer === * Added a scale factor to the animation impor...")
  • 10:22, 15 July 2023Release Notes for Version 6.1 (hist | edit) ‎[4,579 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 29, 2017 (C4 version 6.1 corresponds to Tombstone version 2.1.) == Core Engine == * The project files for Visual Studio have been updated to 2017. == Graphics Manager == * The engine no longer attempts to figure out how fast the GPU is in order to set defaults for all the rendering options. A single set of default options is now used for all GPUs. * By default, the engine now tries to create a 1920×1080 full-screen renderin...")
  • 10:21, 15 July 2023Release Notes for Version 6.0 (hist | edit) ‎[3,230 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' January 27, 2017 (C4 version 6.0 corresponds to Tombstone version 2.0.) == Core Engine == * Support for the Open Data Description Language has been updated to version 2.0. === Graphics Manager === * A few new workarounds have been implemented to deal with subtle bugs in the AMD graphics driver. === Interface Manager === * All text drawing, both in the user interface and in panel effects, now uses our new technology to render glyphs on...")
  • 10:20, 15 July 2023Release Notes for Version 5.5.1 (hist | edit) ‎[1,219 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' December 6, 2016 (C4 version 5.5.1 corresponds to Tombstone version 1.5.1.) == Core Engine == * The API documentation has been corrected in many places to update function names in cross references. === World Manager === * New settings have been added to the Interaction property that let you specify object-space axis and angle constraints that have to be satisfied for an object to appear interactive. The direction that the camera is look...")
  • 10:20, 15 July 2023Release Notes for Version 5.5 (hist | edit) ‎[1,554 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 16, 2016 (C4 version 5.5 corresponds to Tombstone version 1.5.) == Core Engine == === Graphics Manager === * This version of the engine contains a workaround that avoids a bug in the current AMD graphics drivers. This has to do with the code that resolves the multisample frame buffer. === Interface Manager === * The appearance of the set of GUI widgets has been updated to be more crisp and to be ready for high DPI displays. Th...")
  • 10:19, 15 July 2023Release Notes for Version 5.0 (hist | edit) ‎[5,188 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 20, 2016 (C4 version 5.0 corresponds to Tombstone version 1.0.) == Core Engine == * All C-style casts have been changed to constructor syntax. * The <code>*</code> and <code>%</code> operators for dot product and cross product have been removed from the engine. The <code>Dot()</code> and <code>Cross()</code> functions should always be used instead. * The container modification and iteration functions have been made more verbos...")
  • 10:19, 15 July 2023Release Notes for Version 4.5 (hist | edit) ‎[3,327 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 28, 2015 == Core Engine == * The C4 Engine now runs on iOS devices. Separate Xcode project files are included with the engine for those who have a license for mobile development. The C4 Engine currently runs on iOS devices containing an A7 or A8 processor, listed below. ** iPad Air and iPad Air 2 ** iPad Mini with Retina display and iPad Mini 3 ** iPhone 5s and iPhone 6 * Custom properties, controllers, properties, forces, modifiers...")
  • 10:18, 15 July 2023Release Notes for Version 4.2 (hist | edit) ‎[2,683 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' January 11, 2015 == Core Engine == === Graphics Manager === * Screen-space depth derivatives are now stored in the structure buffer along with the existing high-precision linear depth value. This allows for higher quality rendering along depth discontinuities, making effects such as SSAO look better. When motion blur is enabled, screen-space velocities are now stored in a separate render buffer. * Support for the Nvidia driver API has be...")
  • 10:17, 15 July 2023Release Notes for Version 4.1 (hist | edit) ‎[4,467 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' December 25, 2014 == Core Engine == * The format of animation resources has changed in this release in order to accommodate morph weight animation. Existing animation resources need to be updated before they can be used in version 4.1. A conversion utility has been included, and it can be run by typing "updateanims" in the command console. This utility will update all <code>.anm</code> files in the <code>Data</code> directory hierarchy. ''...")
  • 10:17, 15 July 2023Release Notes for Version 4.0 (hist | edit) ‎[18,992 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' October 14, 2014 * Note that version 4.0 may not be able to read world, model, panel, and material resources that were saved in versions earlier than version 3.5. Older resources should be updated using the <code>updateworlds</code> utility in version 3.5.x before using them in version 4.0. * Like version 3.5.x, this release contains a utility that updates world and model resources to the current format....")
  • 10:16, 15 July 2023Release Notes for Version 3.5.1 (hist | edit) ‎[1,051 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' January 22, 2014 * The <code>updateworlds</code> utility included with version 3.5 has been expanded to update panel and material resources in addition to the world and model resources that it previously updated. This utility is run by typing <code>updateworlds</code> in the command console, and it should be run to prepare your resources for version 4.0. '''Note that this will overwrite all existing <code>.wld</code>, <code>.mdl</code>, <co...")
  • 10:15, 15 July 2023Release Notes for Version 3.5 (hist | edit) ‎[17,560 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' January 8, 2014 * This release includes a utility function that automatically updates all world and model resources so that they use the newest format. The engine currently contains a significant amount of code that's necessary to support old formats going back many years, and this code will be removed from version 4.0. It will be necessary to run the update utility in version 3.5 before your world and model resources can be used in version...")
  • 10:14, 15 July 2023Release Notes for Version 3.0 (hist | edit) ‎[15,903 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 29, 2013 '''WARNING:''' In version 3.0, all shaders are permanently changed to a new layout when a world is opened. See Shader Editor below. Just in case something goes wrong, please be sure to make a backup of your <code>Data</code> folder before running version 3.0. == Core Engine == * The Visual Studio projects now use shared property sheets to specify build settings. * The <code>ToolCode</code> directory has been removed, and al...")
  • 10:13, 15 July 2023Release Notes for Version 2.10.3 (hist | edit) ‎[703 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 31, 2013 * This release several few minor improvements and bug fixes for version 2.10. There are no new features. * A problem that could occur if a resource was requested twice with name strings having different case has been corrected. * The <code>EditTextWidget</code> now automatically sets the text rendering line count when multi-line editing is enabled. * The perspective exclusion mask is now correctly passed through from a pan...")
  • 10:12, 15 July 2023Release Notes for Version 2.10.2 (hist | edit) ‎[766 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 7, 2013 * This release several few minor improvements and bug fixes for version 2.10. There are no new features. * A problem with the shader used to render movies with an alpha channel has been corrected. * The collision detection structures have been expanded to handle meshes with a much larger number of triangles, and picking issues for dense meshes have been corrected. * Path control point picking in the World Editor has been im...")
  • 10:12, 15 July 2023Release Notes for Version 2.10.1 (hist | edit) ‎[498 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' December 1, 2012 * This release contains a few minor bug fixes for version 2.10. There are no new features. * Texture coordinates for cloth geometries are now generated by default so that the front and back sides of the cloth match. * Some problems that could occur when a shader is saved in the Shader Editor have been corrected. * Cases in which the text box in a save file picker would not be populated properly when a file name was click...")
  • 10:11, 15 July 2023Release Notes for Version 2.10 (hist | edit) ‎[9,393 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 16, 2012 == Core Engine == * The engine can now be compiled for 64-bit Windows. New project files for Visual Studio 2012 are included, and they have 64-bit configurations in addition to 32-bit. * Several parts of the Mac OS X code in the engine have been rewritten to use the Cocoa API. The engine no longer calls any deprecated API functions, and it can compile with the latest Mac SDK for 32-bit and 64-bit targets. * The <code>fl...")
  • 10:10, 15 July 2023Release Notes for Version 2.9.1 (hist | edit) ‎[754 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' June 1, 2012 * This release contains several performance improvements and minor bug fixes in addition to those mentioned below. == Core Engine == === Graphics Manager === * Each material attribute now has a flag called <code>kAttributeMutable</code> that determines whether the constant data, such as the color, stored in the attribute can be changed after a shader has been built. This flag is not set by default as an optimization that lea...")
  • 10:10, 15 July 2023Release Notes for Version 2.9 (hist | edit) ‎[2,818 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 20, 2012 * The C4 Engine now runs under Linux. Generic makefiles can be found in the <code>Linux</code> folder, and NetBeans projects can be found in the <code>NetBeans</code> folder. The engine builds for 64-bit by default. The Browser, Movies, and Font Generator plugins have not been brought to Linux yet. All other tool plugins and game modules are fully supported. == Core Engine == * The direct use of built-in integer types <code>l...")
  • 10:09, 15 July 2023Release Notes for Version 2.8 (hist | edit) ‎[15,021 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 17, 2012 == Core Engine == * The config file <code>variables.cfg</code> is now named <code>engine.cfg</code>. This change was made because the file can now store more information than just the values of the system variables. === Graphics === * The velocity-depth-gradient buffer has been given the new name "structure buffer", and there is a new option in the Graphics Manager called <code>kRenderOptionStructureEffects</code>. If eith...")
  • 10:09, 15 July 2023Release Notes for Version 2.7.1 (hist | edit) ‎[1,101 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 14, 2011 == Core Engine == * A workaround has been implemented for a shadow trashing bug in the AMD graphics drivers that occurs mainly on Radeon HD 4xxx GPUs. * A problem related to wheel sensitivity on certain mice has been fixed. * A problem that caused geometries rendered as decals to not be completely opaque has been fixed. * A bug in the cylinder trigger detection code has been fixed. == Tools == * A new <code>Preproces...")
  • 10:08, 15 July 2023Release Notes for Version 2.7 (hist | edit) ‎[8,078 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 30, 2011 '''IMPORTANT:''' The model animation format has changed in this version of the engine, and all animation resources (with the <code>.anm</code> extension) must be converted to the new format before they can be used. To convert your animations, run version 2.7 of the engine, open the command console, and type <code>convert</code>. This will automatically convert all of the animation resources in your entire <code>Data</code...")
  • 10:07, 15 July 2023Release Notes for Version 2.6 (hist | edit) ‎[12,258 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 14, 2011 * '''IMPORTANT:''' In this version, some backwards compatibility with old versions of the engine has been removed. If you have problems with old world files in version 2.6, then please open those files in version 2.5.5 and save them in the World Editor before opening them in version 2.6 again. Be sure to backup your data first. == Core Engine == * A special flag named <code>C4FASTBUILD</code> has been added at the top of the...")
  • 10:06, 15 July 2023Release Notes for Version 2.5.5 (hist | edit) ‎[3,822 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 14, 2011 == Core Engine == === Graphics === * The shadow mapping capabilities used by the landscape light have been redesigned. There is no longer any restriction on geometry size relative to the section sizes for a landscape light. This allows smaller section sizes closer to the camera, which produce higher-resolution shadow maps, without having to worry about objects spanning more than two consecutive sections. * The timer query...")
  • 10:06, 15 July 2023Release Notes for Version 2.5.2 (hist | edit) ‎[895 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 1, 2011 == Core Engine == === System Utilities === * Additional support for foreign keyboards has been implemented. * The function registered for a mouse event handler must now return a boolean value indicating whether it handled the event. Like the keyboard event handlers, a mouse event handler function will only be called if the preceding event handler returned <code>false</code>. === World Manager === * Corrected a situation i...")
  • 10:05, 15 July 2023Release Notes for Version 2.5.1 (hist | edit) ‎[1,291 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 14, 2011 == Core Engine == === Interface Manager === * The list widget now allows items to be inactivated so that they can't be selected. A list item is made inactive by setting the <code>kWidgetInactive</code> bit with the <code>[http://c4engine.com/docs/InterfaceMgr/Widget_SetWidgetState.html SetWidgetState()]</code> function. === System Utilities === * Support for non-English keyboards has been significantly improved under W...")
  • 10:04, 15 July 2023Release Notes for Version 2.5 (hist | edit) ‎[7,228 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 12, 2011 == Core Engine == === Interface Manager === * The systems for rendering on-screen interfaces and in-game panel effects have been unified into a single architecture that uses the <code>[http://c4engine.com/docs/InterfaceMgr/Widget.html Widget]</code> class hierarchy. The <code>Element</code> class hierarchy has been removed from the engine, and there is now a <code>Widget</code> subclass corresponding to each <code>Elemen...")
  • 10:03, 15 July 2023Release Notes for Version 2.1.2 (hist | edit) ‎[599 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 27, 2010 == Core Engine == * This release is primarily a tuning update. Several miscellaneous performance and robustness improvements have been made throughout the engine. == Tools == === Collada Importer === * The Collada importer now removes degenerate triangles when a mesh is imported. (A degenerate triangle is one for which at least two vertices have exactly the same position.) == Tutorials == * The Hell's Mouth and Lost...")
  • 10:03, 15 July 2023Release Notes for Version 2.1.1 (hist | edit) ‎[5,176 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 20, 2010 == Core Engine == === Graphics === * A new material flag called "Use alpha multisample coverage" has been added. This turns on transparency antialiasing when a multisampled rendering context is being used. Alpha multisample coverage can be used to soften up the outlines of alpha-tested materials. * A global light detail level has been added to the engine. Any light source can now specify a detail level, and the light w...")
  • 10:02, 15 July 2023Release Notes for Version 2.1 (hist | edit) ‎[2,988 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 8, 2010 == Core Engine == === Graphics === * A new impostor system has been added to the engine for rendering large numbers of objects such as trees. ** Impostor images are pre-generated for an object for 8 directions (every 45 degrees) about the vertical axis. When rendered, two images are noise-blended in a small transition range between two 45-degree sectors to avoid popping. ** There is a transition region inside which the real o...")
  • 10:02, 15 July 2023Release Notes for Version 2.0 (hist | edit) ‎[22,473 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 31, 2010 == Core Engine == === Physics === * This release contains the first version of the native C4 physics architecture. The native physics processing is enabled in a particular world by placing a special "physics node" anywhere in the root zone. The physics node has a physics controller attached to it for which global properties such as the acceleration of gravity can be adjusted. If a world does not contain a physics node in its...")
  • 10:00, 15 July 2023Release Notes for Version 1.5.9 (hist | edit) ‎[2,528 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 28, 2009 == Core Engine == === Shaders === * The Expand process has been added to the engine. It multiplies the input by 2.0 and then subtracts 1.0. This is useful for expanding values from the [0,1] range to the [−1,1] range. (Note that the Normal Map process already implicitly expands the values read from its texture, so it's not necessary to use an Expand process after a normal map is read.) === Scripts === * A new Set Ex...")
  • 09:59, 15 July 2023Release Notes for Version 1.5.8 (hist | edit) ‎[2,508 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 4, 2009 == Core Engine == === Shaders === * A new "Shader Time" process has been added to the Shader Editor. It outputs the engine's internal shader timer, which has a period of 120 seconds. The time output in the shader is normalized to the range [0,1]. === Miscellaneous === * The skinning code has been modified in this release to allow normals and tangents to be skinned instead of calculated separately. New performance optimiza...")
  • 09:58, 15 July 2023Release Notes for Version 1.5.5 (hist | edit) ‎[2,835 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 21, 2009 == Core Engine == === Scripts === * A new standard script method called "Get String Length" has been added to retrieve the length of a string. Ordinarily, a script variable would be fed into the method's "Input string" setting. The method outputs an integer. === Miscellaneous === * The skin controller now performs skinning updates as a Job Manager task. The allows multiple models to be skinned in parallel on multi-core CP...")
  • 09:58, 15 July 2023Release Notes for Version 1.5.2 (hist | edit) ‎[1,407 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 13, 2009 == Core Engine == === Terrain === * The method by which normal vectors for terrain geometries are calculated has been changed again. Existing terrains can be updated by selecting all of the geometries in a block and choosing Rebuild Primitive from the Geometry menu in the World Editor. * A new setting has been added to the Graphics Options dialog called "Use high-detail terrain textures". If this box is unchecked, then...")
  • 09:57, 15 July 2023Release Notes for Version 1.5.1 (hist | edit) ‎[2,259 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 8, 2009 == Core Engine == === Terrain === * The shader code for terrain texturing has been enhanced for hardware supporting array textures (currently G80 and later). When texture array functionality is available, terrain now renders faster and at higher quality while also using less memory for the palette of terrain textures. Existing terrain palette textures must be re-imported before it's possible to take advantage of the new e...")
  • 09:57, 15 July 2023Release Notes for Version 1.5 (hist | edit) ‎[8,029 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' December 27, 2008 * A new voxel terrain system has been added to the engine, along with several terrain editing tools in the World Editor. More information about these can be found in the Editing Terrain article. Support for the old terrain geometry has been removed from the engine, so any old terrain in existing worlds will disappear when opened in the new version of the engine. To preserve the old terrain, select it in the editor unde...")
  • 09:56, 15 July 2023Release Notes for Version 1.4.10 (hist | edit) ‎[2,037 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 25, 2008 * A new cross-platform voice chat system has been added to the engine as the Audio Capture Manager. In a multiplayer game, audio can be captured on each player's machine, compressed using a variable bit-rate algorithm, and distributed through the server to the other players in the game. In the demo game, there are options for enabling or disabling sending and receiving of voice chat, and there's a volume control for received v...")
  • 09:55, 15 July 2023Release Notes for Build 149 (hist | edit) ‎[7,405 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 8, 2008 * The graphical scripting system in the engine has been replaced with a far more powerful design that supports variables, loops, and conditional execution. All previously existing scripts will continue to run without modification. Details about the new scripting system are too extensive to include here, but they can be found in the Graphical Scripting Language article. * The <code>Function::Execute()</code> function now ta...")
  • 09:54, 15 July 2023Release Notes for Build 148 (hist | edit) ‎[3,995 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 13, 2008 * Glow and bloom effects have been added to the post-processing phase of the rendering system. No distinction is made between glow and bloom during post-processing, but the two effects are created by different parts of the shading equations. Glow comes from the emission component's alpha channel, and bloom is determined by the intensity of the specular component. Glow and bloom are enabled on a per-material basis, and each ha...")
  • 09:53, 15 July 2023Release Notes for Build 147 (hist | edit) ‎[845 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 25, 2008 * This release is primarily an update that contains the demo shown at GDC. * A new enemy character, the spider, has been added to the demo game. Its controller is now the simplest example of a controller for a non-player character. * A world can now be paused by setting the <code>kWorldPaused</code> flag with the <code>[http://c4engine.com/docs/WorldMgr/World_SetWorldFlags.html World::SetWorldFlags()]</code> function. (C...")
  • 09:52, 15 July 2023Release Notes for Build 146 (hist | edit) ‎[12,417 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 7, 2008 * With this release, we begin officially supporting the Intel GMA X3000 series of graphics chips under Windows. Some driver issues are currently preventing us from supporting these chips on the Mac. * A new post-processing effect has been implemented that enables distortion effects such as heat haze. Any effect can be configured so that it renders into the distortion buffer instead of into the main scene by using the <code...")
  • 09:51, 15 July 2023Release Notes for Build 145 (hist | edit) ‎[2,799 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 27, 2007 * Implemented a new GUI rendering system. For details, see the wiki article about Creating a GUI Skin. * Added a radio button interface element as the <code>RadioButtonElement</code> class. * Cameras now have a new flag to indicate that they may temporarily move outside their owning zone. This is useful in such cases as a camera mounted on a gun that's attached to a character. A similar flag has existed for lights, and n...")
  • 09:50, 15 July 2023Release Notes for Build 144 (hist | edit) ‎[5,414 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 9, 2007 * The Resource Manager has been redesigned and now supports pack files and a virtual directory hierarchy. All resources are still stored inside the Data folder, but the subfolders that previously separated resources by type no longer exist. Resources can now be organized in an arbitrary manner inside the Data folder. However, the top-level contents of the Data folder have special meanings. * All of the top-level subfolders...")
  • 09:49, 15 July 2023Release Notes for Build 143 (hist | edit) ‎[2,080 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' October 19, 2007 * Reference markers can now be expanded and collapsed dynamically from code using the <code>ReferenceMarker::Expand()</code> and <code>ReferenceMarker::Collapse()</code> functions. * The <code>TextElement</code> interface element class has been rewritten and now combines all of the functionality that was previously spread over four different classes. Several new features have also been added that can be used almost everywh...")
  • 09:49, 15 July 2023Release Notes for Build 142 (hist | edit) ‎[3,956 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' October 9, 2007 * The Tool Manager has been renamed to the Plugin Manager. The <code>Tool</code> class is now the <code>Plugin</code> class, the <code>ToolMgr</code> class is now the <code>PluginMgr</code> class, and the <code>Tools</code> folder is now the <code>Plugins</code> folder. * A new feature has been added to the in-game interface panels that allows an impostor image to be displayed beyond a given distance instead of the set of e...")
  • 09:48, 15 July 2023Release Notes for Build 141 (hist | edit) ‎[4,871 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' October 3, 2007 * The Info page in the World Editor now displays the number of instances in the scene corresponding to the node for which the gizmo is currently shown. The number of instances is equal to the total number of nodes referencing the same data object. * When replacing materials on individual surfaces of a geometry that has multiple instances in the scene, the World Editor now enforces the preservation of the material segmentati...")
  • 09:47, 15 July 2023Release Notes for Build 140 (hist | edit) ‎[9,610 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 27, 2007 * '''IMPORTANT:''' It is particularly important that you backup your resources before installing this build. The World Editor will throw away obsolete information when you open files, and worlds will be saved in an updated format. * After installing build 140, you should open each of your worlds in the World Editor and then immediately save them to automatically update them to the new format. Resource sizes will decrease...")
  • 09:46, 15 July 2023Release Notes for Build 139 (hist | edit) ‎[182 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' August 21, 2007 * Implemented a workaround for an ATI driver crash that some people have been experiencing. * Fixed a couple minor bugs in the engine.")
  • 09:46, 15 July 2023Release Notes for Build 138 (hist | edit) ‎[2,683 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' August 18, 2007 * A new script method called "Change Settings" has been added to the core scripting system. This method lets a script change the same settings for an object that are displayed in the World Editor's Get Info dialog. Not all of every object's settings are exposed to scripts because there are some things that can't be changed dynamically, but in general, any object setting for which it makes sense to change can now be changed b...")
  • 09:45, 15 July 2023Release Notes for Build 137 (hist | edit) ‎[8,825 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' August 4, 2007 * The Sound Manager has been almost completely rewritten and now includes a much larger set of features. More important than the number of features, though, is the fact that every single feature is available on all platforms and with all sound hardware. The engine no longer contains any support for vendor-specific libraries like EAX and instead uses a custom multi-threaded software audio renderer. This gets rid of all the hea...")
  • 09:44, 15 July 2023Release Notes for Build 136 (hist | edit) ‎[1,218 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 22, 2007 * There have been several problems with input not responding on the Mac lately. This issue has been traced to behavior changes in some MacOS X HID Manager functions introduced by the latest security updates from Apple. Some users would have started experiencing the problem after upgrading to MacOS 10.4.9, and other users would have seen the problem only after installing security update 2007-004. A workaround has been implemente...")
  • 09:43, 15 July 2023Release Notes for Build 135 (hist | edit) ‎[5,938 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 12, 2007 * Antialiasing has been re-implemented in the engine using the <code>GL_EXT_framebuffer_multisample</code> extension. The number of samples per pixel can be set in the Graphics Settings dialog, and the engine supports up to 8 samples when available. * The weapon code in the demo game has received a big upgrade. All weapons now shoot precisely from their barrels. More importantly, the proton cannon is now implemented. When it's...")
  • 09:42, 15 July 2023Release Notes for Build 134 (hist | edit) ‎[2,613 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 14, 2007 * Added a new <code>PolygonZone</code> class that allows a zone to have the shape of an extruded convex polygon. In the World Editor, polygon zones are drawn in a manner similar to portals, in which new vertices can be inserted, and existing vertices can be individually dragged around or removed. The polygonal shape defines the base of the zone, and the height of the zone is controlled by an additional handle at the top cente...")
  • 09:42, 15 July 2023Release Notes for Build 133 (hist | edit) ‎[9,365 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 6, 2007 * FBOs are now enabled by default on the Mac. They seem to be working correctly in MacOS 10.4.9. * The <code>System</code> class has been removed from the engine, and its functions have been moved to the <code>Engine</code> class. All occurrences of <code>System::</code> and <code>TheSystem-></code> should be changed to <code>Engine::</code> and <code>TheEngine-></code>, respectively. * With the intent of reducing the number...")
  • 09:41, 15 July 2023Release Notes for Build 132 (hist | edit) ‎[11,041 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 14, 2007 * '''NOTE:''' A lot of changes have been made to the distribution of source code files among the three code directories in this build. The directories have been renamed to "EngineCode", "GameCode", and "ToolCode", without spaces, so unzipping into an existing installation will result in three new code directories being created with clean groups of files. * The World Editor has received a massive upgrade, and the existing...")
  • 09:40, 15 July 2023Release Notes for Build 131 (hist | edit) ‎[855 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 20, 2006 * Implemented an example of a polyboard particle system. The <code>SpiralHelixEffect</code> class in the Game Module animates a particle system for which every group of 8 particles forms a ribbon. * Added a workaround to the Collada Importer that would handle apparently erroneous bone weights of zero generated by the ColladaMax 1.06 export plugin. * Fixed a scale problem that affected Collada exports from 3D Studio MAX....")
  • 09:40, 15 July 2023Release Notes for Build 130 (hist | edit) ‎[1,904 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 10, 2006 * Finished the animation blending system based on a new design. There are three built-in animator subclasses that provide general functionality, and applications can define custom animators for more specific purposes (see next note). Each animator in the tree assigned to an entity targets a range of nodes rooted at a given target node (which is often the entity itself). * The <code>FrameAnimator</code> class is used to pl...")
  • 09:39, 15 July 2023Release Notes for Build 129 (hist | edit) ‎[5,741 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' November 3, 2006 * Designed and implemented an animation blending system. The <code>Entity</code> class can now own a tree of Animator objects that calculate transforms for the node hierarchy rooted at the entity node. Each animator has its own target root node so that it can be assigned to a subtree of the whole entity. Animators can calculate transforms in any way they wish, and the final transforms output by the root animator are ultimat...")
  • 09:38, 15 July 2023Release Notes for Build 128 (hist | edit) ‎[2,494 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' October 1, 2006 * The engine now builds as a universal binary on the Mac, but the Intel version has not yet been tested. * Made changes to the Network Manager and Message Manager that are too numerous to list here. The vast majority of the changes are finished, but there will be a few more in the next build, mostly to move some functionality currently in the demo game module into the engine module. * Added a lot of new gameplay code to...")
  • 09:38, 15 July 2023Release Notes for Build 127 (hist | edit) ‎[5,190 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' September 15, 2006 * Implemented a large amount of new multiplayer functionality. The overall system is a work in progress and will be completed in build 128. The primary enhancement in this release is a new message journal that stores certain controller messages. The journal is sent to client machines when they join a game in order to update the state of various controllers before the current world is displayed. When a client machine recei...")
  • 09:37, 15 July 2023Release Notes for Build 126 (hist | edit) ‎[14,571 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' August 31, 2006 * '''IMPORTANT:''' In the unlikely case that you have world or model resources that have not been saved in build 113 or later, you need to open them and save them in build 125 before opening them in build 126. * '''IMPORTANT:''' Because of some format changes in this build, it's recommended that you open and save all worlds and models to update your resources. In most cases, resources will shrink in size slightly. * '''I...")
  • 09:36, 15 July 2023Release Notes for Build 125 (hist | edit) ‎[1,801 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' June 30, 2006 * Implemented an entity placement tool pane in the World Editor. An entity is placed in the world by selecting an entity type from the list, clicking on the entity's position, and dragging to rotate it into the desired orientation. This places an actual entity node into the scene, but it has no model hierarchy until the world is loaded for gameplay. An entity may be initially disabled in the Get Info dialog, in which case it i...")
  • 09:36, 15 July 2023Release Notes for Build 124 (hist | edit) ‎[3,097 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' June 25, 2006 * Implemented support for version 1.4 of the Collada format. The Collada Importer tool can now read both versions 1.3 and 1.4, and everything that was supported in version 1.3 is now supported in version 1.4. * Introduced frame time normalization in the World Manager. This is currently applied to velocity-dependent effects like full-scene motion blur and line particles, giving them a uniform appearance at all frame rates. By...")
  • 09:35, 15 July 2023Release Notes for Build 123 (hist | edit) ‎[1,824 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' June 6, 2006 * A pbuffer fallback has been implemented on the Windows platform, and it is used if the <code>GL_EXT_packed_depth_stencil</code> extension is not present. An equivalent fallback has not been implemented for the Mac platform because it does not support pbuffers that can share a rendering context when the pixel format is identical. * Motion blur can now be rendered on all supported hardware running on the Windows platform. *...")
  • 09:35, 15 July 2023Release Notes for Build 122 (hist | edit) ‎[8,783 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 24, 2006 * '''IMPORTANT:''' In order to use the save game functionality in this release, you must update any world that will be saved as a save game to a slightly newer format. To update a world, simply open the world in the World Editor and then immediately save it. Although no problems are anticipated, it's highly recommended that you backup your WLD resources before running this build. * Implemented delta save files for saved games...")
  • 09:34, 15 July 2023Release Notes for Build 121 (hist | edit) ‎[1,264 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 24, 2006 * Added a new procedural fire effect. This replaces the old effect that's been in the engine and is vastly superior in multiple respects. The <code>FireEffect</code> class is now in the engine core and is accessible in the World Editor. The fire effect can be placed in a world by using the tool in the markers/triggers/effects panel. The Get Info dialog for the fire effect contains settings for the radius and height of the fir...")
  • 09:34, 15 July 2023Release Notes for Build 120 (hist | edit) ‎[658 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 20, 2006 * Implemented the rectangular select tool in the World Editor. It respects the selection mask, and the shift key can be used to add to an existing selection. Because of the different kinds of bounding volumes that some things use, you may select a little more than you expect for a particular dragged out rectangle. * Fixed a bug introduced in build 119 that would cause geometries not to update properly in the World Editor....")
  • 09:33, 15 July 2023Release Notes for Build 119 (hist | edit) ‎[4,779 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' April 18, 2006 * For fog spaces, you can now select whether to use a constant density or a density that increases linearly with distance from the boundary plane. The linear density function is slightly more expensive (one additional fragment program instruction on NV40+, a surprise considering the extra complexity), but it can look much better when the camera is near the fog boundary. * Fog spaces now use the occlusion system to cull obje...")
  • 09:32, 15 July 2023Release Notes for Build 118 (hist | edit) ‎[676 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 28, 2006 * Added a validation function to the <code>PropertyRegistration</code> class so that property subclasses could identify which types of nodes they are supposed to be used with. This works in the same way that the validation function works for controllers. The validation function is only used to determine which available properties to list for a particular node in the Get Info dialog. * Fixed a problem in the Collada Importer...")
  • 09:32, 15 July 2023Release Notes for Build 117 (hist | edit) ‎[3,405 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' March 20, 2006 * The standard appearance of the graphical user interface has been overhauled. The new design doesn't have so much color in it and uses the more familiar dark-on-light shading for text. The fonts have been updated to look nicer and be more readable. * Added the <code>$backgroundColor, $windowColor,</code> and <code>$hiliteColor</code> permanent variables to the Interface Manager. These can be changed in the <code>Data/CFG/V...")
  • 09:31, 15 July 2023Release Notes for Build 116 (hist | edit) ‎[12,058 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' February 28, 2006 * The Get Info dialog in the World Editor has been expanded to include controller and texture mapping settings that used to be shown in separate windows. The Get Info dialog now has multiple tabs, and the Controller tab is always present. Geometries now have tabs for geometry building flags, rendering flags, collision properties, and texturing settings. * There are now a few additional tabs in the Get Info dialog: Genera...")
  • 09:30, 15 July 2023Release Notes for Build 115 (hist | edit) ‎[2,153 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' January 12, 2006 * This is a tune-up build that corrects some existing problems, most of which are rather minor, and makes various improvements in the sample game module. * Changed the way that grenades behave in the game module. Previously, the grenade controller determined that a grenade should stop when it collides with something if the velocity component along the collision normal was small enough. This caused the grenades to stick to...")
  • 09:29, 15 July 2023Release Notes for Build 114 (hist | edit) ‎[10,103 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' January 9, 2006 * Fog has been completely redesigned in this build. Fog is no longer a property of a zone, and any existing uses of the old fog property will disappear from worlds opened in this build. Fog is now controlled by placing a fog space node into the scene. The zone containing the fog space node is automatically fogged, and other zones may be linked to the fog space so that one fog space can be used to fog areas covered by more th...")
  • 09:28, 15 July 2023Release Notes for Build 113 (hist | edit) ‎[9,844 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' December 26, 2005 * '''WARNING:''' It is strongly recommended that you backup <code>WLD</code> and <code>MDL</code> resources before upgrading to this version of the code. The geometry serialization format has changed a little, and existing resources will automatically be updated to the new format when they are loaded and then saved (see next item). Although no problems are anticipated, a backup of your old files should be kept until you're...")
  • 09:27, 15 July 2023Release Notes for Build 112 (hist | edit) ‎[8,542 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' October 19, 2005 * This build includes a heavily commented sample game module called "Skeleton" that represents nearly the minimum amount of code that needs to be written to have a working game module. You can tell the engine to load this game module by editing the file <code>Data/CFG/Variables.cfg</code> and changing the value of the variable <code>$applicName</code> to "Skeleton". To get the primary game module back, change <code>$applicN...")
  • 09:25, 15 July 2023Release Notes for Build 111 (hist | edit) ‎[1,901 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 26, 2005 * Fixed a minor glitch in the light region determination code that could cause light regions generated by large portals to be too small. This only affected point lights, and could cause the illumination to drop out too early as the camera turned away from the portal. * Implemented a new diagnostic mechanism that displays light regions. This is toggled on/off by using the command <code>rgns</code> in the command console. The...")
  • 09:22, 15 July 2023Release Notes for Build 110 (hist | edit) ‎[985 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' July 5, 2005 * Made some adjustments so that the projects will build correctly on the Mac using Xcode 2.0. * The main project now compiles and links successfully under Dev-cpp. However, there are still issues preventing the game module and tools from being linked to the main executable. * Removed the requirement that the <code>GL_ARB_fragment_program_shadow</code> extension be available in order to get the ARB1 shader path. The Mac and...")
  • 09:22, 15 July 2023Release Notes for Build 109 (hist | edit) ‎[2,636 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' June 23, 2005 * Added the <code>PaneBoxElement</code> interface element. This provides a tabbed box that can be used for switching among panes containing different groups of settings. * Rearranged the material attribute settings to use multiple panes. * Added reflection and refraction settings to the material manager. These can be used with remote portals by specifying that the image rendered a remote portal is to be directed to either...")
  • 09:21, 15 July 2023Release Notes for Build 108 (hist | edit) ‎[1,831 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ '''Release date:''' May 27, 2005 * Added the <code>kLightExternalZone</code> flag to the <code>LightObject</code> class. This tells the lighting system that the light may not be physically located in the zone that contains the light node in the scene graph. This flag is useful for lights that are attached to other objects (like a character). It's possible for a character to be in one zone, but the light that he's holding to be in a different zone because his a...")
  • 09:20, 15 July 2023Early C4 Engine Development Worklog (hist | edit) ‎[81,445 bytes]Eric Lengyel (talk | contribs) (Created page with "­__NOTOC__ == July 3, 2003 == * Completely redesigned the collision detection architecture. All geometries are now handled uniformly by a general collision detection algorithm. Swept sphere collisions can now occur with arbitrary geometrical shapes. * Removed the restriction that the torus primitive be circular. It can now be elliptical. * Added a flag that forces tangent fields to be calculated numerically for primitive geometries instead of analytically. * Added a ge...")
  • 09:13, 15 July 2023Release Notes (hist | edit) ‎[6,887 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ == Version 7.x == {| {{Table}} {{Tablehead3|Version|Release Date|Release Notes}} |- {{Tablerow3|Version 7.1|24 April 2023|Release Notes for Version 7.1}} |- {{Tablerow3|Version 7.0|22 March 2023|Release Notes for Version 7.0}} |} == Version 6.x == {| {{Table}} {{Tablehead3|Version|Release Date|Release Notes}} |- {{Tablerow3|Version 6.9|2 Nov 2018|Release Notes for Version 6.9}} |- {{Tablerow3|Version 6.5|30 Sep 2017|Release Notes for Version 6....")
  • 09:11, 15 July 2023Glossary (hist | edit) ‎[5,416 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ This glossary defines many of the terms that are used by the C4 Engine and provides links to more information in most cases. == B == '''Blocker''' A blocker is a volume of space that can be used to block the passage of a rope or cloth geometry. == C == '''Controller''' A controller is attached to a node in order to manage some kind of motion or behavior. Controllers also serve as the point where scripts can interact with nodes and where network communicatio...")
  • 09:10, 15 July 2023Programming Introduction (hist | edit) ‎[6,706 bytes]Eric Lengyel (talk | contribs) (Created page with "This page provides an introduction to the programming interface and general design philosophies of the C4 Engine. An understanding of each of the topics described below is essential to programming applications for the C4 Engine effectively. Specific information about the application programming interface (API) is not covered here, but instead can be found in the [http://c4engine.com/docs/ API Documentation]. == Engine Architecture == File:Architecture.png|right|thumb...")
  • 09:06, 15 July 2023Quick Tour (hist | edit) ‎[2,409 bytes]Eric Lengyel (talk | contribs) (Created page with "This article describes what you'll see when you run the C4 Engine for the first time after building the engine with the stock project files and data. == Basic Interface == By default, the C4 Engine is configured to start up in the demo game called ''The 31st''. (This is a game currently in development at Terathon Software.) The demo game's title screen appears as shown in the background of the screenshot below. All of the settings that can be accessed from this title s...")
  • 09:04, 15 July 2023Getting Started (hist | edit) ‎[1,956 bytes]Eric Lengyel (talk | contribs) (Created page with "__NOTOC__ === Installation === Follow these instructions to get started with the C4 Engine under 64-bit Windows 10. To install, first create a directory somewhere on your hard drive in which you'll store all of the C4 Engine files. Put the source code in this directory and extract the C4-Data-xxx.zip file into the same directory. Your C4 Engine directory should look like the following: * Data * EngineCode * GameCode * Import * PluginCode * SimpleCode * SlugCode * Tera...")