Release Notes for Version 5.0
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. TheDot()
andCross()
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 toGraphRelation
.
- The
Singleton
template has been named toGlobal
.
- The
Manipulator
class has been renamed toDirector
.
- The
BuildSettingList()
andCommitSetting()
functions have been added to replace theGetSettingCount()
,GetSetting()
, andSetSetting()
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.
- The list of available materials in the World Editor is now displayed in the Material Page, and the Material Manager has been renamed to Material Editor.
- 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.