Release Notes for Version 4.2

From C4 Engine Wiki
Jump to navigation Jump to search

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 been removed from the engine. This was only used to query the driver version, and it's not worth the extra dependency.

World Manager

  • A couple new performance improvements have been implemented in the morph and skin controllers.


  • The movement controller, oscillation controller, rotation controller, and spin controller all have a new setting that cause them to wake up any rigid bodies that might be in their way while they're moving. When active, this would prevent a door from moving straight through a sleeping rigid body without affecting it, for example. The new setting is a flag that belongs to a new KinematicController base class for these controllers.
  • A new function called CalculateWorldPositionVelocity() has been added to the RigidBodyController class. This function is provided as a convenient way to calculate the velocity of a point on a rigid body due to the rigid body's own motion, accounting for both the linear and angular velocities.


  • The Evaluate Expression script method now accepts the same syntax that's supported by OpenDDL 1.1 for all literal types. In particular, boolean and octal literals are accepted, underscores are allowed in numerical literals, and all of the escape sequences supported by OpenDDL are available in strings and character literals.

Interface Manager

  • The text button widget will no longer automatically change its alpha value based on whether it's enabled. If you want the text button's appearance to change when it's in a disabled state, you'll need to set its widget color directly.


Model Viewer

  • The Model Viewer now always creates imported animations in the same directory as the model resource regardless of where the imported files were stored.
  • Fixed a problem where the Model Viewer would not save a morph weight animation track.
  • The Model Viewer will now warn you if an animation's cue track has been modified and you attempt to close the window, select a different animation, or import a new animation without having saved the modified animation first.