CRYENGINE 5.7

5.7 Overview

This CRYENGINE 5.7 Long Term Support (LTS) release is aimed at improving the workflows of the Engine with the latest development software.

Besides fixing several bugs reported both internally and by the community, it also features updates such as the GamePlatform Plugin (with Flow Graph and Schematyc nodes added for your convenience), as well Scaleform 4 support.

Highlights

Scaleform 4

An improvement over Scaleform 3, the Scaleform 4 integration features customized rendering for higher performance on all platforms.

It is backwards compatible with ActionScript 2.0, providing you with the performance benefits of Scaleform 4 without having to remake your Flash projects in ActionScript 3.0, while also supporting ActionScript 3.0 which in turn allows the use of Adobe Animate. Scaleform 3 however is still available, in case the upgrade to Scaleform 4 causes unforeseen bugs to block your projects.

Scaleform Schematyc

The Scaleform Schematyc plugin has been provided to emulate the necessary functions that are provided by Flow Graph for the UI system. UI elements are available as Components, while functions and events corresponding to these elements can be defined in an Element XML file.

It supports both Scaleform 3 and 4.

GamePlatform Plugin

The GamePlatform plugin is an update to the plugin that was shipped with CRYENGINE 5.6.

Expanded features include support for various platforms such as Steam, PlayStation and Xbox. Additionally, it includes an optional new plugin which provides visual scripting nodes for Flow Graph and Schematyc. The deprecated Discord Rich Presence SDK has also been updated to the Discord Game SDK.

New documentation for the GamePlatform Plugin can be found here.

Visual Studio 2017 - 2022 Support

Engine code and CMake has been updated to support Visual Studio versions 2017, 2019 and 2022, while Visual Studio 2015 support has been deprecated.

Along with this upgrade, support for the C++17 standard implementation has been added while Windows SDK has been updated to 10.0.20348.0.

Release Notes

Animation

Animation General

  • New: Added optional environmental wind to vCloth.
  • Fixed: Certain release builds that rely on CVar overrides.
  • Fixed: Potential vCloth crash with wind and degenerate geometry.
  • Tweaked: Audio animation events in the Engine play by default. The ca_SkeletonEffectsPlayAudioInEngine CVar is set to 1.

AI

AI System

  • Fixed: The Nav Callback wasn't called if the Component was created in code and not via the Schematyc Editor. Now it's always called, even if there is no legacy object on the entity.

UQS

  • Fixed: Simulating a UQS query and then opening the UQS History tool sometimes crashed the Sandbox Editor..
  • Tweaked: Simplified Schematyc bindings.

Core/System

Engine General

  • New: Added loading images by texture ID via ActionScript to Scaleform 4 implementation.
  • New: Scaleform 4 Implementation.
  • New: Added Scaleform 4 SDK tools (profiler, exporter, media player).
  • New: Added CryScaleformD3D12 on Xbox.
  • New: Renderer has been extended with previously missing blend states for Scaleform.
  • New: Added empty implementation for Scaleform 4 that prints error messages.
  • New: Added CLIK and Extensions frameworks to Tools.
  • New: Added ExternalInterface callback mechanism to Flash UI system.
  • Refactored: Utilizing permutation system, pixel+vertex cbuffer unification, vertex format unification, reduced cbuffer writes.
  • Refactored: Loading Scaleform 4 via cryproject.
  • Refactored: Cleaned up use_scaleform() macro; interface project is used instead.
  • Fixed: Shutdown crashes and debug asserts related to Scaleform 4.
  • Fixed: Debug asserts stating incorrect thread access.
  • Fixed: Shutdown crash due to Scaleform render destructing after system interfaces.
  • Fixed: Shutdown crash due to GPtr ref counting being used when not needed/used.
  • Fixed: Shutdown crash due to system listener not unregistering during module unload.
  • Fixed: Debug asserts due to manual deletion of ref-counted objects.
  • Fixed: Compilation fix in Xbox debug.
  • Removed: Linker warnings caused by missing .pdb files.
  • Fixed: Crash/hang on ESC in main menu (moved destruction to render thread).
  • Fixed: Proper mesh count in Scaleform 4.
  • Fixed: Flickering letter issue when displaying simplified Chinese language.
  • Fixed: Shader compilation issues, memory leaks, VK format layer, improved video support.
  • Fixed: Scaleform Render-to-Texture by clearing texture UI elements by default.
  • Fixed: Fixed yasli text file serialization errors (possibly only in MSVC 16.*) due to unintentional overload of MemoryWriter.write(); write can no longer take array values.
  • Fixed: C4244 warnings since MSVC 2019 v142.
  • Tweaked: Matched Scaleform exports and library type with renderer.

System

  • Refactored: Moved EmptyScaleformHelper to Null implementations.
  • Tweaked: Allowed listening for plugin interfaces. Unloaded event moved before actual unload.

CMake

  • New: Updated Linux CMake distribution to 3.22.3.
  • New: Added Microsoft Visual Studio 2022 to CMake generator options.
  • New: Updated Windows CMake distribution to 3.22.1.
  • Fixed: Silent error in cry_cmake when appdata folder doesn't exist. Also added messagebox when an error occurs for easier troubleshooting by a user.
  • Fixed: Incorrect or conflicting configuration options for monolithic builds.
  • Fixed: Deployment source paths for PySide2.
  • Fixed: Cache toolchain file on Xbox, so that you can now correctly reconfigure build options in the CMake GUI.
  • Fixed: Failing autocompile build; would not build Scaleform helper without OPTION_ENGINE.
  • Fixed: Compilation issues on all platforms on the latest compilers for C++17.
  • Fixed: Unnecessary warning for PSN related CryModule.
  • Fixed: Failure in downloading SDKs during solution generation.
  • Tweaked: Updated Windows SDK version to 10.20348.0 in MSVC toolchain.
  • Tweaked: Updated MSVC version check for Oculus. Updated Oculus SDK.
  • Tweaked: Updated to C++17.
  • Tweaked: SDK download is prevented if no Engine source is present or when building a project without an Engine option selected. The Engine option is hidden if no Engine source is present.
  • Removed: Old and unnecessary CMake data (e.g., documentation).

Action General

  • Fixed: Folder structure rescan before loading a level in Sandbox.

Flowgraph

  • Fixed: Assert caused when invoking a function without any arguments when using the Entity:FlashInvoke node.

Schematyc

  • New: Added Tokenize node for splitting strings by a string delimiter.
  • New: Refactored function elements to allow any size input/outputs, condensed and simplified template. Added Script Variable Array input support.
  • New: Extend intrinsic types to include 64bit. Also add FromString methods for these types.
  • Fixed: Schematyc member function registration compilation.
  • Fixed: Incorrect re-allocation logic in CAnyArray that caused memory trampling when re-allocation occurred due to adding elements. Added element type safe-guards for remove and push back methods.
  • Fixed: AnyArray methods assuming the data were pointers rather than in-place types.
  • Fixed: Several crashes when interacting with node graphs due to double free attempts and iterator invalidation.
  • Fixed: Iterator invalidation when removing components during initialization of other components in the same entity, by using ListenerSet iteration guards.
  • Fixed: Crashes due to nullptr access of AnyArrays.
  • Fixed: Asserts of missing equality operator in some cases when using Script Enumerations.
  • Fixed: Queued signal parameters still referring to old scratchpad data after being copy constructed.
  • Tweaked: Simplified parameter binding and removed redundant parameter count members.
  • Tweaked: A warning is now generated when a possibly corrupt graph is encountered in Schematyc.

Templates

  • Tweaked: Added Scaleform Schematyc nodes plugin to template projects by default.

Graphics and Rendering

Renderer General

  • New: Separation of blend states for RGB and Alpha.
  • Refactored: Extended render state uint32->uint64.
  • Refactored: Redistributed all render state flag bits.
  • Fixed: The Lens Flare Editor preview renders black.
  • Fixed: Forced delete of referenced shader pointer.
  • Fixed: Flash rendering crash.
  • Fixed: Wrongful sharing of a single clear pass.
  • Fixed: Changed profiler asserts to warnings (non-critical problem).
  • Fixed: AuxGeomCollectors would leak during level load.
  • Fixed: Window mode CVars not being respected.
  • Fixed: Shader Cache generation.
  • Removed: GS_POINTRENDERING.
  • Fixed: All custom vertex layouts and samplers remain persistent.

3D Engine

  • Fixed: Fixed SetLevelPath clamping limit that was longer than the actual array size.

  • Tweaked: An original algorithm is now used to prevent excessive jittering with auto-merged vegetation.

DirectX 12

  • Fixed: C4238: nonstandard extension used: class rvalue used as lvalue.
  • Fixed: Compilation issue due to incorrect lock name.

Virtual Reality

  • Fixed: Deployed necessary runtime libraries for OSVR on windows.

Plugins

  • New: Move Schematyc Flash UI nodes implementation from GalaxSys to an engine module.

Physics

Physics

  • Fixed: Compilation issue due to allocating const types without assignment.
  • Fixed: PhysDebugger compilation due to new MSVC conformance changes.

Network

Network

  • Fixed: Issue in a key generation which manifested on PS4.

Sandbox

Editor General

  • New: A dragging range has been introduced such that when clicking and moving the mouse on a panel, the latter is undocked only when exceeding this value.
  • Fixed: Prefab export does not work with -export in the command line.
  • Fixed: Issue where users cannot open log files when the Engine path contains spaces.
  • Fixed: Numerical inputs for large integers due to incorrect QString conversion.
  • Fixed: PhysTool compilation due to newer MSVC conformance updates.
  • Removed: Python pip package.

Tools

Resource Compiler

  • Tweaked: RC compiles with the same Windows SDK version that the Engine uses.
  • Tweaked: Warning when BC1 format is used on normal textures has been suppressed.

PakEncrypt

  • Tweaked: Force output of compiled binaries to build suffix subfolder.

Plugins and Projects

CRYENGINE Plugins

  • New: Integrated newer CryGamePlatform implementation.
  • Refactored: Converted C++ Xbox Live API code to WinRT to ensure we can properly cancel requests.
  • Tweaked: A project is generated only if an implementation is selected and valid for the platform.
  • Tweaked: Added a CMake option for the Scaleform Schematyc nodes plugin.

Game General

  • New: Added a custom helper called boost_origin, which fixes incorrect motion in wheeled vehicles when boosting with lights on due to incorrect force calculation.
  • Fixed: PlayerLookAt node in PlayerInput.
  • Fixed: Host Server option inside GameSDK listed no maps and was unable to start a server.

GamePlatform

  • New: Flow Graph and Schematyc Experimental nodes for the Game Platform Plugin.
  • New: Replaced Discord RPC SDK with Discord Game SDK
  • New: Updated Steamworks SDK to 1.46
  • Fixed: Conversion from CryString to StringIdentifierValue types due to incorrect buffer length check.
  • Fixed: Replaced incorrect reinterpret cast failing to write the Account Id in ReadPacket.
  • Fixed: The basic Create function for User Generated Content.
  • Tweaked: Simplified Public IP to string method, fixed returning out of scope string data.
  • Tweaked: Added a CVar to allow running the Discord implementation in the Sandbox Editor.
  • Tweaked: Extended service interface to implementation-specific identity creation from strings, to accommodate Flow Graph nodes.
  • Tweaked: The Leaderboard identifier has been moved to a common interface to help abstract away implementation detail.
  • Tweaked: Data input has been set to const type as it should only be reading the data.
  • Tweaked: Removed Rail SDK.
  • Tweaked: Added visitor function to iterate over existing remote files on the platform.

Mobile & Consoles

General

  • Tweaked: Always generate console implementation projects if SDKs are available.

XBox

  • Fixed: Fix CMake generation for Xbox with MSVC.
  • Fixed: Validate user object on resume.
  • Fixed: Make sure we deploy Microsoft.Xbox.Services when using Ninja.
  • Tweaked: Add more debug logs about invalid user object.

Playstation

  • New: Add dynamic lib support to PS4.