Release Notes for Version 5.0

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: 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 * and % operators for dot product and cross product have been removed from the engine. The Dot() and Cross() functions should always be used instead.
  • The container modification and iteration functions have been made more verbose.
  • In all callback-type functions, the term "proc" has been changed to "callback".
  • The GraphEdge class has been renamed to GraphRelation.
  • The Singleton template has been named to Global.
  • The Manipulator class has been renamed to Director.
  • The BuildSettingList() and CommitSetting() functions have been added to replace the GetSettingCount(), GetSetting(), and SetSetting() functions.
  • CPU timings have been added to engine, and they are displayed in the Time window.
  • All of the various resource formats have been updated. There is now a common header followed by resource-specific data.

World Manager

  • The cell graphs into which objects are organized for each zone are now octrees instead of tall quadtrees.
  • Detail rings have been added to the engine. Each geometry node has a detail ring setting that determines at what distance the geometry starts to fade out. A world can have detail property that specifies the detail ring sizes. Indirect portals and camera widgets can specify a distance scale that modifies the sizes of all detail rings for geometry that is rendered through them.
  • A special root region graph has been added for lights to solve shadowing problems when lights are rooted in multiple zones that can see each other through portals.
  • The impostor system has been updated. Impostors now have better transition blends, and they are no longer required to be vertical.
  • The remote portal cover render stage has been removed from the engine.
  • Remote cameras have been renamed to indirect cameras, and remote portals have been renamed to indirect portals.
  • Parallel code for shadow map generation has been added to the engine to improve performance.
  • Multisampled rendering is now permanently on, and the engine uses a custom downsampling shader.
  • Infrastructure necessary for upcoming secondary frame buffer effects has been implemented.

Graphics Manager

  • The motion blur effect has been improved for discontinuous screen-space velocities.
  • Clipping plane support has been added to vertex shaders. Clipping planes are exposed for widgets.
  • The engine now has the ability to reference material resources from material objects.
  • The fog rendering code has been enhanced.

Interface Manager

  • All text rendering in the engine has been replaced with a new technology that renders glyphs directly from outline data directly on the GPU. Support for kerning and tracking have been added.

Sound Manager

  • The engine now uses a new proprietary audio format.
  • The sound streaming code has been changed to use triple buffering. This ensures that there can be no breaks when a streaming sound loops or starts a new file.

Controllers

  • The Controller::ScheduleSleep() function and Schedule Sleep script method have been added to the engine.
  • The ability now exists for a script method to delete the node to which the script is attached or one of its predecessors.

Physics

  • The Shape node now supports dynamic shape substances.
  • The Set Shape Substance modifier has been added to the engine.

Math Library

  • Custom versions of all transcendental functions and inverse trig functions have been implemented in the engine.
  • The various vector, bivector, and trivector classes have been improved.

Tools

World Editor

  • The World Editor now has a complete set of landscaping paint tools.
  • The performance of radiosity space generation has been improved by breaking the work into parallel jobs.
  • A new tilt setting has been added to the placement adjuster in the World Editor and Landscaping Editor.
  • A new director cell graph has been implemented in the World Editor. This drastically improves performance for scenes containing a lot of vegetation.
  • The rendering code and picking code in the World Editor have been modified to use the cell graph. Director bounding spheres have been removed.
  • Material Editor functionality for external material resources has been added.

Script Editor

  • The method appearance in the Script Editor has been changed to a larger box size.

Texture Tool

  • The configuration files for Texture Importer have been updated to use the OpenDDL format.

Sound Tool

  • A Sound Importer tool has been added, and it converts .wav files to the new format.