FlaxEngine Versions Save

Flax Engine – multi-platform 3D game engine

1.8.6510

3 weeks ago

Blog post: https://flaxengine.com/blog/flax-1-8-released/

Release notes: https://docs.flaxengine.com/manual/release-notes/1_8/index.html

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-8-6510/1646

Changelog:

  • Add red tint highlight for CPU profiler table entries based on event duration
  • Add selecting actor spawned in the prefab window
  • Add color box to ColorTrackBall
  • Add events tracing feature to Animated Model for animation playback insights
  • Add displaying playback position of animation in Anim Graph window
  • Add SourceState and DestinationState modes to State Machine interruption modes in Anim Graph
  • Add new collection editing UI
  • Add option to enable Depth Test on cloth painting debug preview (enabled by default)
  • Add sub-groups expanded state restoring in Properties window
  • Add directions to Slider control
  • Add IsValidIndex to Array
  • Add Vehicle Physics Improvements (new options, tank vehicles)
  • Add Create parent for selected actors context menu button
  • Add hiding Actor's Transform for UIControlActor
  • Add RayCast utility to UI controls
  • Add MinCount and MaxCount to Collection attribute
  • Add require script and actor attributes
  • Add option to toggle focus game window on play inside context menu
  • Add reload project menu button
  • Add support for multiple physical materials in terrain - one for each painted layer
  • Add Material to RayCastHit for surface detection logic
  • Add API for runtime Terrain editing and expose Terrain patch and chunk to API
  • Add support for structure and script types in JsonAsset
  • Add improved Visject context menu items search
  • Add vertex snapping (gizmo with V key pressed)
  • Add support for importing material emissive and roughness from fbx file
  • Add support for using pointer in MarshalAs in scripting types
  • Add quick creation of scripts via * Add script button on Actor
  • Add ScriptingEnum::ToStringFlags for printing flag enums into readable text
  • Add font fallback for text rendering
  • Add spline editing improvements
  • Add focus selection lock input to scene tree window
  • Add SnapToGrid to vectors
  • Add NextUnitCircleVector2 extension method
  • Add the option to deselect all in Editor
  • Add rubberband-style selection in a Content View
  • Add the ability to quickly change window modes for the game window
  • Add improved category drop panel to look similar to other panels in scripts adding popup
  • Add parameter to change arrow cap size for Debug Draw
  • Add DrawAxisFromDirection and DrawRay with Ray structure for Debug Draw
  • Add Actor.GetPrefabRoot()
  • Add prefab link breaking to preserve nested prefabs links
  • Add skipping showing and applying changes to prefab root actor transform via Level
  • Add activeOnly parameter to Level::GetActors
  • Add parameter to finds only an active actor from the scenes
  • Add breaking node connection under mouse with middle button click
  • Add MoveFileToRecycleBin on Linux
  • Add support for VS 2022 v17.10 / MSVC 14.4x toolset
  • Add check to prevent incorrect NavCrowd::RemoveAgent usage
  • Add clamping multiblend value to the range set
  • Add partition mode and cascade spacing for Directional Light shadows
  • Add saving docking state for custom editor windows
  • Add Guid picker to support asset refs
  • Add AnimationRootMotionFlags to configure root motion component extraction
  • Add RootMotionMode to support extracting root motion from animated skeleton pose center of mass
  • Add skeleton mask asset parameter to Blend With Mask anim node
  • Add remaining clang options for Apple and Unix toolchains
  • Add initial ASTC pixel format support
  • Add ‘astc’ encoder lib
  • Add BehaviorTreeKnowledgeBooleanDecorator
  • Add automatic last dangling separator removal in context menu
  • Add better grid gizmo rendering in Editor viewport
  • Add save input and undo redo in Editor Options
  • Add support for animating LocalizedString value in Scene Animation
  • Add UI Control gizmo for editing UIs (in Prefab and Game windows)
  • Add resizing UI Control via widgets
  • Add cursor change and showing timeline edge duration when moving it
  • Add UI Widget to new asset creation for quick UI setup
  • Add physical units support to input fields in Editor
  • Add InputAxis and InputEvent integration with stdlib features
  • Add manual chunks loading before Binary Asset load in case content streaming flushed them out
  • Add changes to default post process settings
  • Add focusing search bar in content view and output textbox
  • Add normal logs for deps build subcommands
  • Add support for storing custom platform tools data in Game Cooker cache
  • Add auto focus to Editor Window when nothing clicked inside it
  • Add initial support for Precompiled Header Files (PCH) in MSVC compilation
  • Add support for building engine target as shared library on all platforms
  • Add Stopwatch for accurate duration measuring
  • Add OutputName to Build Settings for game output exe/package renaming
  • Add better win32 resource file injection to be done during linker call
  • Add printing stack trace even when not using log file
  • Add better stack trace reporting in crashes when running on non-Windows platforms
  • Add support for using Tracy profiler on Switch
  • Add removing dotnet libs for iterative rebuilds when AOT cache gets cleared
  • Add custom editor for buttons that allow listening for them inside the editor
  • Add support for multiple VisibleIf attributes
  • Add hold arrow key in tree to continuously scroll actors
  • Add drag drop for actor script items into scenes and prefabs
  • Add ability to use custom file proxy in Editor plugin for file type
  • Add an option to skip existing materials when reimporting
  • Add Start Time option for Audio Source actor
  • Add support for manually dirtying objects that use ReplicationFPS < 0 for manual-only replication
  • Add sanity check to prevent crashes when Animated Model has NaN in skeleton pose
  • Add support for stencil buffer on Vulkan and D3D11/D3D12
  • Add clickable parsing errors in build tool
  • Optimize Matrix decomposition to use Matrix3x3 for rotation
  • Optimize render targets freeing on the start of the game
  • Optimize UI Control serialization
  • Update Nintendo Switch support to he latest .NET 8 with Mono SGen
  • Update dotnet fork to the latest .NET 8.0.1
  • Refactor win32 exe icon updating
  • Refactor ThreadLocal when running on hardware with more cores than PLATFORM_THREADS_LIMIT
  • Refactor UI Control actor active state mirroring in UI via Visible properties rather than unlinked from parent
  • Refactor UI Control linkage in the prefab previews to prevent bugs
  • Refactor undo logic for actors reparenting in Editor
  • Refactor Editor UI style for selection and drag drop interactions
  • Refactor collider shape raycasting utilities to the PhysicsColliderActor class
  • Refactor PhysicalMaterial usage to utilize JsonAssetReference struct
  • Refactor 3D audio implementation in XAudio2 backend to match OpenAL
  • Refactor Visject Surface attributes data storage to use JsonSerializer instead of deprecated BinaryFormatter
  • Refactor engine systems to use platform time seconds rather than date time
  • Remove unused SaveTime/LoadTime from Scene
  • Remove unused 'PixelFormatExtensions::ComputeScanlineCount'
  • Rename Navigation.ProjectPoint into Navigation.FindClosestPoint to have consistent API naming
  • Fix Animated Model slot animations clearing on start
  • Fix fog to be usable for transparent materials (if enabled)
  • Fix auto-docking windows on open when system DPI scale is not 1
  • Fix missing asset update when dependant asset gets saved in Editor
  • Fix unlink usag on Unix systems to properly use returned value
  • Fix PostFx Materials blending for duplicated entries
  • Fix stopping slot animations and playing the same frame
  • Fix unpacking Variant structure if input value is a scalar
  • Fix missing default value for new Visject method parameter if method uses Vector param
  • Fix shader source code preview in editor
  • Fix FileSystem::CopyDirectory not failing when source folder is missing
  • Fix mouse events handling over window title bar on Windows
  • Fix HeaderAttribute usage with default values
  • Fix invalid log timing when log file is disabled in cooked build
  • Fix unreliable RPC calls to silently drop if we failed to find an object
  • Fix for editor view's cached CameraNearPlaneValue getting overwritten
  • Fix Dropdown panel to scale correctly
  • Fix ContextMenu short keys as needed to accommodate for scrollbar when visible
  • Fix combobox window position based on what direction it opens
  • Fix AlwaysShowScrollbars to update visibility state of the scroll bars
  • Fix drop location of multiple nodes to be vertical in Visject
  • Fix profiling hotkeys not working while profiler window is closed
  • Fix GPU profiler event percentage calculation and * Add tint highlight to spot slow entries
  • Fix opening projects with PostFx material assigned in Graphics Settings
  • Fix Plugins Window layout in UI
  • Fix Plugin Project creation when the user types in symbols
  • Fix new asset naming to always validate filename
  • Fix sprite atlas limit on 4096
  • Fix invalid shader codegen when using ddx/ddy in material vertex shader
  • Fix terrain painting when using multiple layers
  • Fix issue with CharacterController initialization when using Center offset
  • Fix copy/paste for UI brushes
  • Fix UI Control selection bounds drawing to handle rotations
  • Fix NextUnitVector2 to properly produce a vector within a unit circle
  • Fix asset thumbnails refresh to support multi-selection
  • Fix focusing editor camera on very large objects
  • Fix duplicating array values in Editor
  • Fix various Editor input shortcuts binding
  • Fix Slider deserialization if value range is invalid
  • Fix Transform diff serialization to properly handle prefab changes to a single component of transform
  • Fix model prefab issue with scaling and rotation
  • Fix differences between Assimp and OpenFBX imports in units scaling
  • Fix prefab transform on drag drop with parent
  • Fix Missing Script replacing in prefab
  • Fix for resetting local transform of newly created prefab child
  • Fix nested prefabs instance building logic
  • Fix creating prefab out of actor to reset local transform of it for better instancing
  • Fix cloth editing undo in Prefab viewport
  • Fix incorrect vehicle wheels collisions inside trigger volumes
  • Fix editor inputs processing in Game window to interferer with game inputs
  • Fix no available getter/setter node and item for private parameters in Visual Script
  • Fix Temporal Anti Aliasing ghosting and improve quality of blending
  • Fix marshaling custom type array to C# with MarshalAs used
  • Fix missing file error in Content::GetAssetInfo
  • Fix bug with saving Missing Script into file
  • Fix transform scaling applying to nested objects when drawing
  • Fix uninitialized value of NetworkConfig::NetworkDriver field
  • Fix networked objects dirtying for replication
  • Fix bug in NetworkReplicator::RemoveObject
  • Fix C++ Intellisense not working with latest version of Rider
  • Fix incorrect including editor modules in Game.Build.cs when git plugin pulling
  • Fix incorrect rigidbody rotation in AddMovement when using locked axis
  • Fix codegen skipping if and writing else if first
  • Fix codegen for nested enums
  • Fix missing networked object ID resolving
  • Fix JsonAsset::GetInstance to properly check base class
  • Fix problem with Procedural Texture Sample flicker if using scaled UVs
  • Fix getting file access time for Apple, Android and Linux
  • Fix DateTime::GetDate calculations
  • Fix render view panning when bug when no camera is active
  • Fix Json serializer for CSharp data to use UTF-8 text encoding
  • Fix editor exit with error code when game cooking CL fails
  • Fix sorting directories in build tool
  • Fix building macOS with the latest Vulkan SDK
  • Fix anim graph debugging to include nodes path for nested graphs
  • Fix root motion preview in animation window
  • Fix invalid Visual Studio solution folder nesting
  • Fix color grading issue with LUT texture used
  • Fix spatial audio playback in OpenAL with Large Worlds enabled
  • Fix terrain smoothing brush separation issue
  • Fix going into windowed mode on Windows
  • Fix rpath on Linux to handle plugins libraries loading in Editor
  • Fix error loggig in headless mode on platforms that use char16
  • Fix support for utf8 character in path on unix systems
  • Fix deadlock when stack overflows in the Anim Graph update
  • Fix timeline tracks dragging like recent improvements to tree UI
  • Fix Bone Socket transform when Animated Model pose is not yet evaluated
  • Fix error in Editor when Audio Clip duration is very small
  • Fix vehicle center of mass rotation used in wheels setup
  • Fix loading BehaviorKnowledgeSelectorAny from json object
  • Fix incorrect mouse cursor hiding on Windows when window is not focused
  • Fix preserving actors hierarchy order when performing undo of actor removal
  • Fix UI size changes when saving scenes or prefabs in Editor with different layout
  • Fix UI coordinate convertion in CanvasScaler
  • Fix split dragging not working in some cases
  • Fix carrot and selection height based on dpi scale to correctly scale with interface options
  • Fix missing debug shapes in prefab window
  • Fix loading shader cache when opened with different engine version
  • Fix d3d12 warning on initial gpu buffer state
  • Fix small GPU buffer update on Vulkan if data size align up overflows buffer size
  • Fix potential issues with shader resources bindings when using custom post processing effect
  • Fix TAA jitter in post-resolve passes such as editor primitives and debug gizmos
  • Fix Z-fighting issues in Debug Draw when using TAA
  • Fix bug in actors duplicate action due to incorrect actors list setup
  • Fix snapping to the ground actor when viewport is not focused
  • Fix drag and drop regression issue on tree UI
  • Fix Revert to Default option when property is marked as ReadOnly
  • Fix timeline playback control buttons visibility during seeking-only mode
  • Fix game ui inputs to UI when game is paused in Editor
  • Fix Mono.Cecil error in NetworkingPlugin when using external libraries
  • Fix duplicate generation of native variant conversion helpers
  • Fix PhysicsScene change not working in physics actors
  • Fix crash when scene graph node gets somehow duplicated by internal error in Editor
  • Fix crash in StaticModel::GetMaterial when model is not loaded or has invalid entries count
  • Fix crash on incorrect object destruction event
  • Fix crash on invalid string converted to managed string
  • Fix crash due to incorrect PhysX usage for vehicle setup
  • Fix crash while moving simulation disabled kinematic actors
  • Fix crash when adding physics scene with auto simulation
  • Fix crash when setting maanaged structure data via Variant
  • Fix crash when storage file gets deleted due to missing ref from async thread which failed to load it
  • Fix crash when finding actor or level with empty name text
  • Fix crash when using multi-threaded objects spawn and caching scripting VTables
  • Fix crash when replicating C# object with NetworkReplicated attribute on derived generic class
  • Fix crash when using degenerated triangle in Multi Blend 2D to properly sample animation
  • Fix crash when loading level with abstract script class
  • Fix crash when using generic interface in C#
  • Fix crash when using network replication or rpc after hot-reload in Editor
  • Fix crash when using invalid GPUTextureDescription

1.7.6407.2

4 months ago

Blog post: https://flaxengine.com/blog/flax-1-7-2-released/

Release notes: https://docs.flaxengine.com/manual/release-notes/1_7/index.html

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-7-6407-2/1533

Changelog:

  • Add invert green channel option to texture tool
  • Add various .NET and VSCode intellisense fixes
  • Add new icon for macOS
  • Add automatic code modules references adding when cloning plugin project
  • Add saved colors to color picker
  • Add infinite loop to behavior tree Loop decorator
  • Add option to import model file as Prefab
  • Add ModelPrefab to imported model prefab for reimporting functionality
  • Add various improvements to models importing code
  • Add support for loading prefab instance if the root was changed or deleted
  • Add support for displaying and reverting array values to prefab value in properties panel
  • Add removing thumbnails for deleted assets
  • Add Half to Vector2/Vector4
  • Add Where, Select and RemoveAll to ArrayExtensions
  • Add SloppyOptimization disabledby default and lower default LOD Target Error value for model auto-LOD
  • Add better ScaleWithResolution defaults in Canvas Scaler
  • Add Async to anim events (false by default) to delay events execution into main thread and prevent multi-threading issues by default
  • Add PixelFormatExtensions::ComputeBlockSize
  • Add ability to change default Android screen orientation
  • Add better Visual Script debugger tooltips display
  • Add mouse tracking on Linux
  • Add context menu to load additional scenes quickly
  • Add auto-sizing for box colliders when they are added to the scene
  • Update meshoptimizer to v0.20
  • Optimize time service update math code
  • Remove old warnings about invalid model instance buffer
  • Replace ImportedModelData with ModelData for model importing
  • Refactor INetworkDriver::PopEvent to use network event as output parameter rather than raw pointer
  • Refactor objects splitting in models importing to be handled by ModelTool not the importer code itself
  • Refactor prefab's objectsCache to be explicitly SceneObject values
  • Refactor memory allocators to use dedicated path when moving collection data that is not blittable
  • Refactor Visual Script debugger apis to use bindings generator
  • Refactor Physics Colliders to use auto serialization
  • Fix ability in editor to delete content and source folders
  • Fix tooltip location check when wraps over the screen
  • Fix UI Dropdown size issue with large font
  • Fix selecting prefab object when object from prefab is already selected
  • Fix constant value sliders in material graphs to not be used due to shader compilations
  • Fix deadlock in NetworkManager when network peer returns invalid event type
  • Fix zero clamp on hinge velocity to allow negative values
  • Fix __cplusplus macro on MSVC and add logging C++ version used during compilation
  • Fix missing channel masking in material Scene Texture node
  • Fix missing surface graph edited flag after removing anim graph state transition
  • Fix missing output parameters conversion when calling interface implementation in scripting
  • Fix selecting objects/gizmos with high far plane
  • Fix blending additive animations
  • Fix MissingScript to be added only when object type exists (skip for prefab instances)
  • Fix not showing primary context menu on Visject surface if child control handled input event
  • Fix layout of editor updating when adding a script to multiple actors in a scene
  • Fix incorrect empty meshes/LODs removal after auto-lod generation
  • Fix invalid codegen for array reference passed as output parameter in scripting interface method
  • Fix incorrect pointer marshalling from Variant to managed runtime
  • Fix model asset thumbnail if mesh is not centered around origin
  • Fix prefab window performance with large hierarchies
  • Fix not supported dragging prefab actors between windows
  • Fix spawned prefab name after drag&drop into prefab window
  • Fix invalid BT node decorator linkage after removing it
  • Fix invalid tracy events from C# profiling api when profiler gets connected mid-event
  • Fix .NET runtime packaging with installed .NET 8 SDK
  • Fix Visual Studio build issues with C# projects when engine path has spaces
  • Fix Json serialzier regression after hot-reload
  • Fix Swap for non-copyable types
  • Fix swapping core collections
  • Fix project initialization with -new if it already exists
  • Fix calling script OnDestroy when removing actors or scripts from the scene
  • Fix several actor types performing default spawn behavior when spawning from a prefab
  • Fix docking windows on Linux
  • Fix importing .dds files as-isif the compressed image is too small for the engine (block size validation)
  • Fix dark outline around Screen Space Reflections alpha blending area
  • Fix default prefab instance not taking into account root position
  • Fix plugin clone and loading to wait for git process end properly
  • Fix managed method delegate creation to be thread-safe
  • Fix typo in Tag comparison function
  • Fix render target pool over-allocation when changing render resolution frequently
  • Fix deadlock in Asset.WaitForLoaded when loading task hangs in the loading queue for a main thread sync
  • Fix deadlock when loading block-compressed texture that is smaller than block size
  • Fix deadlock in asset thumbnails rendering queue when texture streaming fails
  • Fix various crashes
  • Fix crash in UI prefab changes apply when reparenting controls
  • Fix crash when boxing native non-POD structure into managed format
  • Fix crash when updating prefabs from async thread
  • Fix crash when spawning actor from asyc thread into the SceneObject
  • Fix crash when unloading texture that has active streaming tasks
  • Fix crash when resizing navmesh capacity with crowd created for that navmesh
  • Fix crash when drawing terrain without cached neighbor chunks
  • Fix crash in mesh LOD generator if generated mesh has more indices
  • Fix crash in Content Storage async job when someone is using file storage and access cannot be freed

1.7.6406.1

5 months ago

Blog post: https://flaxengine.com/blog/flax-1-7-1-released/

Release notes: https://docs.flaxengine.com/manual/release-notes/1_7/index.html

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-7-6406-1/1482

Changelog:

  • Add SetThreadAffinityMask and SetThreadPriority and thread name for Apple platforms
  • Add storing shader asset includes paths in compact format for portability
  • Add unit test for HashSet and Dictionary collection types
  • Add debug drawing contact offset for selected collider
  • Add custom model picker in material preview
  • Add CustomScenes feature to draw a fixed set of scenes within SceneRenderTask
  • Add minor improvements to reference properties
  • Add more alternative titles to Surface nodes
  • Add order and ordering options to comments in Surface graph
  • Add SortScore to Visject node archetypes and use it to favor method overrides in Visual Script
  • Add Convert to Parameter for Surface constant nodes
  • Add support for unlimited window size if MaximumSize is set to zero
  • Add spawning UI Canvas Scaler when adding new UI Canvas
  • Add handling ViewLayersMask from camera when rendering UI Canvas
  • Add copying old UI Control data to new UI Control when changing type
  • Add option to limit number of items in Dropdown popup
  • Add optional scrollbar to Dropdown popup list
  • Add immediate game viewport sync after aspect ratio change in Editor
  • Add new light theme to Editor UI
  • Add better formatting for automatic tooltips in Editor from xml comments
  • Add input bindings for game window mouse unlock and toggle fullscreen
  • Add button to reload scenes via Editor menu
  • Add short delay before auto-selecting editor tab on drag over header
  • Add rebuilding navigation mesh after apply changes in Navigation asset
  • Add dragging items support into lists and arrays in the Properties window
  • Add CalculateBoneOffsetMatrices option to fix some animated model skeletons rendering
  • Add GetRotationFromTo and FindBetween utilities to C# Quaternion API
  • Add GetSplineSegmentLength to get spline segment length
  • Add new material nodes: Rectangle Mask, FWidth, and AA Step
  • Add default value for material Sphere Mask node to create blob gradient around UV center
  • Add SetNodeTransform to Animated Model
  • Add waking up rigidbodies when changing kinematic state
  • Add name to Android main thread
  • Add limits to cloth brush values
  • Add support for including global configs in engine configuration options
  • Add .NET SDK version 7 as forced to be used during game cooking (dotnet8 can be sued with Editor)
  • Add clearing BT memory in non-release builds to make issues spotting easier
  • Add better errors logging to BT nodes in case of issues
  • Add soft check for null managed object value for unboxing
  • Add Style property getter to FontAsset to access its style flags
  • Add engine version in Editor main window title
  • Add security lockers for managed typeinfo access
  • Add git submodule init to git project cloning
  • Add support for getter-only properties in blackboard selector access
  • Add automatic show of skeleton when entering skeleton tab in skinned model editor
  • Add extended buttons support for Linux
  • Add XDG_DATA_HOME env var usage the approved default as per specification on Linux
  • Add GetStackFrames and IsDebuggerPresent on Linux
  • Add GetStackFrames on Android
  • Add decoding stack trace function names on Apple platforms
  • Add always logging unhandled C# exception
  • Add better support for .NET SDK and .NET 8
  • Add -dotnet=ver command arg to Flax.Build to specify .NET SDK version to use for build
  • Add better project files generation for Rider
  • Optimize Control.UpdateTransform for faster UI math
  • Improve Cloth usage
  • Use soft asset ref to graphics settings
  • Update Tracy Profiler to 0.10
  • Continue Delegate refactor to use single memory allocation and atomic operations for data access
  • Remove SHADOW_MAPS_FORMAT and support fallback formats for shadow maps
  • Remove actor layer auto apply via message box dialog during Play Mode
  • Remove unsupported material parameter types Quaternion and Transform
  • Reduce LargeWorlds::ChunkSize to 8192
  • Refactor GPUResourceProperty to cleanup code
  • Refactor main editor viewport and prefab viewport to share dragging handling code
  • Refactor default ContactOffset for Collider to be 2 (keep 10 for CharacterController)
  • Refactor HashSet and Dictionary collections capacity to handle rehashing when too many elements were deleted
  • Fix DeepClone() when used on object of different runtime type
  • Fix CultureInfo to handle missing country code and fallback to outer language code
  • Fix various typos and wording in docs
  • Fix incorrect tabs selection handling when tab gets removed
  • Fix various cases of closing window tabs when using Dock Windows in Editor
  • Fix color picker dialog not staying inside the current screen
  • Fix custom editor layout rebuilding when it has more editors in use
  • Fix error during new json asset creation via ContentContextMenu if the class is missing empty constructor
  • Fix various cases of closing window tabs when using Dock Windows in Editor
  • Fix Output Log window to scroll log on startup properly
  • Fix CollectionEditor to properly support editing multiple arrays
  • Fix Dropdown popup to properly scale when using Canvas Scaler
  • Fix common Editor tooltips with hardcoded keybindings
  • Fix color editing control to properly handle mouse event
  • Fix anim slot from playing animations more than 1 time based on speed
  • Fix NetworkTransform to properly reject local simulation deltas on incoming authoritative transform data
  • Fix BehaviorTree node UI after adding decorator that was already there
  • Fix BitArray::SetAll() when the item is not multiple of 8
  • Fix some Center geometry import issues and add option to be able to shift mesh to local origin
  • Fix generic types including to be recursive in C++ bindings codegen
  • Fix content storage usage with relative paths
  • Fix issue involving stale scripting assemblies in FlaxEngine.Json dynamic type resolution
  • Fix incorrect directional light shadows influence on secondary render views
  • Fix incorrect spline length calculation if first point is not at spline origin
  • Fix missing interfaces support in Actor::FindScript
  • Fix missing initialization of scene objects added from prefab
  • Fix marking scene as dirty when creating prefab from existing actor
  • Fix unpacking Float3 and other inbuilt Variant types via Unpack node in Visual Script
  • Fix issue with asset loading to be properly canceled when reimporting file
  • Fix loading delay-loaded-dll on Windows when using project plugin with native dependencies
  • Fix bug when spawning new prefab objects during scene load due to regression in async scene init
  • Fix memory leak while doing drag&drop with Debug Draw in use
  • Fix Visual Script parameter setter node to accept multiple input flows
  • Fix scenes reload feature to check if can do it, properly use async in play mode and ask for save if scene is modified
  • Fix missing script replacement if data has object id that doesn't match current parent
  • Fix Mono GC threads suspend to not deadlock when attaching native threads to managed runtime
  • Fix Steam AppId if settings asset is missing and force keep it in sync with steam_appid.txt file (Steam Online Platform)
  • Fix PostFx settings in Graphics Settings to be only used when checked as override
  • Fix BT logic flow when start/stopping behavior
  • Fix deadlock regression when saving Visual Script in Editor with active instance objects
  • Fix deadlock in editor when using snap to the group with actor that has empty bounds
  • Fix Win32CriticalSection to use spin count of 4000 instead of just 100
  • Fix crashes in various dictionary usages caused by duplicated keys
  • Fix crash when creating empty cloth
  • Fix crash when trying to build navmesh with null scene
  • Fix crash on negative collection capacity due to int32 maximum value limit
  • Fix crash when not clearing Online Platform in Editor before hot-reload
  • Fix crash when rigidbody gets deleted during physical collision
  • Fix crash on editor startup without code editor selected
  • Fix crash on hot-reload in Editor due to leftover scripting events in ScriptingEvents::EventsTable
  • Fix crash in Global Surface Atlas when dirty object is missing
  • Fix crash in Multi Blend 2D node in Anim Graph when using single animation on a triangle
  • Fix crash during asset loading due to potential threading issue when 2 threads load the same asset
  • Fix crash when debugging BT node state while tree is not running
  • Fix crash when readingBehaviorKnowledgeSelector value in C# when type doesn't match exactly

1.7.6404

5 months ago

Blog post: https://flaxengine.com/blog/flax-1-7-released/

Release notes: https://docs.flaxengine.com/manual/release-notes/1_7/index.html

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-7-6404/1425

Changelog:

  • Add Cloth simulation with physics
  • Add cloth painting tools to Editor
  • Add async cloth simulation via Job System
  • Add distance-based and frustum-based culling to cloth
  • Add MeshReference to ModelInstanceActor for easy mesh referencing and its data access interface
  • Add MeshDeformation utility for generic meshes vertices morphing (eg. via Blend Shapes or Cloth)
  • Add NvCloth dependency
  • Add copy/move ctor/operator to Delegate
  • Add NavMeshRuntime to scripting api
  • Add MoveTowards to Vector3
  • Add stencil buffer support to GPUPipelineState
  • Add GPUContext::SetStencilRef to stencil reference value
  • Add DebugDraw::DrawLine with separate start/end colors
  • Add RenderTools::CalculateTangentFrame utility
  • Add ReadOnly to CustomEditorPresenter
  • Add Variant::AsStructure() to comparision operator between VariantType and ScriptingTypeHandle
  • Add SerializableScriptingObject for easier serialization of scripting objects in gameplay or content
  • Add IPresenterOwner to editor Custom Editor for more context and advanced interactions
  • Add GroupArchetype to Visject nodes spawn query check
  • Add SealedNodes feature to Visject Surface nodes
  • Add SurfaceNodeActions for more contextual surface nodes scripting
  • Add OnPasted to Visject Surface nodes for custom post-paste logic
  • Add Visject surface boxes and connections drawing customization via style
  • Add reroute node usage to Visject only if surface type allows it
  • Add AI module to engine
  • Add Behavior Trees editing and simulation
  • Add BehaviorKnowledgeSelector for Behavior Knowledge unified data access
  • Add GetDebugInfo to BT nodes for debugging
  • Add Decorators to Behavior Tree
  • Add concept of Goals to Behavior Knowledge
  • Add animation asset input box to animation sample node
  • Add HasDepthClip to GPU Device limits
  • Add foreach loop support to Span type
  • Add checking for Alt key pressed to expand/collapse all actors in hierarchy
  • Add IsDebuggerPresent for macOS and iOS platforms
  • Add better viewport camera settings and control
  • Add GetHash to Vector types
  • Add support for using Revision number in projects version
  • Add support for runtime running on GPU without Compute Shaders support
  • Add logging any XAudio2 backed errors
  • Add Spacebar to toggle play/pause in Audio Clip window
  • Add data sent/receive rate charts to the network profiler in Editor
  • Add outputting shader source code in Editor to text file when compilation fails for debugging
  • Add changing terrain brush size with Shift + Scroll
  • Add default font bundling (optional) and setup UI Style to match editor logic
  • Add preventing project file regeneration running while compiling scripts
  • Add delay to compiler and project generation after large file operations in Editor
  • Add SubAssetFolder to model import option to redirect auto-imported materials and textures location
  • Add excluding GPU swapchain present time from CPU draw time in profiling tool
  • Add showing full exception message in error message box for managed exceptions
  • Add popup to editor options closing to remind the user to save
  • Add more Editor input binding options
  • Add context-sensitive node search to Visject (surface editor)
  • Add automatic casting setup to Visual Script graph editor
  • Add several fixes to UI sizes when fonts are larger in Editor (eg. when using custom fonts)
  • Add customizable statusbar colors to Editor theme (change playmode status color to green)
  • Add View Layers options and Reset/Disable/Copy/Paste buttons editor viewport options
  • Add RenderFlags and RenderView to Camera actor properties
  • Add tooltips to move with the mouse cursor
  • Add automatic module creation via Content window context menu (in game Source folder)
  • Add using text Show in Finder on macOS in Editor
  • Add button to position camera to editor viewport view
  • Add showing only collision wireframe in CollisionDataWindow
  • Add Main Window to C# through Screen class
  • Add SmoothDamp for Vector2 and Vector3
  • Add BaseLinesGapScale configurable for Label
  • Add improved mouse wheel scrolling behavior in UI
  • Add handling double clicking in CheckBox, Button, Dropdown and DropPanel controls
  • Add the option to import materials for a model as instances of another material in the project
  • Add support for importing embedded textures via Assimp importer
  • Add auto-rename start when adding new actor in Scene Tree window
  • Add automatic game settings apply when saving json file in Editor
  • Add collision type to model importer
  • Add bending for connections around nodes in Visject graph editor
  • Add improvements to Clang compiler detection
  • Add better Visual Studio project Ids preservation when regenerating script project files
  • Add always generate additional Visual Studio solution files for all platforms (improves VSCode and Rider usage)
  • Add building C# bindings after generating engine project files
  • Add VS Code launch task for attaching native debugger
  • Add remapping non-native Editor VS build configurations to native configurations
  • Add Rider-specific user solution configuration files generation
  • Add thread-safety to various scripting methods
  • Add better missing script handling in Editor
  • Add Game Settings open button to Edit menu
  • Add input states to InputEvent and AxisChanged event to InputAxis
  • Add SelectionChanged public event for VisjectSurface and properly invoke it only when selection actually changes
  • Add ignoring types with CompilerGeneratedAttribute in Editor
  • Add ScriptingType to msvc natvis
  • Add GetColliders utility to RigidBody
  • Add allow using CustomValueContainer as readonly if setter action is null
  • Add MarshalAs tag to API structs/classes for custom marshaling via implicit casting
  • Add internal access level to Scripting API members (field, properties and functions)
  • Add support for accessing scripting properties via ManagedBinaryModule fields API
  • Add double-reference support for scripting function parameters to move value
  • Add Random::RandRange
  • Add spot light inner circle debug lines
  • Add light debug view flag to draw light shapes
  • Add grid scale to the editor viewport settings
  • Add quick Cook&Run button, Play in Editor actions, and customizable number of players setting
  • Add locked focus to Editor (Shift+F)
  • Add a generic version of AssetReferenceAttribute
  • Add NetworkReplicator::ResolveForeignObject
  • Add Object::DeleteObjectNow as Object.DestroyNow in scripting
  • Add ModelInstanceActor::GetMaterial to get actual material used to render certain entries
  • Add ModelInstanceActor::GetMaterialSlots
  • Add showing rendering material to model entries
  • Add improvements to various context menus in Editor
  • Add batch creating prefabs from multiple selected actors in the scene tree
  • Add scroll to selected asset/content item on asset picker select menu open
  • Add pasting at same level as selected actor parent node instead of under selected node
  • Add functionality to combine similar Debug Logs into a log with a count
  • Add params tag to API_PARAM for C# variadic parameters support
  • Add user defined analyzers/source generators support in Flax.Build
  • Add build option to change code optimization level in C# modules
  • Add default C# code optimization in Editor development builds
  • Add sealed tag to virtual functions in API bindings to block inheritance in C#/VS
  • Add common .NET SDK preprocessor definitions
  • Add skipping post processing when tonemapping and camera artifacts are disabled
  • Add HasBorder option to Button control
  • Add borderless window switch at runtime (Windows only for now)
  • Add ability to clean terrain patch caches
  • Add macOS message box with buttons
  • Add versions sorting to VulkanSDK selection on macOS
  • Add ignoring .DS_Store files in Content on macOS
  • Add FileSystemWatcher for macOS to track file changes in Editor
  • Add codesigning to macOS editor package binaries
  • Add control/command/option keys handling on macOS
  • Add shwoing Json Asset type on ToolStrip of Json Asset window
  • Add timeline position numbers and add to GUI
  • Add a way to reset an IBrush to null for default functionality in Editor
  • Add Method and Origin to ProgressBar for custom progress drawing
  • Add automated plugin project creation and Git cloning in Editor
  • Add tab breaks for window tabs
  • Add new look to Content items
  • Add sorting plugin projects in content tree
  • Add showing/hiding engine/plugin/misc/generated files in content tree and view
  • Add slider control to UI library
  • Add InputEvent and InputAxis editors with pickers
  • Add InputEvent for UICanvas navigation actions
  • Add shift + tab support in UI navigation
  • Add ctrl+backspace support to Text Box
  • Add more border options to several controls
  • Add MMB Panning to Visject Surface
  • Add highlighting when mouse is over slider thumb
  • Add new Spline editing tools for Editor
  • Add editor shortcuts usability when toolstrip or main menu controls are focused
  • Add support for editing WheeledVehicle wheels config at runtime without full physics state rebuild
  • Add support for editing WheeledVehicle engine/differential config at runtime without full physics state rebuild
  • Add remove tag method to actor
  • Add conditional profiling in Editor (run only when using Profiler window)
  • Add DebugDraw::DrawRay function
  • Add WindowBase::Resized delegate
  • Add using exact C# method profiler data for profiler events in overriden thunk method callbacks
  • Add support for unsubscribing from managed events multiple times
  • Add missing Particle Scale getter node to Particle Emitter graph
  • Add bigger size of clamp node to handle vector4 in Visject surface editor
  • Add PCM (GJK-based distance collision detection system) to PhysX
  • Add SolverType and BroadPhaseType to Physics Settings for simulation configuration
  • Add ability to choose sloppy mesh simplification or not in model import settings for LODs (better quality Auto-LOD)
  • Add ObjectRadius to DrawCall to properly cull local lights and env probes in Forward Shading
  • Add objects replication and RPC stats table to Network Profiler
  • Add VS folder structure for BuildScripts and FlaxEngine source files
  • Add Rider support to Ediotr on macOS
  • Add auto-gen script project files at startup when project Cache was cleared in Editor
  • Add better hostfxr error messages when failed to setup .NET runtime
  • Add missing marshaller methods for compatibility with .NET 8
  • Add improved dotnet location search (on macOS and Linux)
  • Add usage of xdg-open to open file manager on Linux
  • Add support for displaying all active Network Peer stats in Editor Profiler tab
  • Add android_native_app_glue.h to be included in engine package
  • Optimize UnwindRadians and UnwindDegrees from C# math lib
  • Optimize MClass::GetMethod method iteration
  • Optimize C# UnboxValue performance, safety and memory usage
  • Optimize C# method invokers return value marshalling
  • Optimize C# MakeArrayType results in native interop methods
  • Optimize actor pasting performance with huge amount of actors
  • Optimize ManagedDictionary types and helper methods
  • Optimize Delegate to use mutex and hash table over atomic operations for events binding
  • Optimize PhysX collision event handling and onContact callback
  • Optimize CultureInfoEditor and TagEditor performance when searching entries by text
  • Optimize various rendering stages to skip loading shader when effect is disables
  • Optimize scenes loading with Job System
  • Optimize ScriptingObject managed initialization and marshalling
  • Optimize values marshallers and type storage for managed scripting
  • Optimize updating scripts tick arrays
  • Update recastnavigation lib to 1.6
  • Update CSharp script template to use non-indented namespace
  • Update custom pugixml changes to pugixml_extra
  • Change Debug to be static
  • Changed Input.ActionTriggered event to pass aditionall InputActionState value
  • Change default dead zone in mouse axis input to 0 (in Flax Samples)
  • Disable assertions in Release build mode
  • Rename GPUPipelineState::Description::PrimitiveTopologyType to PrimitiveTopology
  • Remove unused TIsArithmetic
  • Refactor vertex shaders to use GPUShaderProgramVS::InputElement for input layout data
  • Refactor FileMode, FileAccess, FileShare enums into normal enums with docs
  • Refactor Visject surface nodes cache to reuse between graphs
  • Refactor Editor gizmo modes ownership to support using them in prefab window
  • Refactor ManagedHandlePool
  • Refactor scripts OnDestroy location to be called before actor's OnEndPlay to prevent issues in scripting
  • Refactor splash screen quotes
  • Refactor std::function usage into Function inside ArrayExtensions
  • Refactor audio clip import settings to use auto-generated bindings via AudioTool
  • Refactor how macOS launches processes to use ‘NSTask’ which just deals with escaped and unescaped paths better
  • Fix doc comments in UnwindRadians and UnwindDegrees from C# math lib
  • Fix various keyboard handling on macOS
  • Fix incoming drag drop location on macOS
  • Fix showing files in the Finder on macOS
  • Fix updating Content folder name when renamed in Finder on macOS
  • Fix various macOS issues where the BuildTool would not properly run and compile the scripts
  • Fix mouse cursor setting on macOS to properly handle screen scale
  • Fix error when opening shader asset if it's not visible in Content window
  • Fix missing header files in deployed engine package
  • Fix nested animation sampling bug
  • Fix culling artifacts in animated model preview in Editor
  • Fix nested animation playrate when the framerate is different
  • Fix incorrect Transform Position To Screen UV in particles graph in CPU code path
  • Fix visibility of string wrapper methods used in binding code
  • Fix various core types to be trivially constructible as properly POD-type
  • Fix releasing non-collectible types with collectible generic types
  • Fix DrawSceneDepth to properly draw scene objects when custom actors list is empty
  • Fix API_INJECT_CODE injecting duplicated code
  • Fix navigation rebuilding during OnEnable/OnStart
  • Fix some actor assets into soft checks
  • Fix Editor UI when one of the properties panel throws exceptions
  • Fix Label to draw text under children
  • Fix log spam from TypeEditor if type is missing
  • Fix opening FlaxEditor window in Linux after launch project second time
  • Fix error when scripting structure uses StringAnsi field
  • Fix missing Variant typename for Object or Asset value to properly pass type checks
  • Fix managed assembly unloading and scripting ALC reinitialization for native libraries usage
  • Fix ManagedArray C# handles with pooling
  • Fix particles effect not being able to call play to play again if IsLooping is false
  • Fix invoking managed method on value types (eg. Transform) to properly handle instance value
  • Fix actor hierarchy to use PrefabObjectID when setting/getting the actor expanded value for prefabs
  • Fix docs panel windows in Editor on macOS
  • Fix message box on Windows to prevent interaction with the editor and other windows
  • Fix UnitsToText to properly print string with 2 decimal places
  • Fix deserializing vector types in Editor from ToString FormatException
  • Fix Random Range nodes in CPU particles/script graphs when using int
  • Fix to stop replication if NetworkManager::NetworkFPS is less than 0
  • Fix building for Android with the latest Java version (update to Gradle 8.3)
  • Fix AbstractWrapper from showing in new AnimEvent context menu
  • Fix missing C# static fields in native scripting api
  • Fix visibility of some internal NativeInterop methods for game bindings
  • Fix prefab apply bug when one of the prefabs in project is broken
  • Fix wheel vehicle drive when EnableSimulation is disabled
  • Fix WheeledVehicle driving in Drive4W mode when wheels are in custom order
  • Fix managed UTF-8 string allocation not using correct encoding
  • Fix incorrect focus on Character Controller
  • Fix right click deselecting scene tree nodes
  • Fix white window flickering in context menus
  • Fix editing array of tags in Editor that is null initially
  • Fix Vulkan shader compilation with source files missing the last newline
  • Fix rare issue when script could be deleted when working with Visual Studio 2022
  • Fix Rider 2022 not being detected when installed with toolbox (Windows and Linux)
  • Fix Dictionary and HashSet iterators to prevent unwanted data copies
  • Fix ShaderGraphValue floating numbers are formatted with enough precision
  • Fix applying prefab changes to nesting prefab instances
  • Fix editor window from maximizing/minimizing on menu button double click
  • Fix whitespace when opening context menu with spacebar
  • Fix EditorModules in Assembly lookup paths to be properly included
  • Fix being able to create folder from project folder
  • Fix renaming folders in Editor with dot character (.)
  • Fix typing DEL character in Text Boxes
  • Fix Slider clipping left most pixel
  • Fix right clicking on source folder to sometimes select non-visible child
  • Fix not capturing the the Debug.Log line in the Debug Log window
  • Fix error when model is missing in Editor for prefab editor
  • Fix iphonesdk is not required to build macOS Editor (and check for iOS tools on Mac)
  • Fix x64 editor/runtime on M1/2 macs
  • Fix launching Rider on macOS
  • Fix build scripts to detect only supported versions of MSBuild
  • Fix missing Variant marshalling for scripting structures bindings
  • Fix non-windows platforms csproj files
  • Fix error when loading project on non-ASCII path
  • Fix editor window closing when using camera flight
  • Fix Actor.RotateAround to rotate the actors orientation
  • Fix bool editor when null
  • Fix blur panel to draw self
  • Fix issue with blur strength slider
  • Fix HScroll bar from covering nodes in scene and prefab tree windows
  • Fix initial Editor window size to not cover task bar on start
  • Fix issue of game window not returning focus to parent on mouse leave
  • Fix nested profiler events usage
  • Fix potential missing editor font bug
  • Fix Editor viewport camera drifting with odd viewport sizes
  • Fix creating prefabs directly from prefab objects
  • Fix missing debug shapes drawing when skeleton node gets selected
  • Fix model asset previews to wait for materials to be loaded
  • Fix minor issues with OpenFBX (backported specific * Fixes)
  • Fix imported fbx file from Blender to use proper Up axis
  • Fix model importer to use precomputed Offset Matrix for skeletal model bones
  • Fix applying scale to imported models with Assimp
  • Fix using DefaultFrameRate for animation imported with Assimp
  • Fix importing skinned models with meshes that don't have valid skinning to properly link into the node's bone
  • Fix model importer to use precomputed Offset Matrix for skeletal model bones
  • Fix scenes objects creation to happen after actors transformations and bounds are initialized
  • Fix performance bug in Development/Release builds due to incorrect draw calls batching (uninitialized memory)
  • Fix loading shared managed assemblies multiple times
  • Fix AnimatedModel box
  • Fix particle effects not working properly at high framerate
  • Fix deduplication of vertexs to respect vert colors
  • Fix shader compilation tracking to check for directory existence
  • Fix VisualScript method calls not working with value types
  • Fix VS Code missing build tasks in C#-only projects
  • Fix VS Code build and launch tasks for plugins, dependencies and duplicates
  • Fix building rules assemblies to use the latest C# version
  • Fix Visual script parameter item duplication bug
  • Fix potential incorrect null checks in FlaxEngine.Objects
  • Fix IES profile light computation formula
  • Fix Tag deserialization in cooked game
  • Fix spatial audio playback when clip is set after the audio source was enabled
  • Fix AudioClip loading error when buffer start times diff has rounding error
  • Fix various issues with audio clip data buffers to reduce artifacts (especially when using 24-bit data)
  • Fix various issues with OpenAL buffers playback (do proper bit convertion)
  • Fix AssetsCache to include project path and reject cache when project gets duplicated with cache
  • Fix editor tabs control size for tab header when scroll bar is visible
  • Fix preserving editor minimized floating windows in saved layout
  • Fix removing large amount of assets in Editor at once
  • Fix updating time left when destroying large amount of objects
  • Fix sprite shadow to match the sprite facing camera
  • Fix NavCrowd to properly wait for navmesh loaded
  • Fix script serialization failures from removing scripts that have exception errors
  • Fix animation graph transition data from source anim info
  • Fix double engine assembly init in Editor
  • Fix plugins initialization order to properly unload scenes before them in cooked game
  • Fix Editor viewport camera transformation getting corrupted when focused
  • Fix Editor gizmo sizes in orthographic viewport mode
  • Fix opening plugin project files in Visual Studio
  • Fix audio preview for multi-channel audio clips
  • Fix various issues when playing audio with XAudio2 backend (Windows and Xbox)
  • Fix color picker on Linux
  • Fix deadlock in Foliage::GetFoliageTypeInstancesCount
  • Fix missing particle layout attributes when using Particle Emitter Function
  • Fix invalid particle attributes access inside emitter function
  • Fix particle emitter function cache clearing for GPU shader generation
  • Fix particle attributes usage in GPU emitter function
  • Fix C# objects serialization bug when script throws exception during saving to Json
  • Fix logging performance and crashes on non-Windows platforms
  • Fix HandleObjectDeserializationError to be editor or dev only and thread-safe
  • Fix setting up prefab objects ids mapping for nested prefabs to link cross-object references correctly
  • Fix asset load to trigger loading task within mutex to prevent race conditions when loading the same prefab from many threads at once
  • Fix main menu popups misalignment on Linux
  • Fix window placement hints on Linux
  • Fix incorrect mapping of Alt key on Linux
  • Fix build project generation under Arch Linux
  • Fix GetVirtualDesktopBounds for Linux
  • Fix double-click on Linux to use maximum distance between clicks
  • Fix Cannot find compatible metal driver on macOS due to the newest Vulkan SDK regression
  • Fix C#-only game projects to reference precompiled DLLs instead of FlaxEngine.csproj
  • Fix generating VS configurations for Win32 and engine projects
  • Fix Visual Studio solution project to ensure that main project is the first one
  • Fix compilation with the latest Visual Studio 2022 17.7
  • Fix compilation error due to exposed public CommonValue inclusion
  • Fix missing Visject CM groups auto-expanding if enabled
  • Fix missing C++ standard version in VC++ projects intellisense options
  • Fix WindowsPlatform::LoadLibrary to not modify the string parameter
  • Fix error when calling Network RPC on despawned object
  • Fix crash when C# marshalling array with PostFxMaterialSettings Materials
  • Fix crash when using Vector3 soft casting in Visual Scripts
  • Fix crash to soft-return if managed event bind target object native instance is gone
  • Fix crash when baking lightmap for terrain with missing patch texture
  • Fix crash on Linux when using unmapped keyboard Keyboard
  • Fix crash when using custom Anim Graph node (.NET 7 regression)
  • Fix crash when max files open limit is too small on macOS/iOS
  • Fix crash due to ManagedObject reference copy in Variant
  • Fix crash on terrain export in Editor
  • Fix crash when window gets removed during windows update loop
  • Fix crash with XAudio2 backend when source is playing
  • Fix crash if OpenAL internal device name is all whitespaces
  • Fix crash when unboxing managed structure with refs into Variant
  • Fix crash when boxing native array to managed value
  • Fix crash when copying and pasting in same folder as clone
  • Fix crash when toggling WheeledVehicle active state
  • Fix crash when generic classes spanned across different assemblies
  • Fix crash when loading C# assembly from non-ASNSI path
  • Fix crash when setting material instance base material before it's loaded
  • Fix crash due to invalid message in Assimp
  • Fix crash in C# JobSystem.Dispatch due to GC collecting Delegate object
  • Fix crash when importing model with materials and Split Objects enabled
  • Fix crash when D3D11 backend fails to create shader due to driver failure
  • Fix crash when spawning large amount of network objects at once by sending spawn message in parts
  • Fix crash when implementing INetworkSerializable in C#-only
  • Fix crash when updating GPU particle system without view buffers allocated
  • Fix crash when importing assets in Editor (race-condition from Content Importer thread)
  • Fix crash when using Visual Script runtime in async
  • Fix crash when generating project files with toolchain setup that fails
  • Fix crash on Vulkan when drawing shader without binding proper constant Buffer
  • Fix crash when creating empty particle emitter

1.6.6344

9 months ago

Release notes: https://docs.flaxengine.com/manual/release-notes/1_6/index.html

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-6-6344/1041

Changelog:

  • Add .NET 7 support with C# 11 and the latest DotNet Runtime (new JIT and GC)
  • Add Platform.BuildTargetArchitecture to build tool
  • Add support for mixed scripts debugging in Visual Studio (both C++ and .Net Core)
  • Add logging native exception stack trace on Windows when debugger is attached before going back to the crash location
  • Add unit test to verify LibraryImport attributes usage for proper bindings
  • Add PhysX 5
  • Add Physics Statistics and profiler
  • Add FileSystem::GetDirectorySize
  • Add option Skip .NET Runtime Packaging to skip backing C# class library with cooked game (to use system-installed if possible)
  • Add printing output C# files size in game cooker
  • Add C# class library optimization for normal game builds (without AOT)
  • Add multi-threading to AOT compilation (3x faster builds for Consoles and iOS)
  • Add support for handling network events immediately in NetworkLagDriver when Lag is set to zero
  • Add Any State to Anim Graph state machines
  • Add Interruption options to State Machine transition
  • Add skeleton node or bone copy context menu in Editor
  • Add debug drawing selected skeleton node in Skinned Model window viewport
  • Add skeleton nodes names debug drawing in Editor preview when enabled
  • Add skeleton retargeting to play animations on different skeletons
  • Add scale parameter to DebugDraw text drawing to rescale text without reducing font size
  • Add support for importing skeleton-only as Skinned Model (eg. from animation file to have skeleton for retargeting)
  • Add support for macOS arm64 (M1/M2 chips)
  • Add logging missing asset type on failed load
  • Add Output/ folder to .gitignore
  • Add TaskGraphSystem.RemoveDependency and automatically cleanup dependencies on system destroy
  • Add better looking Anim Graph state machines nodes
  • Add support for using INetworkSerializable on custom structure in C++ for networking
  • Add support for spawning multiple objects over network within a single group that is not from Prefabs
  • Add Network Replication Hierarchy for robust control over replication in multiplayer games
  • Add network error log for missing network object when accessing ownership
  • Add CPU profiler events to various networking functions
  • Add network replication hierarchy system to Arizona Framework with settings and scripting features
  • Add NetworkReplicator::HasObject
  • Add network debugging panel to actors and scripts
  • Add INetworkObject::OnNetworkSync
  • Add default empty implementations to INetworkObject for easier suage in game scripting
  • Add SoftTypeReference<T> to scripting API for lazy-load type references (via typename)
  • Add input action phases
  • Add Camera.UnprojectPoint method
  • Add play, pause, and stop functions to the Particle Effect
  • Add better tooltips for assets in Content window
  • Add better organization to the style groups of UI controls
  • Add better UI for linking scale values in a transform more intuitive
  • Add Pivot Relative UI Sizing to controls
  • Add support for editing dictionary keys that are structures
  • Add asset reload option via context menu in Editor
  • Add search actors by parent tag (Level.FindActorsByParentTag)
  • Add FindActor by type and name (to actor and level)
  • Add CustomArgs to compile and link environment in build tool for customization
  • Add preferring high-performance discrete GPUs when enumerating adapters
  • Add Utilities::HertzToText via new Utilities::UnitsToText
  • Add LineCast and LineCastAll to physics scripting
  • Add default new script name to MyScript and avoid namign it as Script to make it easier for use
  • Add Platform::GetMousePosition/WindowsPlatform::SetMousePosition for unified access to screen-space mouse position on all platforms
  • Add eyedropper color picker for Editor on Windows and Linux
  • Add better usability when duplicating points of a spline
  • Add various Input class delegates to the C#/Visual scripting API
  • Add automated test for loading nested prefab with different root actor
  • Add bitmap data slot of Font glyphs in FontTextureAtlas
  • Add Span<T> support for scripting fields
  • Add Span<T> to C++ debugger natvis file
  • Add HRTF Audio support (via OpenAL backend)
  • Add updating the main menu shortcut keys on editor options save
  • Add Copy Euler angles to Quaternion editor context menu
  • Add logging PixelFormat as string instead of integer value for better readability
  • Add ClampLength functions to C++ Vector3
  • Add InputBindings modifiable from plugin (in Editor public API)
  • Add word wrapping on capital letters and underscores for better text rendering
  • Add various changes to scroll bar to make it feel better
  • Add de-selecting items in content view by clicking empty space in Editor
  • Add the play icon to a stop icon and vice versa when clicked for the Profiler
  • Add Create collision data action to be performed for each model selected in the Content Window
  • Add improvements for Visject context menu interface in Editor
  • Add ability to change the fps of the not focused editor window
  • Add setting new material instance name to parent material name
  • Add EnumAddFlags for easy flags appending
  • Add NetworkReplicator::EnableLog to optionally enable verbose logging of networking
  • Add NetworkStream::SenderId to detect message sender during object replication or RPC code
  • Add NetworkManager::GetClient by uint32 clientId
  • Add NetworkRpcParams for sending RPC to specific set of clients or to read sender id
  • Add array property replication code-gen for C# networking
  • Add networking replication codegen for C# array properties with object references or custom structures
  • Add LateFixedUpdate event for scripts
  • Add support for decimal values in Font sizes
  • Add proper POD types check in C# network replication codegen
  • Add support for C# array as network RPC method parameter
  • Add objects ID inverse mapping from client to server for proper C# networking codegen
  • Add optional replication for network object (if Rep FPS is negative)
  • Add support for changing C# nullable references context build option
  • Add Content importers and exporters for scripting API
  • Add more usability to model/material previews in Editor
  • Add option to search only active actor with Tag
  • Add output binaries folder cleanp to build clear command
  • Add support for writing UTF-8 files in FileBase::WriteAllText
  • Add ability to unset type reference with null item
  • Add SpanContains utility to C++ scripting
  • Add ReallocAligned utility
  • Add support for line-breaks in API_INJECT_CODE macro
  • Add eol=lf to gitattribute
  • Add removing old hot-reload files in project references on Editor startup
  • Add better visuals of dragging a tree node
  • Add Unload all but this scene to Editor scene tree context menu
  • Add using parent actor's name as initial prefab name in Editor
  • Add MoveTowards functions to C++ Math
  • Add Tags::GetSubTags to scripting api
  • Add ViewportIconsRenderer::AddActorWithTexture for custom actor icon per-actor
  • Add inputs to Random Range nodes in particle emitter surface
  • Add == operator for Actors and Scripts to properly perform comparison in C# scripts
  • Add AudioDataInfo.Length
  • Add audio clip preview refresh on asset reimport in Editor
  • Add current playback position preview with seeking functionality to Audio Clip window in Editor
  • Add OpenAL AL_SOFT_source_spatialize extension support for stereo spatial audio playback
  • Add AllowSpatialization option to Audio Source
  • Add DopplerFactor to Audio Source
  • Add Pan to Audio Source for stereo panning
  • Add editor playback utilities for Audio Source and Scene Animation Player
  • Add saving and re-opening all active scenes between editor sessions
  • Add ensuring prefab actors static flags match parent flags or keeps it's own
  • Add logging .NET runtime version to build tool
  • Add ignoring logging missing env var on Windows
  • Add engine version defines for build scripts (eg. FLAX_1_6_OR_NEWER)
  • Add automated test for strings formatting and localization
  • Add content proxy modifications function and workspace rebuilding for custom asset types extensions
  • Add build tool and game cooker caches clearing when opening project with different Editor version
  • Add GC to run periodically in order to reduce stuttering
  • Add launchSettings.json generation for Visual Studio 2022 with .NET 7
  • Add better Texture initialization API with custom data
  • Add better Visual Studio solution generation with nested C# project cross-references to properly place projects in group folders
  • Improve Root Motion extraction and playback
  • Improve automatic slider speed for float value fields in Editor
  • Optimize Flax.Build performance to have even faster builds
  • Optimize bindings code generation via String Builder pooling
  • Optimize text formatting in various places
  • Optimzie Newtonsoft.Json lib by removing Xml, Schema support and making it AOT-friendly for AOT game builds
  • Optimize out System.ComponentModel.TypeConverter assembly usage to reduce cooked game builds
  • Optimize profiler window assets and GPU resources sorting when the view is active only
  • Optimize network replication when no client can receive object
  • Optimize interface method lookup to eliminate strlen calls
  • Optimize vectors normalization
  • Optimize UI performance when destroying complex UI structures
  • Optimize Utils.InitStructure usage in generated bindings code if structure can be zero-inited
  • Optimize CollisionsHelper::FrustumContainsBox
  • Optimize out debug symbols generation for C# stdlib in Mono AOT builds
  • Update Newtonsoft.Json to 13.0.2
  • Update Nintendo SDK support to 16.1
  • Update OpenAL version to 1.23.1
  • Update dependant DotNet libraries to dotnet7
  • Update deprecated WebClient into HttpClient in Flax.Build files download utility
  • Update fmt llibrary to version 9.1 (Aug 27, 2022)
  • Update Editor analytics from deprecated Universal Analytics to the latest GA4
  • Update Tracy to the version 0.9
  • Update Flax .gitignore to skip generated code module header files
  • Changed Flax Docs license to CC-BY-4.0 license
  • Remove mono debugger from VS Code extensions list
  • Remove shadows casting and sdf data from editor camera model
  • Remove unused Function::TryCall
  • Remove extra sleep when Editor is not focused
  • Remove EnableAdaptiveForce from Physics settings (deprecated functionality in PhysX)
  • Rename networking codegen initializer to NetworkingPlugin for C# netcode
  • Refactor vehicles to use Z axis as forward instead of X
  • Refactor platform process startup with CreateProcessSettings
  • Refactor Editor Windows layout serialization of splitter values to prevent invalid state when loading windows
  • Refactor Skeleton Mapping to be handled by Skinned Model instead of Animation asset
  • Refactor StringUtils to simplify code
  • Refactor various Editor APIs to use auto-generated bindings instead of manual code
  • Refactor widowing on macOS to support screen scale and HighDpi mode
  • Refactor RootMotionData into Transform to simplify code
  • Refactor Level class to unload scenes in reversed order
  • Refactor 3d audio with better spatial sound quality
  • Refactor Network RPC C# codegen to share code with data serializer
  • Fix Anim Graph state machine rule graph opening after transition removal undo
  • Fix actors spawning in prefab editor
  • Fix bug in StringUtils::PathRemoveRelativeParts when going up to the Windows drive with relative path bits
  • Fix deprecation compile warning in NetworkConfig on Clang
  • Fix API code injection lines to be excluded from includes cache
  • Fix warning on Asset::WaitForLoaded when loading failed before
  • Fix AnimatedModel bounds calculations
  • Fix bug with path name preventing the item to be renamed when duplicated
  • Fix content window auto scrolling regression
  • Fix debug draw lines to not use fake-lighting like debug draw surfaces
  • Fix Array For Each visual script node local vars setup
  • Fix OpenAL spatial audio bugs with left/right and front/back being reversed
  • Fix error when using nested Visject Surface context during State Machines editing in Anim Graph
  • Fix Json asset cooking to properly serialize whole asset data even if modified at runtime
  • Fix collision data cooking from model asset by favoring CPU data fetching
  • Fix missing Generic Json Proxy not showing up in the content context menu
  • Fix codegen for C# networking when using custom structures for replication and RPCs
  • Fix mouse cursor restoring from hidden state on macOS
  • Fix window focus notification handling on macOS
  • Fix dylib rpath id on macOS
  • Fix visuals of Blend with Mask node in Anim Graph
  • Fix visuals of the spline tangent points in Editor
  • Fix Visual Studio Code jump to line argument
  • Fix scene asset runtime contents when saving scene file in Editor
  • Fix C# serialization of scene objects when property throws and exception
  • Fix C# math sign function for value 0
  • Fix C# Math.Remap method as obsolete (use `Math.Map instead)
  • Fix C++ API for Vector2/3 Normalization to be the same as in C# API
  • Fix ViewportIconsRenderer usage in game C++ scripts
  • Fix TextureMipData::GetPixels to properly copy pixels of the same format
  • Fix memory leak when exporting png texture via stb
  • Fix issues when drag and dropiing actor tree in Editor
  • Fix LayersMatrixEditor with many layers in use
  • Fix right-click menu deletion to take selection into account in Content Window
  • Fix content view items refresh (eg. after delete) when using search field
  • Fix Visual Studio project names collision when using both C++ and C# scripting
  • Fix C# serialization of reference to self (eg. script sub-object referencing owning script)
  • Fix sluggish Editor Viewport camera movement with high DPI
  • Fix GridGizmo to render before transparency in Editor viewport
  • Fix invalid ability to rename Source/Content folders on content editor
  • Fix custom editor window restore after hot-reload
  • Fix incorrect space conversion results in AnimatedModel.SetCurrentPose
  • Fix vehicle wheel debug orientation
  • Fix missing collision events generated during CharacterController::Move
  • Fix compile-time error in HashSet::ClearDelete
  • Fix codegen for C++ RPS with Array param
  • Fix garbage DefaultScene value in new project
  • Fix Intellisense errors with referenced binary module structures
  • Fix invoking Client RPC on Host client when it's not included in targetIds list
  • Fix StringUtils::ConvertANSI2UTF16 to properly handle multi-byte characters length
  • Fix bug when using material instance of material that uses GlobalSDF
  • Fix bug of the collection size changing while sliding the size number in Editor
  • Fix bug with not deleting all children on folder delete
  • Fix bug with automatic collision assets creation in non-asset folders
  • Fix missing initial audio source volume setup for XAudio2
  • Fix network RPC object id mapping back to server id when sent from client
  • Fix NetworkTransform invalid fields sync copy-paste typos
  • Fix creating localization table on blank project
  • Fix bindings generation for in-built Char type used in Array
  • Fix model screen size calculation in orthographic view projections
  • Fix CPU profiler events extraction when buffer is full
  • Fix bindings code instance object param obj to __obj to prevent name collisions
  • Fix existing nested prefabs sync applying when updating base prefab changes
  • Fix spawning nested prefab with different root actor
  • Fix accessing object ownership info locally before object gets fully spawned
  • Fix character controller up direction limit between (-1, 1)
  • Fix typo in atmosphere precompute shader
  • Fix scale link to use ratio when editing transform
  • Fix hierarchical network ownership propagation to sub-objects
  • Fix NetworkManager::ClientConnected dispatch after network state is changed to online for local client
  • Fix UIControl linkage to Prefab window when creating UI within prefab Editor
  • Fix UI Control selection highlights when using Canvas Scaler
  • Fix 3D UI Canvas point conversion from parent control space to local space
  • Fix syncing Custom Editor value when using it to edit value-type
  • Fix spawning nested prefab with different root actor
  • Fix prefab diff context menu in Editor to properly diff against arrays
  • Fix prefab data build number when loading objects from prefab
  • Fix Scale Transform Gizmo issue when enabling Scale Snap
  • Fix looping animation in Anim Graph when using start position offset
  • Fix creating C# scripts in Editor with private ctor method
  • Fix textbox submit when it's nav focused
  • Fix file lock when loading asset fails
  • Fix error when unloading Visual Script item in Editor
  • Fix using proper default value in scripting bindings for IntPtr value type
  • Fix prefab files copying using Ctrl+C/Ctrl+V in editor content
  • Fix RPC invoking on object with different ID but matching parent and type
  • Fix BitArray::Set to not be const
  • Fix output log text ranges to handle line ending
  • Fix crash due to internal errors when drawing asset thumbnails in Editor
  • Fix crash on engine exit when asset fails to load due to serialized version mismatch
  • Fix crash when substring of String is assigned to itself
  • Fix crash when importing model with a LOG Generation but a single LOD specified only
  • Fix crash when sampling animation in Anim Graph that uses it's length to calculate start position
  • Fix crash when C# type has missing empty ctor or it throws an exception
  • Fix crash in GPU devices init when system has no valid GPU driver installed
  • Fix crash when loading scene with script which type is not a scene object
  • Fix crash on end play when one of the actors has been manually disabled
  • Fix crash when reimporting audio clip while it's being played
  • Fix crash when updating GPU texture residency to 0
  • Fix crash when using multiple audio clips streaming with XAudio2 backend
  • Fix crash when starting drag&drop with invalid control state (detached from window)
  • Fix crash during hot-reload when using custom assets from game code
  • Fix crash due to invalid RPC codegen for enum value type variable
  • Fix crash on hot-reload when using custom assets
  • Fix crash when modifying animated model skeleton pose from gameplay code during update event
  • Fix crash due to replicated objects leak upon system destruction
  • Fix crash when window gets deleted before show/close sequence

1.5.6339

1 year ago

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-5-6339/932

Changelog:

  • Add FLAXENGINE_API to platform specific classes for C++ scripting usage
  • Add Ragdoll actor to toolbox
  • Add better C++ standard library version detection on Linux
  • Add LinuxFileSystem::ShowBrowseFolderDialog
  • Add BC4, BC5 and BC7 formats decompression support on non-Windows platforms
  • Add support for building Android app on Linux or Mac
  • Fix Tag natvis debugger print
  • Fix Level::FindActors with Tag
  • Fix using Vulkan SDK header from system when cross-compiling
  • Fix cursor not changing from IBeam to default when hovering over cancel button in SearchBox
  • Fix stability of Global Surface Atlas to smooth objects culling buffer capacity over time

1.5.6338

1 year ago

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-5-6338/919

Changelog:

  • Add scaling towards mouse position in Visject surface
  • Add hiding tooltip while dragging UI control
  • Add FlaxEngine project file generation for VS Code
  • Add DontCompress configuration to build tool
  • Add support for deserialization of deprecated properties in scripting types
  • Add sticky the content window search field so the search bars do not scroll with the content items
  • Add new editor icons for actors
  • Add performing layout when deleting actors and scrolling to duplicated/pasted actor when action is performed
  • Add custom game viewport sizing in Editor
  • Add scene panel to separate the tree from the search bar and made it not scroll when renaming
  • Add actor virtual functions OnDebugDraw/OnDebugDrawSelected/OnEnable/OnDisable to override in scripting
  • Add TypeNameEditor for editing typename reference as soft string value
  • Add game settings assets loading (not only objects)
  • Add Cook&Run and Run cooked game utilities to Game menu list for multilayer games testing
  • Add support for editing JsonAsset data at runtime (eg. modify game settings on the fly)
  • Add support for custom types/members attributes parsing in scripting bindings
  • Add support for custom Action Command in TaskGraph
  • Add support for DataContainer in scripting api bindings
  • Add support for custom icons for actors in ViewportIconsRenderer
  • Add play/pause widget and keybind for particles preview in asset Editor
  • Add custom Tags for scripting api types to be used by plugins
  • Add Left Click to submit text in textbox
  • Add SceneReference to C++ scripting API
  • Add AdditionalScenes to BuildSettings
  • Add ViewFlags::Sky for conditional sky/skybox rendering
  • Add DefaultValue support for scripting parameters
  • Add AfterGBufferPass and AfterForwardPass for custom PostFx location
  • Add Renderer::DrawActors for quick actors rendering in custom render passes
  • Add simplified collider for in-built primitive meshes
  • Add new UI for Drop Panels in Editor (bigger header, expandable arrow icon and guidance lines)
  • Add RenderBuffers::LinkedCustomBuffers to reuse main game viewport rendered state (eg. GI) in sub-rendered view
  • Add GPUContext::SetBlendFactor
  • Add SortOrder to drawable object types for transparency sorting override
  • Add support for StringAnsi in scripting api
  • Add NetworkTransform component
  • Add network stats API for transport layer
  • Add GBuffer textures to the C# scripting
  • Add Editor search fields usage on a single character query (instead of min 2 chars)
  • Add NetworkLagDriver for lag simulation over low-level network transport layer
  • Add support for different access level for scripting property functions
  • Add Layer and StaticFlags from parent actor after spawnign actor in Prefab Window
  • Add support for non-const ref parameters with conversion (eg. string or array) in scripting api function parameters
  • Add multi-threaded scene rendering with Job System
  • Add draw call sorting keys generation during draw calls collection (async)
  • Add WorldPosition to postfx material scene textures for world-space position sampling at uv
  • Add GPUDevice::CreateConstantBuffer for custom constants buffers usage
  • Add option to override Custom Editor for array of type
  • Add Tag and Tags for new tags system
  • Add FindActor/FindActors with Tag to Level
  • Add Tag to PhysicalMaterial for physical surfaces tagging
  • Add unit tests for scripting features
  • Add thirdparty files in the includes cache for build tool checks
  • Add more test cases for various scripting bindings features
  • Add bigger input value boxes to Visject Surface
  • Add UseAssetImportPathRelative to Editor options and use it by default to store imported asset path relative to the project folder
  • Add VS2022 support for building for UWP platform
  • Add navmesh update on terrain sculpt undo/redo
  • Add this to API_PARAM for static method extension of a type
  • Add defer to navmesh update when sculpting action ends to prevent stalls
  • Add support for editing path to the asset within AssetRefEditor
  • Add Procedural Texture Sampling material node (stochastic)
  • Add auto save reminder popup on Editor status bar
  • Add Color.FromRGBA
  • Add RandomStream to C#
  • Add RandomUtil.Rand method to C# and Visual Script for quick random float in range [0;1]
  • Add scripts compilation failed status to status bar in Editor
  • Add TargetCompiler to Flax.Build toolchains
  • Add centered the context menu that is created from clicking the add scripts button on an actor
  • Add C++ file includes cache serializartion to improve incremental build times
  • Add cancel button to search fields in Editor
  • Add hover begin and end event to button
  • Add preventing from spawning abstract Actor/Script type
  • Add RenderSetup and allow customizing it by gameplay and postfx
  • Add RenderingUpscaleLocation for customizing upscaler location in render pipeline
  • Add scripts dragging support to scene tree for reparenting
  • Add Render2D.DrawTexturedTriangles with index buffer
  • Add FlaxEngine.Object.FromUnmanagedPtr for native object raw pointer conversion to managed object
  • Add ScriptingTypeHandle support for scripting bindings as System.Type
  • Add WriteStructure/ReadStructure utilities for NetworkMessage
  • Add automatic network serializers generation for NetworkReplicated fields in C++ types
  • Add better location of renaming box for Actor/Folder tree node to start at the label for better UX
  • Add project-independent saved windows layouts (stored globally)
  • Add better organization to Content projects tree organization for better UX (game project first, ending project last)
  • Add Mono.Cecil to Flax.Build
  • Add profiler events for plugins init/deinit
  • Add GPU Memory profiler to Editor
  • Add ViewFlags::Sky for conditional sky/skybox rendering
  • Add pooled render targets naming for easier GPU memory usage debugging
  • Add SetResourceState and ForceRebindDescriptors to GPUContext for integration with external rendering libraries
  • Add support for CanRender in postFx to depend on specific render setup
  • Add GetNativePtr to GPUAdapter
  • Add changing mouse cursor to ibeam when editing text box
  • Add IsAnyButtonDown utility to Mouse and Gamepad
  • Add Normalized to Float2 and Vector2
  • Add support for using system-installed Vulkan SDK on Linux
  • Add FLAX_X_Y_OR_NEWER to game code defines
  • Add engine version defines to C++ game scripts
  • Add Canvas Scaler control for resolution-independent UI
  • Add dev-only name to spawned Particle System
  • Add support in GetScript to interface types
  • Add option for importing scale tracking to animation asset
  • Add BlurScaleWithSize to BlurPanel for resolution-independent blur
  • Add Actor Scale linking and unlinking in Properties window for uniform scaling (right-click)
  • Add MemoryUsage property to Asset for estimated CPU memory pressure
  • Add memory usage query for various asset types
  • Add Assets profiler to Editor
  • Add support for normal generation when using Assimp model importer
  • Add side mouse button shortcuts to the Content window
  • Add ability to drag maximized window in Editor
  • Add Animation Instance Data node to Anim Graph for caching value per-model
  • Add support for 32 bit indices for the terrain chunk geometry
  • Add JsonAsset.Save
  • Add updated transform Gizmos in Editor
  • Add better support for file dialogs on Linux
  • Add preferred LLVM linker over other linkers on Linux (faster link time)
  • Add serialization to PostProcessEffect fields and expose them in a sub-group in Editor
  • Add grouping for new assets creation in Content window
  • Add ContentContextMenu attribute for custom assets creation groupping
  • Add ActorContextMenu attribute for custom actors creation groupping
  • Add ActorToolbox attribute for actors grouping in Editor Toolbox
  • Add scroll bars and resiable window to materia;/shader source code viewer
  • Add a new way for actor context menus creation (via ActorContextMenu attribute)
  • Add to not close the child context menu on click in Editor
  • Add Shift key for skeleton mask editor to affect children bones on click
  • Add KeyDown and KeyUp events to TextBoxBase
  • Add value boxes hiding cursor and returning it to its position when done
  • Add caching transform snapping enables and values for main Editor viewport
  • Add visual cursor changes when sliding value box or resizing docked window
  • Add cursor change for moving the property splitter
  • Add support for importing WAV files that contain extra format bytes in fmt header
  • Add support for MSBuild in preview version Visual Studio in build scripts
  • Add better items placement in Editor content view
  • Add support for imported LOD meshes using _ character (eg. mesh LOD_1)
  • Add aiProcess_SortByPType to Assimp importer to reduce artifacts from multi-geometry types imports
  • Add rename on left click outside the Editor renaming popup
  • Add float3 scaling to triplanar texture node
  • Add improvements for Editor Gizmo draw order
  • Add running Tests on Windows in Github Actions CI
  • Add improvement for drag&drop tooltip hiding on operation start
  • Add improvement for normal maps detection when importing FBX model files
  • Add DDS files import time improvements if already compressed
  • Add faster scroll speed to feel less sluggish in Editor
  • Refactor GetNonTerminatedText into GetText in StringView
  • Refactor raw data ReadSttream and WriteStream to have easier to use API with more features
  • Refactor Actor tags into hierarchical reusable Tags system for better gameplay scripting
  • Refactor material shaders to use separate constant buffer (slot 1) for shared per-view constants
  • Refactor scene rendering to separate drawable actors
  • Refactor enum flags with __underlying_type and new EnumHasAnyFlags/EnumHasAllFlags/EnumHasNoneFlags
  • Refactor scene rendering to use batched culling for main view and shadow projections
  • Refactor ObjectsRemovalService to skip double-buffering due to issues and complexity
  • Refactor PostProcessEffect to support C++ scripting
  • UWP (Windows Store) platform has been deprecated and soon will be removed
  • Remove double click to rename content item
  • Remove GPUResourcesCollection and use GPUDevice instead to simplify code
  • Remove old RT1_FloatRGB and RT2_FloatRGB in favor pooled render targets
  • Rename property GetElementsCount to ElementsCount in C# GPUBufferDescription
  • Rename DepthTestEnable to DepthEnable in Graphics PSO to match actual logic
  • Reduce Render Targets Pool flushing frequency to prevent memory popping
  • Update DefaultLensDirt and DefaultLensStarburst texturs to reduce GPU memory usage
  • Upgrade GPU limits to support 16k textures
  • Change the default for script members order to declaration
  • Optimize Editor camera previews updating performance
  • Optimize Depth Of Field effect usage of GPU memory
  • Optimize BoundingFrustum::Intersects(BoundingSphere)
  • Optimize Global SDF cascades updates intervals (max 1 cascade per frame)
  • Optimize Global SDF performance on CPU when scene is mostly static
  • Optimize GPUBuffer on D3D11 to not stall CPU on reading staging readback buffer
  • Optimize various debug views performance
  • Optimize GPU Resource name to prevent memory allocs when changing name frequently
  • Fix context menu and tooltips on Linux to be more stable
  • Fix dragging timeline ending edge with a mouse cursor
  • Fix math node size
  • Fix potential rare issues with material shader constants containing invalid data
  • Fix Flipbook material node bug when frames X was different than Y
  • Fix missing game scripts types when starting editor from IDE with -skipCompile arg
  • Fix for Anchor drop down UI closing in Editor
  • Fix textbox defocus on edit end
  • Fix comparison operators on object reference types
  • Fix the additional layers in the matrix when there is less than 4 layers in the layers and tags settings
  • Fix missing TraceMode blending in PostFx volume for SSR settings
  • Fix child menu arrow image to accommodate for the scroll bar showing when the amount of items exceeds the max
  • Fix DPI query on Linux to handle value from KDE Plasma
  • Fix process creation on Linux to prevent deadlock when reading process output pipe
  • Fix centered window and message box locations on Linux (multi-monitor desktop)
  • Fix LinuxFileSystemWatcher not working in sub-directories
  • Fix running VC++-project build commands with Rider on Linux
  • Fix compiler warnings with Clang 15 or later
  • Fix error when joining exited threads
  • Fix Mesh data downloading to support not yet streamed vertex/index data gather
  • Fix linking against C#-only modules
  • Fix rendering with custom feature-set
  • Fix null String serialization over network via C# API
  • Fix first property name letter to uppercase in Editor properties panel
  • Fix temporal anti-aliasing to provide better quality output
  • Fix OnSceneUnloaded event to contain valid scene object
  • Fix GetNativePtr on Vulkan
  • Fix leftover UI control state when it gets disabled/hidden/reparented
  • Fix imported shader source last char value to prevent strange diffs in Version Control Systems
  • Fix Intellisense issues with Visual Studio Code
  • Fix native scripting interface method override in managed scripts on Clang-platforms
  • Fix ScriptingObject::FromInterface to return object if the pointer is already valid object
  • Fix recursive binary modules usage in scripting
  • Fix reading type inheritance in bindings generation with comment at the end
  • Fix Visject surface input box color for missing connection type but with type hint
  • Fix Audio Source stop/play pait to properly restart streamed audio clips
  • Fix missing output clear when reading text array in OpenFBX
  • Fix position of child context menus when having to open left in Editor
  • Fix typo fix in Graphics Settings, from 'Uee HDR Probes' to 'Use HDR Probes'
  • Fix displaying Game and Editor plugins to be batched in Editor
  • Fix invalid NetworkMessage usage in C++
  • Fix various aspects of the prefab editor window interface
  • Fix when sliding the cursor slowly to a screen edge, mouse get flipped to the other screen edge and come back again (only on Windows)
  • Fix mouse get cursor flipping (some sliders that use mouse tracking also update the frame of mouse flip, causing a wrong slide delta)
  • Fix using dependency module from nested referenced build in C#
  • Fix custom animation clip frames range import to properly treat frame indices
  • Fix bug with Screen.CursorVisible set in script OnStart
  • Fix audio clips streaming to be thread-safe when audio sources play
  • Fix asset registry issues when starting Editor on Windows with uppercase path if the cached was lowercase path
  • Fix dragging maximized dock window in Editor to restore size
  • Fix issue with ParticleEffect properties editor when no asset is selected
  • Fix VS Code cpp include paths in generated project files
  • Fix compressing on Linux /Mac (when zip package is not installed)
  • Fix FlaxEngine.CSharp library file referencing
  • Fix Global SDF rasterization when loading scene
  • Fix incorrect skybox cubemap caching dirty interval
  • Fix overlapping VC++ and CSharp projects in Visual Studio solution
  • Fix custom json asset usage for game settings if loaded before game scripting module is loaded
  • Fix comparison operator on Array and BitArray
  • Fix threading issues with GPU buffers mapping
  • Fix default value in viewport options
  • Fix xcopy path on Windows in Flax.Build
  • Fix missing scripting and serialization extensions for SceneReference usage in scripts
  • Fix particle module initialization if it reuses graph from other module
  • Fix ribbon particles triangle indices ordering to prevent artifacts
  • Fix bug in DownloadMeshData to properly access data during Finished event
  • Fix editor values comparison in properties panel to match serializer rules
  • Fix Audio Settings not applying doppler factor on play mode start in Editor
  • Fix to ignore warning due to missing NDA consoles packages
  • Fix Up Direction default value for Character Controller
  • Fix using Center property on Character Controller
  • Fix GPU Limits to be clamped to the compile-time limits
  • Fix `Set Type button on UI Control to be centered
  • Fix sub-context menu child popup still being open when parent context menu gets focused again by the user
  • Fix missing virtual C++ function override in C# if the thunk points to vtable index at offset=0
  • Fix VisualStudioInstance.GetInstances() to be sorted from newest to oldest
  • Fix helper mouse button up event on drag drop end on Windows
  • Fix passing reference types back to the native code from scripting event
  • Fix assertion on thread double-free from registry
  • Fix invalid Math::RoundUpToPowerOf2
  • Fix issues when passing new unit tests with edge cases of scripting bindigns usage
  • Fix crash when returning bool value in overriden scripting method
  • Fix crash in SSAO when using very low render resolution
  • Fix crash when unboxing integer value type from managed callback via generated bindings
  • Fix crash when using material in PostFx global graphics settings (asset loaded before GPU init)
  • Fix crash on shutdown due to custom JsonAsset C++ instance
  • Fix crash on root motion extraction if source animation has no valid root node animated
  • Fix crash when unbinding from Delegate from other thread during invocation
  • Fix crash when shader cache file is empty
  • Fix crash in content storage crash due to file seek operation failure
  • Fix cash in input actions/axis lookups to due to use of StringView
  • Fix crash when copying empty span of data into DataContainer
  • Fix crash when presenting task which swap chain is not ready
  • Fix crash on exit due to remaining DefautlInstance objects

1.4.6334

1 year ago

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-4-6334/811

Changelog:

  • Add Dynamic Diffuse Global Illumination with real-time irradiance probes
  • Add JobSystem.Execute utility for quick jobs running
  • Add Global Sign Distance Field rendering
  • Add Distance to box/point for Bounding Box
  • Add LineHitBox to Collisions.hlsl
  • Add flip presentation mode and tearing support to D3D11
  • Add MeshAccelerationStructure utility for robust triangles geometry queries
  • Add more utilities for using Matrix3x3
  • Add IsSingleFrame to RenderView for thumbnails/pre-render views drawing without temporal effects and LOD transitions
  • Add DynamicStructuredBuffer and DynamicTypesBuffer utilities
  • Add automatic group panels hiding if all properties are hidden by VisibleIf rule
  • Add utilities for Model SDF generation (on import, in editor window, or batch for all models on a scene)
  • Add Sample Global SDF node to materials and particles
  • Add Collision (Global SDF) particle module
  • Add Conform to Global SDF module to GPU particles
  • Add Position (Global SDF) module to GPU particles
  • Add utility Copy option for various labels in assets editors
  • Add ISceneRenderingListener for using scene information in the renderer cache
  • Add utility to editor CodeDocs for tooltips from C# types and members
  • Add CustomBuffers for injecting custom state into RenderBuffers
  • Add support for implicit casting from Quaternion to other types in shaders
  • Add Rotate Vector node to Visject Surface graphs
  • Add Screen Space Reflections for transparent materials
  • Add Array Add Unique node to Visual Scripting
  • Add support for sampling Scene Color in transparent materials (forward pass)
  • Add keyboard key navigation to Content View based on items name first character
  • Add JsonAsset.Instance for C# asset object
  • Add Delegate::BindUnique
  • Add Dictionaries to Visual Scripting
  • Add support for array of Visual Script objects
  • Add support for constexpr fields in Scripting API
  • Add World Triplanar Texture node to materials
  • Add playback speed option for Scene Animation rendering
  • Add Smoothstep and Step material nodes
  • Add preserving existing value of the Visual Script parameter when changing its type
  • Add View Size node for GUI materials
  • Add additive scene opening in Editor via drag&drop into Scene Tree window
  • Add Custom Global Code node to materials for injecting custom code, includes or constants
  • Add loopCount to PlaySlotAnimation for looping slot animation
  • Add Color.FromRGBA
  • Add confirmation dialog for Scenes Data building in Editor toolbar (prevent misclicks)
  • Add cursor clipping (for RTS, MOBA games)
  • Add Double2, Double3, Double4 to C# scripting API
  • Add Large Worlds support for 64-bit world coordinates (enable UseLargeWorlds in custom engine build)
  • Add relative-to-camera rendering for large worlds
  • Add support for the latest Windows 11 SDK (22H2)
  • Add support for Physics Scene origin shifting
  • Add support for Double2/3/4 for native storage in Variant
  • Add custom floats formatting to prevent scientific notation
  • Add selectable Environment Probes resolution (in Graphics Settings or per-probe)
  • Add support for dispatching jobs within jobs in JobSystem
  • Add Transparent Lighting Modes for material with option to use non-directional shading
  • Add Global Illumination sampling option to transparent materials (eg. particles)
  • Add utility buttons to check/uncheck all Material Instance parameters overrides in Editor window
  • Add separate GBuffer view modes in Editor viewport widget
  • Add real-time environment probes support
  • Add support for baking env probes in cooked game
  • Add new trace mode to Screen Space Reflections for DDGI Scene tracing
  • Add showing model screen size in the Model Preview
  • Add editor camera speed up for gamepad right trigger
  • Add GamepadDPadX/GamepadDPadY input axes for gamepad DPad
  • Add Engine.FocusGameViewport to implement game menu with camera focus gather
  • Add HTML tags processing in Rich Text Box
  • Add HtmlParser to engine utilities (with unit tests for it)
  • Add option to disable text clipping in text boxes
  • Add option to disable selecting text in text box
  • Add utility for parsing Color from text (hex or named color)
  • Add Content.GetEditorAssetPath
  • Add EditorPlugin.DeinitializeEditor to properly cleanup Editor extensions on exit
  • Add support for generic types in Scripting API with Template flag
  • Add waiting for model to be loaded in SetMaterial
  • Add NavCrowd for navigation steering behaviors system for a group of agents
  • Add support for renaming GPU resources (development builds only)
  • Add new API_TYPEDEF metadata for Scripting API types instantiation (with Alias option)
  • Add FLAX_BUILD_BINDINGS define for Scripting API parser to be used if needed
  • Add various improvements for C# math library
  • Add Content Search window to searching Visual Scripts and other assets
  • Add Find references utility for graph parameters and methods
  • Add public events for Editor play mode flow
  • Add setting timer resolution to lowest possible value in all Windows systems
  • Add support for main view information in Surface materials during subpass rendering (eg. shadow depth)
  • Add support for font size and color in Header attribute
  • Add TypeReference attribute to actors/scripts searching utilities for easier type picking in Visual Script
  • Add support for setting C++ version for build module compilation
  • Add Nested Animations for compositing animation clips
  • Add new Noise library for C++/C#/VisualScript/HLSL utilities
  • Add Default auto-generated member to scripting structures and improve deserialization
  • Add UseAlpha to RenderBuffers for pass-though renderer with alpha channel
  • Add late initialization to Content Finder tool in Editor
  • Add support for virtual Prefab assets created from code
  • Add GPU Dispatch calls in GPU profiler draw calls collumn
  • Add batching undo actions for Surface editing to prevent undo actions spam during a single edit
  • Add missing pipeline barriers after Dispatch on Vulkan to prevent race conditions with UAVs
  • Add support for using mipmaps with 3D textures
  • Add support for in-built color constants in Visject (eg. red/blue/violet)
  • Add drawing RenderList if it was not batched/sorted
  • Add Actor::GetOrAddChild to C++
  • Add auto-selecting new item created in Content window
  • Add shader getter to IMaterial interface
  • Add shader reloading on header file edit for shaders with compilation errors
  • Add support for Volume textures to have residency changed as regular textures
  • Add events for streamable resources residency changes tracking
  • Optimize empty comments parsing in Scripting API
  • Optimize ProbesFilter shader
  • Expose IsDuringPlay property for actors and scripts to use in scripting
  • Improve StaticModel to register for Scene Rendering once the model has any LOD streamed-in
  • Improve initial name for static model collision data asset
  • Improve properties display (group all parameters from the same group together)
  • Improve JetBrains Rider installation detection
  • Improve Linux source code editor detection (Rider and VSCode)
  • Improve property names displayed in UI
  • Change search boxes in Editor to stick to the top of the panel
  • Update to .Net Framework 4.5.2
  • Update DirectXShaderCompiler to version 1.7 (July 2022)
  • Move Actor.DestroyChildren to C++
  • Remove disabling temporal reprojection from Volumetric Fog
  • Remove FlaxException
  • Remove warning on missing initial entry state for Anim Graph state machine
  • Refactor model Import Options to display only relevant properties for asset Type
  • Refactor PhysicsActor into Rigidbody (use IPhysicsActor interface manually)
  • Refactor HashSet to support custom allocator
  • Refactor API_INJECT_CPP_CODE into API_INJECT_CODE to support code injection in other languages
  • Refactor Visject reroute node to support reconnecting and have more usability
  • Refactor scene objects initialization to call OnAwake before all OnStart
  • Refactor engine to support double-precision vectors
  • Refactor OrientedBoundingBox to use Transform for transformation instead of Matrix (for large worlds)
  • Refactor FlaxTests to run as Editor with all engine services initialized
  • Format engine codebase with ReSharper
  • Fix Lightmap UVs Source not working in model import options
  • Fix for macOS dylib path
  • Fix text box not consuming key down event causing editor shortcuts to activate when typing
  • Fix preserving Alpha channel when changing color with Value slider
  • Fix Android build with NDK 25
  • Fix editor options startup to not log error on a missing file
  • Fix for faster models exporting
  • Fix opening and editing animation with missing Anim Events
  • Fix Vector2 equality comparison
  • Fix sampling Curves with keyframes that have negative time value
  • Fix displaying multiple structure parameters in Visject Surface parameters panel
  • Fix opening material or particle emitter in editor if shader compilation fails
  • Fix picking to properly select closest triangle for meshes
  • Fix Directional Light color alpha in Sky atmosphere color
  • Fix CSM split point when using 3 cascades
  • Fix TextureBrush to return valid size if texture is not yet loaded
  • Fix editor viewport capturing mouse if window is not foreground
  • Fix looping streamable audio clips with multiple chunks
  • Fix enum operators to be constexpr
  • Fix game ticking in editor during cut-scene rendering at edit time
  • Fix Ctrl+S in timeline view to not split the camera shot media
  • Fix debug name for DirectX resources
  • Fix Surface parameter attributes editor popup location
  • Fix Constant Buffer binding on D3D12 when using Graphics after Compute pass with the same constants
  • Fix the Depth Of Field to be consistent no matter the resolution
  • Fix borders sampling in Depth Of Field to reduce leaking artifacts on screen edges
  • Fix editor error when selecting foliage type
  • Fix FlaxStorage refs counting to be atomic
  • Fix pasting/duplicating nodes in Visject to call spawn event
  • Fix error when loading surface from not yet loaded asset
  • Fix drag&drop into Scene Tree if move goes over valid drop target first
  • Fix wrong timestamps in C# profiler events
  • Fix copy pasting multi-line text into a single-line textbox
  • Fix removing Gameplay Globals
  • Fix Multi Blend 2D node if all blend points are on the same line
  • Fix selecting Debug Log window entries with the left-mouse button
  • Fix errors in Editor when editing particle emitter if effect that uses it is selected
  • Fix missing Properties window focus after adding script to the actor
  • Fix ParticleEmitter.Spawn() with default duration
  • Fix [AssetReference(typeof(typeName)] not working for arrays of assets (fix for collection types)
  • Fix PhysX crashes due to lazy actors adding by adding PhysX actors to the scene immediately
  • Fix foreach loop in Visual Script to continue flow on null array or dictionary
  • Fix default value in Dot and Distance graph nodes
  • Fix editing LinearCurve<Color> in properties window (color picker window closed keyframe editing popup)
  • Fix using null array of dictionary in Visual Script for init
  • Fix invoking anim events for multi-blend animations
  • Fix mouse hovering controls under expanded dropdown list panel
  • Fix Spline::GetSplineLength freeze
  • Fix Editor Analytics tracking option file SetupStyle
  • Fix duplicated actors after reparenting actor in Prefab
  • Fix Reroute node in Visual Script impulse flow
  • Fix Editor play mode exit bug after closing maximized Game window
  • Fix using preprocessor define values in Flax.Build bindings parsing
  • Fix processing else and elif preprocessor blocks in Flax.Build bindings parser
  • Fix parsing comments for Scripting API types that are templates
  • Fix snapping object to the group in Editor to skip trigger volumes
  • Fix error when double-clicking empty RichTextBox
  • Fix minor issue with Visual Script set parameter node calling flow during debugger value evaluation
  • Fix uploading volume texture data to GPU in D3D12
  • Fix shader source code encoding error on a compilation error
  • Fix font rendering and alignment with custom DPI scales
  • Fix Dictionary::Remove return value if empty
  • Fix error in Forward Shader Feature when rendering directional light shadow map
  • Fix ParticleEffectEditor issues after emitter editing if selected
  • Fix UsedSRsMask/UsedUAsMask when binding arrays to the shader
  • Fix normal map when importing materials for model files
  • Fix sorting items in various contextual list popups in Editor
  • Fix InstanceOrigin, PerInstanceRandom and LODDitherFactor to not use interpolation between shader stages
  • Fix Multiply (and similar) nodes result value in Visject if the first input is disconnected
  • Fix highlighting the first error/warning from the Output Log message text
  • Fix opening particle emitter editor window if shader compilation fails
  • Fix invalid Rigidbody bounds if it has no shapes attached
  • Fix crash if D3D device gets DXGI_ERROR_DEVICE_REMOVED during init
  • Fix crash with Vulkan when using Blur Panel in Screen Space canvas
  • Fix crash on macOS due to Vulkan timestamp queries error
  • Fix crash due to GPU Particles define not used in some headers
  • Fix crash when setting up recursive Material Instances inheritance
  • Fix crash when changing actor scene
  • Fix crash on opening skeleton mask window
  • Fix crash in scripting init if current localization is null
  • Fix crash on API event in C# after Editor hot-reload
  • Fix crash on Linux with empty log message
  • Fix crash when spawning prefab without scenes loaded
  • Fix crash when loading empty json for Variant structure data

1.3.6228

2 years ago

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-3-6228/643

Changelog:

  • Add macOS support for Game and Editor
  • Add improvements for joints editing with debug shapes
  • Add D6 Joint motions editing in Editor properties panel
  • Add Gordon Ramsay quote to Editor Splash Screen (very important feature)
  • Add support for interfaces in Scripting API (cross-language support C++/C#/VS)
  • Add preserving timeline position when zooming with a mouse wheel
  • Add scrolling timeline horizontally with Shift+Wheel
  • Add timeline view panning with right-mouse button even over keyframes editor or curve editor
  • Add resizing feature to timeline curve tracks
  • Add shared rectangle selection for all timeline tracks to select keyframes
  • Add shared selected keyframes moving ability for timeline tracks
  • Add copy/paste feature to keyframes and curves editors
  • Add keyframes editor to proxy keyframes from subtracks on object track
  • Add epsilon clamping for keyframes adding in timeline
  • Add live-preview option for editing scene animation
  • Add timeline tracks duplicating option
  • Add timeline tracks sorting option
  • Add timeline keyframes selection via timeline background
  • Add support for changing target actor for scene animation actor track
  • Add support for multiple media events on audio, postfx and camera tracks in Scene Animations
  • Add curve/keyframes select or copy all keyframes option
  • Add timeline undo actions batching
  • Add option to delete media from Timeline
  • Add C++ lambda support for Function<> and Delegate<>
  • Add option to compile C#-only scripts on Linux when cooking for Windows
  • Add option Select actors using this asset to content menu
  • Add ContentItem.OnContextMenu
  • Add option to make AssetPicker a read-only
  • Add explicit operator for Color32 to Int4
  • Add Level::ScriptsReloaded event
  • Add CollisionMeshesPrefix option to import collision data from model asset
  • Add additional UploadMipMapAsync for GPUTexture update with custom row/slice pitch
  • Add ClearUA to GPUContext to clear texture with float values
  • Add Content.GetAllAssets to get all asset ids in project
  • Add setter to Control.Center
  • Add missing memory profiler events to Unix platforms
  • Add Ragdoll support and ragdolls generation utility to Animated Model context menu
  • Add missing support for some formats in TextureTool
  • Add bc7enc16 encored for BC7 texture compression on Linux
  • Add Platform.Users to handle users per-platform
  • Add minor tweaks to math types
  • Add Joint.SetJointLocation for easier joints setup
  • Add Joint.SetJointOrientation utility
  • Add physics colliders selecting in PhysicsColliders debug view
  • Add Animation Slot node for playing animations from code in Anim Graph
  • Add EnableAutoAnchor to Joint for automatic target anchor setup
  • Add Quaternion::FromDirection to C++
  • Add bitangent vectors debugging to Model preview
  • Add Finished event to MeshDataCache
  • Add SoftAssetReference type
  • Add Ragdoll example to Physics Sample project
  • Add PS5 platform support (unofficial)
  • Add error code logging to navmesh tiles adding issues
  • Add double-click to edit timeline media properties
  • Add assets loading progress to Editor status bar
  • Add Vulkan pipeline cache serialization
  • Add Animation Events
  • Add json serialization utils for objects to save/load from raw bytes
  • Add ScriptingObject::NewObject utility for scripting objects spawning in C++
  • Add Loading text info for particle system and animation timelines
  • Add timeline media selection and editing to be global in sync with keyframes editors
  • Add Level::ScriptsReloadRegisterObject for easier scripting objects refreshing during hot-reload in code
  • Add tire wheel tire friction scale parameter for Wheeled Vehicle
  • Add easier game or plugin settings asset usage with SettingsBase
  • Add GameCooker events for game files deploy and packaging
  • Add StringAnsi serialization
  • Add support for custom settings asset creation
  • Add Online system with online backends for Steam, Xbox Live and PlayStation Network and Switch
  • Add improvements for objects spawning and snapping in Editor to include object bounds
  • Add decals spawning in editor for drag&drop
  • Add option to throw exception in build tool process utility
  • Add support for overriding Anim Graph output for Animated Model
  • Add support for passing the object reference as scripting function output result
  • Add ToString for some packed vector types
  • Add timeline media Start time editing in properties popup in seconds if using this view mode
  • Add option to disable timeline Media resizing by the user
  • Add SuppressFaceRemapTable option for collision cooking
  • Add CollisionData.GetModelTriangle to retrieve source geometry triangle index from the raycast hit info
  • Add FaceIndex to RayCastHit
  • Add support for PrefabObject tracks and automated animation instancing with UsePrefabObjects enabled
  • Add Mathf.Frac to C# api
  • Add support for Visual Studio 2022
  • Add assertions to String index operator to prevent invalid memory access
  • Add soft failing to NetworkPeer creation and INetworkDriver initialization
  • Add NetworkDriver object pointer to NetworkConfig to be used as custom interface implementation
  • Add support for compiling and running engine without C# scripting
  • Add setter for ResidentMipLevels on GPU Texture for C# scripting
  • Add support for parsing negation in scripting api preprocessor
  • Add ScriptingTypeHandle::IsSubclassOf
  • Add automatic preserving of basic joint properties when converting between types in Editor
  • Add DotNet targets building
  • Add tests running on Github Action as CI
  • Add Vulkan to automated Github CD builds
  • Add macOS to automated daily master builds on Github
  • Add option to automatically generate mips for textures created from code
  • Add GetPixels and SetPixels to TextureBase for easier textures data editing
  • Add arrows navigation for Visject surface nodes
  • Add Hidden attribute to scripting fields/properties/methods/events
  • Add keyboard navigation for ItemsListContextMenu (used by pickers in Editor)
  • Add option to export a single localized string table to .pot file
  • Add notification text to Editor status bar after saving to improve user awareness
  • Add option to export a single localized string table to .pot file
  • Add FallbackTable for localized strings table to redirect missing texts into other language
  • Add support for older Android devices that don't support R11G11B10 texture format
  • Add features flags for Custom Editors presentation
  • Add gamepad camera control for editor viewports
  • Add Rectangle.Distance for distance between rectangle and a point
  • Add NodesConnected and NodesDisconnected events to Visject surface API
  • Add OnParamEdited callback to Visject surface parameters API
  • Add Visual Script parameter access editing (public or private)
  • Add option to change Visual Script parameter type
  • Add Arrays to Visual Scripting
  • Add better support for Arrays in Variant for C# Scripting
  • Add Array constant node to Visual Script and Anim Graph
  • Add support for exporting pdb files for D3D12 shaders if debug data is enabled
  • Add C++ scripting API docs to online Flax Docs
  • Add scripting enums as ScriptingType
  • Add ScriptingEnum utility with useful features for C++ scripting
  • Add Variant to string for Enums to use scripting enum items names
  • Add support for array initializers as default values for scripting fields
  • Add automatic Setup when added patches to empty Terrain
  • Add UI navigation system
  • Add Tab navigation for Editor UI
  • Add F11 shortcut to maximize Game window during play-mode in Editor
  • Add preserving selection of the created new folder in the Content window
  • Add ability to create an Actor by dragging it to an empty space in the Actor hierarchy window
  • Add drag&drop to prefab hierarchy panel for easier usage
  • Add F2 shortcut for renaming item in files import dialog
  • Add Split Objects object to split imported meshes/animations into separate assets
  • Add batching the same function inputs in Anim Graph for better usability
  • Add implicit casting to single types from vector types in Variant
  • Add particle emitter and anim graph functions docs
  • Add localization quality improvements
  • Add DefaultFallbackLanguage to the localization settings
  • Add split-view for C++/C# code snippets in documentation
  • Add support for passing back value via reference to C# scripting event
  • Add context menu and tooltip to asset items in Content Finder tool
  • Add constructor to Function for lambda
  • Add Code Docs module for Editor tooltips
  • Add managed assembly xml docs parsing for tooltips in Editor
  • Add doc tooltips for actor types in Toolbox windows
  • Add tooltips to actors in scene tree and to properties General panel header
  • Add support to Dictionary for movable value types with no copy constructors
  • Add Math::SinCos
  • Add profile events for Editor modules events and startup
  • Add overload of Task::StartNew() to support member functions that return void
  • Add option for drawing audio clip preview with time offset
  • Add improved Android NDK detection and prevent exception
  • Add margin to TilesPanel tile
  • Add ScrollBarsSize to Panel
  • Add ScriptingTypeHandle::IsAssignableFrom
  • Add JsonAsset::GetInstance<T> for easier access to C++ json asset data
  • Add Render2D::DrawTexturedTriangles variations with vertex colors
  • Add Shift for range-based selection in curve and timeline editors
  • Add double-precision vectors (Double2, Double3 and Double4)
  • Add Orientation option to Content Window
  • Add DebugDraw.DrawCone and DebugDraw.DrawWireCone
  • Add DebugDraw.DrawArc and DebugDraw.DrawWireArc
  • Add ScriptingObject::ToInterface and ScriptingObject::FromInterface
  • Add context menu for group panels in properties editor for resetting values
  • Add value auto-select when focusing or clicking on input field in Editor
  • Add check to prevent inheriting from static or sealed class in scripting
  • Add showing Visject context menu group when it's title has a filter match
  • Add GDK platform support (potential for Windows support via GDK, base for Xbox consoles)
  • Add more options for MicrosoftGame.config
  • Add missing flaxengine api tags
  • Add filesystem watcher implement for Linux
  • Add PROFILE_CPU_ASSET for asset related profiler scoped zone
  • Add TryGetToolchain to build platform
  • Add Utilities::CountBits
  • Add more profiler events and naming for particles/animations jobs events
  • Add logging content database init start time
  • Add clamping for AA and shadows quality to prevent crashes on invalid usage
  • Add LOD Preview debug view mode
  • Add Material Complexity debug view model
  • Add GPUContext.ClearUA for buffer and texture with uint format
  • Add deploying FlaxEditor.pdb for Development configuration to improve crash reporting
  • Add Quad Overdraw debug view mode
  • Add profiler events to shader compiler
  • Add support for using DEPRECATED to mark scripting API as obsolete
  • Add PRAGMA_DISABLE_DEPRECATION_WARNINGS and PRAGMA_ENABLE_DEPRECATION_WARNINGS macros to C++
  • Add copy/paste for group panel with multiple custom editors nested inside
  • Add support for pasting hex color values into Color properties in Editor
  • Add Vector::Angle functions to C++
  • Add ManagedBinaryModule::FindModule utility for C# type class lookup
  • Add improvements for native interfaces usage
  • Add support for creating C# scripting object inheriting directly from FlaxEngine.Object
  • Add Gamepad support for Linux
  • Add LinuxProcess that supports workingDir, env vars and logging
  • Add inlined current thread id on Linux and Android
  • Add helper parent actor of missing object logging to HandleObjectDeserializationError
  • Add caching ShowGUI and ShowDebugDraw in Game window
  • Add CookCollision to collision data with triangles as int32
  • Add support for uint as triangle indices for mesh updates API
  • Add Double-precision Math library
  • Add Show in explorer to output log context menu
  • Add typename to script panel tooltip and don't inherit tooltip
  • Add LookingAt to Actor
  • Add native unit tests running
  • Update Xbox Scarlett and Xbox One support to ver GDK 2021.04 QFE5
  • Optimize FindObject and TryFindObject in Object
  • Optimize calling Object.FindObject from C#
  • Optimize single undo edit action to not use wrapper
  • Optimize Content Finder popup
  • Optimize timeline background rendering when zoom is very high
  • Optimize audio preview rendering when zoom is very high
  • Optimize ThreadLocal by removing size check
  • Optimize utilities in AnimationUtils
  • Optimize String::ReserveSpace if length doesn't change
  • Optimize CPU particles impl parts
  • Optimize Asset::onAssetLoaded if even is unused
  • Optimize atomic and interlocked memory operations on Win32 (Windows and Xbox) by inlining
  • Optimize StringView comparison operators
  • Optimize Anim Graph state machine transition rule evaluation to happen before state evaluation for early rejection
  • Optimize PhysicsColliders mode rendering in Editor
  • Optimize vertex buffer writing in Debug Draw
  • Optimize physics shapes debug drawing for large scenes by using culling for colliders
  • Optimize Math.NearEqual
  • Optimize UI in Editor
  • Optimize file copy on Linux
  • Optimize Vector3 method to be inlined more often
  • Optimize model data access during models importing
  • Optimize Toolbox tooltips for scripting types to be resolved when needed
  • Optimize FlaxEngine.CSharp.dll size by 300kB after tooltips removal (xml doc will be used)
  • Optimize C# bindings in Engine code to static functions that native ABI matches managed signature
  • Adjust curve and keyframes UI to be easier to use with a mouse
  • Adjust curve background drawing for timeline
  • Improve rigidbody warning message
  • Increase default UAV slots limit to 4
  • Disable compression for lightmaps on Linux (due to low-quality alpha encoding)
  • Change Content loading threads count to depend on logical cores count instead of physical (set limit to 12)
  • Change NUnit to use custom build from repo instead of nuget package
  • Refactor Rigidbody automatic mass calculation to include physical material Density
  • Refactor Control autofocus to be handled by control type instead of as part of base.OnMouseDown
  • Refactor SoftObjectReference to improve usage of it
  • Refactor Timeline UI to use track flags
  • Refactor GetChildByPrefabObjectId/GetScriptByPrefabObjectId from Actor to be private
  • Refactor native core objects to simplify usage for newcomers (PersistentScriptingObject is now ``ScriptingObject`)
  • Refactor Xbox One platform support via GDK instead of UWP
  • Refactor default D6JointMotion for D6Joint to Locked
  • Refactor UAV slots binding when rendering from PS into UAV
  • Refactor DownloadIndexBuffer to return unsigned data
  • Refactor prefab instances loading to improve refs loading between prefab objects
  • Refactor ContextMenuChildMenu to inherit from ContextMenuButton
  • Reenable memory allocations profiling in Editor with Tracy
  • Remove insecure autoInitialize option from scenes loading
  • Fixes for SIMD.h
  • Fixes for compilation on Windows for x86
  • Fix missing references to a new prefab objects inside other prefab objects when applying changes
  • Fix various bugs in string functions
  • Fix null values handling in C# Json serialization
  • Fix invalid uses of StringView::GetText() where a null-terminated string was expected
  • Fix crash with nested scene animation playback
  • Fix for env probes baking in Editor
  • Fix connector node creation in Visject on double-click over node
  • Fix regression for actor properties diff or default value reverting in Editor
  • Fix importing materials from fbx files
  • Fix joints properties ranges validation
  • Fix D6Joint serialization
  • Fix crash when physics scene with only inactive vehicles
  • Fix Tracy profiler client allocating memory by using OnDemand mode
  • Fix restriction if using I as prefix for interface names
  • Fix shadow null character in Flax.Build console command
  • Fix default code editor detection in Editor to favor VSCode and Rider over system-default
  • Fix bounding box size setter
  • Fix automatic properties serialization bug
  • Fix imported blend shape offsets from FBX file with multiple materials per-mesh
  • Fix issue with Physics Layers filters being ignored for two controllers colliding
  • Fix capturing stack trace from user native assemblies on Windows
  • Fix typos and wording in readme
  • Fix Editor crash when dragging material over CSG brush Surface
  • Fix code quality issues detected by PVS-Studio
  • Fix shader parsing error due to unknown macro used on shader function visibility condition
  • Fix resizing textures with alpha on import to preserve transparent colors (instead of black)
  • Fix blend shape dirty vertices range
  • Fix structure initialization with default field value if attribute has different value HasInvalidPathChar
  • Fix CollisionsHelper::ClosestPointPointTriangle (C++ version)
  • Fix depth pitch in UpdateTexture on D3D11 for volume textures
  • Fix potential exception in PluginManager dispose in Editor
  • Fix DPI calculation on Linux for multiple screens
  • Fix MoveFile on Linux
  • Fix drag&drop on Linux with file that has spaces in a path
  • Fix crash on Linux if the requested font cannot be found for message boxes
  • Fix some engine API to be exposed for C++ scripting
  • Fix rare crashes with debug draw in Game Window
  • Fix undo modifications notify from nested SyncPointEditor
  • Fix exporting app icons during game cooking without graphics backend
  • Fix compressed textures exporting with resizing on non-Windows platforms
  • Fix missing include for Xbox Live services on GDK platforms
  • Fix passing Span<byte> to C# method thunk in generated bindings code
  • Fix game cooker platform selector layout on small window
  • Fix Gameplay Global usage in material with material instance error
  • Fix conditional variables usage on broadcast by using a shared mutex
  • Fix module libraries linking in modular build mode
  • Fix Game Cooker cache when materials or particles or shaders format gets changed
  • Fix loading project reference with relative path in the Editor
  • Fix TargetViewOffset from textboxes to be hidden
  • Fix shader function visibility parsing and add USE_EDITOR define to material shaders
  • Fix Visject surface context menu to focus property the selected item
  • Fix for localization dashboard
  • Fix spot lights rendering on D3D12
  • Fix missing Particle Position (world space) node for CPU particles
  • Fix C# bindings for Editor for Window build on Linux
  • Fix Windows Snap with borderless windows
  • Fix missing object linkage when loading missing prefab objects during scene load
  • Fix incorrect transformation on imported blend shapes data from fbx file
  • Fix tree node navigation with key arrows to be more usable for deep hierarchies
  • Fix depth of field blur artifacts on upper and left screen edges
  • Fix audio playback issues in some cases with XAudio backend
  • Fix audio volume and stereo on XAudio backend
  • Fix showing tooltips for tree nodes in Editor
  • Fix navmesh update when adding/removing navmesh bounds volume
  • Fix engine ticking to catch up faster when falling behind
  • Fix HSV value adjusting in Color picker to not exceed 1
  • Fix import transform for skinned models
  • Fix missing root motion preview in Animation preview panels (with option to disable it)
  • Fix Multi Blend 1D/2D root motion extraction with blending
  • Fix build tool freeze when parsing scripting header that contains invalid multi-line comment
  • Fix missing blend shape data transformation on model data import
  • Fix color trackball usage with undo
  • Fix passing pointers as output pointer or reference in scripting api
  • Fix missing blend shape refresh for Skinned Model window preview
  • Fix various issues with Multi Blend 2D node
  • Fix prefab changes apply crash
  • Fix GUI material preview positioning in the Material window
  • Fix reference to a pointer in TypeInfo for scripting bindings generation
  • Fix invalid memory write in StringUtils::ConvertANSI2UTF16 on Unix if length is empty
  • Fix using object reference in Scripting API with PersistentScriptingObject
  • Fix per-instance vertex colors uploading if data is already valid
  • Fix RunProcess on Linux with custom working directory
  • Fix scene animation warning due to missing object to be fired once per-track without a spam
  • Fix support for codeless game projects
  • Fix snapping rigidbodies to the floor
  • Fix removing keys in Dictionary with string keys
  • Fix one error when pasting Visject nodes with type modified compared to archetype
  • Fix custom actor options for prefab window
  • Fix generated DefaultValue attribute to match the field value type
  • Fix possible division by zero in Plane.Normalize
  • Fix entering play mode in Editor with pause mode on start
  • Fix Input::GetGamepadAxis with InputGamepadIndex::All
  • Fix missing AnimatedModel pose access if it's not initialized yet
  • Fix error when using over 180 angle for joint limits
  • Fix mesh tangent and bitangent vectors generation with OpenFBX backend by using MikkTSpace
  • Fix missing copy destination offset in dynamic buffer update on D3D11
  • Fix Visject param node getter breaking connection on param change to the same type
  • Fix Get/Set field node in Visual Script to update Instance box accordingly for static fields
  • Fix monolithic target build with native code module used by referenced plugin
  • Fix possible division by zero in BoundingFrustum::GetCorners
  • Fix mouse focus issue with Timeline background
  • Fix DefaultValue attribute support in Custom Editors for unsigned integers
  • Fix editor undo for unsigned integer types
  • Fix texture refs in platform settings to be SoftObjectReferences instead of raw Guid
  • Fix crash when creating C# object for native object at the same time on multiple threads
  • Fix crash when applying prefab that includes both removed and added objects
  • Fix crash when streaming texture with unsupported format by the GPU driver
  • Fix crash when reading from RingBuffer if it's full
  • Fix crash when changing mesh collider in async for not-simulated actor
  • Fix crash if texture streaming fails on different texture format on Vulkan due to fallback usage
  • Fix crash when spawning managed object on a detached native thread
  • Fix crash when trying to read invalid Visual Script parameter from local scope during debugging
  • Fix crash when model or skinned model loading fails
  • Fix crash on Vulkan swapchain resize if the previous size was 0 (eg. due to window animation on Windows 11)
  • Fix crash when passing function with lambda to the Job System
  • Fix crash on thread end that used Mono runtime
  • Fix crash with terrain in prefab window
  • Fix crash on native type in JsonAsset due to scripting hot-reload in Editor

1.2.6224

2 years ago

Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-2-6224/449

Changelog:

  • Add Engine.HasGameViewportFocus to C# API
  • Add SuspensionForceOffset to vehicle wheel config
  • Add check to prevent double-free from native event in C#
  • Add option to select scene asset from Scene tree window
  • Add option to Scene context menu to unload it
  • Add support for changing scenes via Editor during play mode
  • Add better timeline UI positioning for improved viewport navigation
  • Add helper tooltips for Scene Animation actions UI
  • Add Zoom value box to timeline view context menu
  • Add timeline view panning with right mouse button
  • Add options for vehicle wheel suspension configuration and state
  • Add digital steering option for a vehicle
  • Add vehicle telemetry logging debug option
  • Add wheeled vehicle tire options
  • Add -new command line arg to create a new project
  • Increase fog properties limits
  • Increase default maximum window width limit to 8k
  • Optimize ticking disabled vehicles
  • Refactor Tracy source locations to be static
  • Fix decal material normal vector blending
  • Fix issue with MapTrack for actors
  • Fix actor renaming on paste to keep previous name if can
  • Fix car wheel location by applying compression of the suspension spring
  • Fix WheeledVehicle driving and suspension raycasts
  • Fix suspension force offset location
  • Fix pasting actors if cannot spawn a object (eg. type missing) to still paste valid objects
  • Fix rare crashes due to selection not being empty on play mode start
  • Fix some memory leaks
  • Fix ENet driver crash
  • Fix invalid navmesh build for triggers
  • Fix invalid rigidbody center of mass location
  • Fix materials parameters display issues after editing
  • Fix context menu keyboard arrows navigation to skip disabled items
  • Fix UI with list of null items when layout gets rebuilt at item level
  • Fix some problems with LocalizedString serialization in C#
  • Fix timeline background stops drawing to be more readable
  • Fix snap to the ground to use scene graph query instead of physics only raycast
  • Fix window focus issue when removing actors