5.4 Overview

Welcome to our latest major update, CRYENGINE 5.4. We know it has been a long time in the making, but we are sure you'll agree with us - it has been worth the wait.

We have made over 960 improvements & fixes and have introduced lots of new features in CRYENGINE 5.4, these include; Substance Integration for the reading of material archives and the manipulation of texture inputs with in-editor graphing. We have also expanded the feature set of the Terrain System, which allows for much better blending of terrain and objects within your level. We have added all new Vulkan API support and an Entity Components feature (including some Use Case documentation). Also new in CRYENGINE 5.4 is Extended Detail Bending, 2 brand new C# Templates and updates to the previously introduced Asset System which now provides improvements and extended usage across tools, with thumbnail generation and all new dependency tracking.

Carrying on we have also introduced a Pull Request facility through GitHub which allows our fantastic CRYENGINE Community to collaborate with us on improving CRYENGINE. Finally, we have also introduced a Substance Viewport Shader, a Photoshop Ultimate Texture Saver, over 30 new Particle Presets, several new Anti-Aliasing techniques, Object Linking through the Level Explorer and last but not least some updated documentation for the Project Launcher Tools. So we are sure that you cannot wait to get started - so go and get CRYENGINE 5.4 on Github HERE!

Contributors

We would like to say a massive thank you to the following for their valuable contribution in the making of this 5.4 release of CRYENGINE.

Code Interface Changes

Release Highlights

Substance Integration

Both internally and externally we have seen the industry embrace the concept of harnessing procedural texture creation to extend the usage of individual assets. For some time now, our internal teams have actively used Substance in their workflow so it is a logical addition to be supported within our Sandbox Editor.

With this integration we are using Substance Archive files (*.sbsar) to create Substance Graph instances and generate textures out of them. The important thing to keep in mind is that CRYENGINE implementation doesn't directly output graph outputs from a substance graph, but rather pre-configured texture outputs that are using substance graph outputs as inputs. It is also important to keep in mind that the archive still needs to be built inside of the Substance Designer where the properties are then exposed to the Sandbox Editor through the archive for the modular end result.

Terrain System Upgrades

CRYENGINE 5.4 adds several new terrain features. Objects can now be blended seamlessly into the terrain. This dramatically extends the possibilities of current terrain editing tools, allowing for a much higher level of realism, overhanging rock faces and a much greater level of flexibility.

The selected object meshes get copied at an early stage into the heightmap mesh to become a seamless part of the terrain. While integrated objects support most of the height map properties and even 3D terrain materials.

On top of that, we introduce Soft Depth Test for terrain materials which allows for soft blending between terrain and objects on terrain.

Additionally, we have enabled in-shader auto high-pass in release 5.4 - this eliminates an additional and cumbersome step to users, which only pertained to terrain materials. Now the same diffuse texture file may be used for terrain material and other shaders.

You can even extend this further by using the new "Use Original Diffuse Map" material flag which allows you to completely match the look of terrain materials and object materials.

Vulkan API Support

Release 5.4 includes a beta version of the Vulkan renderer to accompany our DX12 implementation from last year. Vulkan is a cross-platform 3D graphics and compute API that enables developers to have high-performance real-time 3D graphics applications with balanced CPU/GPU usage.

For the 5.4 release, Vulkan support in CRYENGINE will be compatible for projects on PC only, but we are aiming for additional Android support in the future.

To enable the Vulkan renderer you need either add "r_driver=vk" into your system.cfg or add “name”: “r_driver”, “value”: “vk” to the “console_variables” part of the .cryproject file. Do keep in mind that you must also run the remote shader compiler locally as the renderer is dependent on this step.

Entity Components

A longstanding issue within CRYENGINE has been the reliance on game code to expose and manage entities within your level. CRYENGINE's Entity Component System provides a modular and intuitive way to construct games. The technology works at both the system level and at the entity level.

The interaction model (within the Sandbox Editor) allows Developers the ability to create empty (blank) entity containers which in turn house the advanced game logic wrapped into specific components. Some examples of base components are: Mesh, Lights, Constraints and even Character Controllers. With these types of components users can develop prefabs that can be placed by Level Designers throughout a game for both standardization and exposure to Schematyc for triggering and event updating.

To help the community get to grips with the newly introduced Entity Components feature our Developers have written some Entity Component Use Case documentation. CRYENGINE users may be particularly interested in the two Combining Components Use Cases 1 RigidBody and Particles & 2 Collectibles and PowerUps that show how different Components can be combined to create some great effects. The documentation will be expanded on over the coming months, so keep your eyes peeled for further updates.

Extended Detail Bending (Robinson Tech)

Upgraded in release 5.4 is the new "Extended Detail Bending" toggle - found in the vegetation shader. The history behind this feature comes from Crytek's Robinson: The Journey development and how we needed a more accurate and physically dependent bending solution for our vegetation.

This feature provides Artists with much more control over detail bending of their tree branches. For example, this new bending feature allows not only small micro movement of leaves, but also whole branches of trees or chunks of grass. So for example Artists can now have one large clump of grass with phased animations, this allows movement to look much more natural. Aiding in the variations we also apply a world-space mapped noise texture to simulate random breeze for even greater variation in movement.

C# Templates

We have added the following templates in C#:

C# Plugin

C# 3rd person

Carrying on with our Launcher improvements, we have also expanded our selection of templates to make getting up and running with CRYENGINE even easier. Several things have been brought over from our C++ arsenal and that includes the Plugin and 3rd Person templates in a C# flavor.

We expect to add more templates to CRYENGINE in future releases, this will not only demo the beginning part of making a game, but also show finalized examples that guide you through each phase of game development.

Asset System Updates

In release 5.3 we shipped a base implementation of the new Asset System, this allowed users to directly interact with their assets and directories. We know that the most optimal solution is to never touch Windows Explorer in order to achieve the changes you want and the new Asset System updates certainly bring us one step closer to this reality. Through on-going development, we have now added direct drag-and-drop support for the Asset Browser along with other tools integration (Material Editor, Particle Editor).

In release 5.4 we have also introduced an all-new Dependency Graph to aid in the assistance of changing the paths or managing dependencies.

We have also exposed dynamic CGF switching functionality, this has the added benefit of not only having a direct thumbnail view (to preview an asset), but also the ability to select the asset that best suits your needs. This development also allows you to step down the list of assets and thus helps in finding best asset for your given scenario.

CRYENGINE Pull Requests

At the end of July, we introduced CRYENGINE Pull Requests to the CRYENGINE community (we felt it was worth another mention in these release highlights). This facility is available via GitHub, for general information provided by GitHub regarding Pull Requests, please refer here Pull Requests.

We have also written some CRYENGINE documentation to assist the CRYENGINE community in submitting pull requests.

We also want to take this opportunity to say a massive thank you to all of our CRYENGINE Community members for their contributions in helping us to develop the Engine. Please keep your feedback coming, (but through the normal channels).

Substance Viewport Shader

Also in release 5.4 we bring you a custom Substance Shader that has been designed to match the viewport shading of Allegorithmic's Substance Designer and Painter software. To download the tool and for more general information follow the link underneath the image on the right.

Photoshop Ultimate Texture Saver

Also in release 5.4 we bring you an extension to Photoshop - the Ultimate Texture Saver. This feature has been developed to make life much easier for Texture Artists and replaces 8 separate files with just 1. To download the tool and for more general information follow the link on the right. We hope you can enjoy the luxury of handling seamlessly all your texture maps under one Photoshop file.

Particle Presets

Also in release 5.4 we bring you the Particle Editor Presets Library. This new feature comprises a comprehensive list of predefined particle effects such as explosions, fire, embers and smoke that can be added to your level from the off. These effects then act as the base for the creation of much more elaborate particle effects.

For more detailed information on the Particle Editor Presets Library follow the link on the right.

Anti-Aliasing

Also in this 5.4 release, we are introducing some new Anti-Aliasing techniques that will even further improve our graphics quality. While there is a range of different anti-aliasing methods available, finding an efficient implementation and one that provides great quality remains one of the biggest challenges in rendering. This is even more true for VR applications, where jagged edges and crawling pixels can cause severe viewer discomfort and where the rendering techniques employed have to operate within a very tight performance budget. Currently, we support the following methods:

Object Linking (through the Level Explorer)

Project Launcher Tools Updated Documentation

Finally, in release 5.4 we bring you some updated documentation for the Project Launcher Tools. We have focused in particular on the Package Build command that now allows you to redistribute your files quicker without having to wonder what to add and remove in your final build. For more information follow the link on the right.

Fixed: (CharacterTool) Scrubbing time - use all active animation layers for preview (similar to 'normal' play mode).

Fixed: (Character Tool) Improved serialization of blendspace pseudo-examples and annotations in the Character Tool GUI.

Fixed: A bug in the directory structure lookup cache, preventing animation files from being correctly discovered when ca_useIMG_CAF mode is enabled.

Character Tool

Fixed: A signal/slot race condition crash caused by in PropertiesPanel::m_propertyTree sometimes trying to revert to an expired object when loading/reloading character files. Property tree is now safely refreshed in a subsequent OnExplorerSelectionChanged handler.

Fixed: A bug which caused the "Additional Extraction" section to get glitched when modifying dependent blendspace properties. List of parameters is now limited to only those which support extraction.

Fixed: An issue with input fields under the "Animation Layers" section not getting properly updated in certain scenarios when editing blendspaces.

Fixed: Improved serialization of parameter overrides under the "Examples" section. Size of the value fields have been adjusted. Labels with names of corresponding parameters have been added. Value overrides are now properly referencing their parameter types by IDs rather than indices and persist through changes to dependent blendspace properties to mitigate various non-intuitive behaviors.

Fixed: An issue with animation layer properties and blendspace properties displaying different names for the same parameters. Removed duplicated parameter/name mappings. Removed an unused parameter flag.

Fixed: Multiple layout serialization bugs and simplified serialization logic. Window size is now properly restored after closing Character Tool and opening it again. Layout reset now restores default geometry of dock widgets on top of their composition.

Fixed: An issue with the Character Tool not reverting to its open assets when answered 'no' to the unsaved changes dialog.

Fixed: An issue with outdated animation entries being queried for blendspace parameter preview. Removed empty string from the blendspace parameter names to mitigate a common error occurring on blendspace reload.

Fixed: Worked around an issue in the Character Tool with the indicator of changed content occasionally failing to disappear when performing a save.

Mannequin

Fixed: An issue with the Mannequin Editor sometimes becoming unresponsive for an extended period of time when hovering the mouse cursor over its window.

Fixed: Multiple key selections in the Transition Editor.

Fixed: An issue with certain edit operations in the Transition Editor randomly affecting keys which were not selected by the user.

Fixed: A potential crash in the Transition Editor by preventing mandatory keys from being deleted from the transition properties track. The context menu delete option is now properly grayed out for all immutable keys.

Fixed: Player was no longer registered in the AISystem after deserialization of the level when respawning from death, thus enemy AI would no longer be able to attack player.

UQS

Fixed: Changed all places that were still relying on element names instead of element GUIDs. Added the concept of a default query type via UQS::Core::IUtils::GetDefaultQueryFactory (for the creation of a new query in the Sandbox Editor).

Audio

Audio General

New: Added preload component.

New: Added listener component and fixed listener for ModelViewPort.

Fixed: Global changes weren't applied in Wwise 2017.1.0.

Fixed: Only enable Oculus based HRTF support if Oculus SDK is present.

Fixed: Removed interface methods from the IAudioSystem interface.

Fixed: An assert where debug display tried to access the adaptiveOcclusion value before it was determined.

Fixed: When altering values of AudioSpot used in SCHEM-entity and then jumping into game caused a crash on exit.

Tweaked: Updated Wwise SDK to v2017.1.1 build 6340.

Tweaked: Updated FMOD Studio API to version 1.09.06.

Core/System

Engine General

Optimized: Improved the performance of the entity component helpers/icons in the Sandbox Editor.

Fixed: Inability to change mesh component type at run-time.

Fixed: Inability to re-activate particle component without reloading if the particle was disabled by default.

Fixed: Schematyc entity components being created and initialized sequentially - instead of being created in one batch and then initialized.

Tweaked: Remove support for setting raw component members via the Set node - directly modified designer set data and this will affect what is saved to disk. Functionality will be reintroduced in a future update.

Fixed: An issue in track view where if the user wasn't recording changes, had a rotation keyframe on the entity and when trying to modify rotation on said entity (through the properties panel or transform tool) then rotation on the keyframed axis would be locked. Fixed a similar issue with scale as well.

Fixed: Creating a new level with added animations folder triggers errors in NC.

Fixed: Creating a new map sometimes triggers an assert.

Fixed: Scrolling the mouse wheel while placing a shape causes to rotate the shape and sets the points movement offset.

Fixed: Selection of objects inside groups being unreliable.

Fixed: Inability to select entities with meshes by simply clicking on the mesh.

Fixed: Crash during early shutdown by removing special shutdown behavior.

Fixed: (CHARACTER TOOL) Adjusting dimensions in Blendspace does not allow you to change the dimensions values.

Fixed: (CHARACTER TOOL) Will now auto expand folders when the search is used. Also the filter is now applied as the user types.

Fixed: Selecting the first animation does nothing, selecting the second plays automatically.

Fixed: Crash when immediately switching from Area:Solid to Area:ClipVolume, or double-clicking on any of these.

Fixed: Selection mask doesn't work for AI Navigation Seed Point.

Fixed: No selected material in the material editor after clicking on edit material in the properties panel.