Release Notes for Version 6.9

From C4 Engine Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 updateworlds 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 that previously began with unsigned_ have been changed to begin simply with u. For example, unsigned_int32 is now just uint32.
  • The Array::FindArrayElement() function has been renamed to Array::FindArrayElementIndex() to make it clear what kind of information is returned.

Graphics Manager

  • The Graphics Manager on Windows and Linux now require OpenGL 3.3 plus the GL_ARB_clip_control, GL_ARB_direct_state_access, GL_ARB_multi_bind, GL_ARB_texture_storage, and GL_ARB_texture_storage_multisample extensions. Since Apple does not support some of these extensions (and never will), this means that C4 2.9 does not run on the Mac.
  • The projection matrices used by the engine have been modified to produce device-space z coordinates in the range [0,1] with reversed depth. This greatly increases depth buffer precision and eliminates Z fighting artifacts when parallel surfaces near each other are viewed from far away.
  • Generalized depth offset modifications and depth bounds test optimizations have been implemented to handle oblique near plane projections. This can improve the appearance of decals in reflection or refraction images, and it can improve performance of point/cube/spot light sources in reflection or refraction images.
  • The motion blur algorithm has been improved and now generates better results. The velocity buffer has been changed to a two-channel format using 8 bits per channel, using half the space it previously used.
  • The method used to split linear 32-bit depths into two 16-bit depths for the floating-point structure buffer has been improved. This gives better precision farther from the camera position.

Interface Manager

  • The font format has changed in this version. Any custom fonts that were previously imported must be imported again before they can be used.
  • There are many new text rendering capabilities, including underline, strikethrough, horizontal stretch, transform-based subscript/superscripts, right-to-left writing directions, bidirectional layout, adaptive supersampling, rectangle primitives, fraction formatting, and hyphen-minus substitution. Settings have been added to the Text Widget that can be used to enable these in the Panel Editor, and new embedded format directives have been added to control them within a block of text. See the Slug User Manual for details about all of the text rendering features.

Effect Manager

  • A new Text Effect node has been added to the engine. This is used to place text on surfaces within a game world and apply materials to the glyphs so they appear to be painted on the surfaces. (This is completely different from using text in a panel effect.)

Terrain

  • The functions that build terrain geometry have been improved so that vertex sharing occurs as often as possible. Rebuilding terrain geometries can reduce the data size by roughly 5–10%.

Tools

Font Importer

  • The Font Importer contains new settings for the size and position of underline and strikethrough decorations and the transforms for subscripts and superscripts. These are initialized to the values specified in the input TrueType font file.

Tutorials

  • Two basic game projects called SimpleBall and SimpleChar are now included with the engine. See Simple Games.
  • Several new tutorial worlds are included in the Data/Tutorial folder. Some of them are starting points for tutorial articles on the wiki.