Releases: FlaxEngine/FlaxEngine
Update 1.8.6512.2
Blog post: https://flaxengine.com/blog/flax-1-8-2-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-6512-2/1738
Changelog:
- Add watermark attribute to add watermark to string fields in editor
- Add removing selected blend space point with
Delete
key - Add margin to item tree in toolbox
- Add shift scroll for panels and textbox
- Add control transform to
General
group for better usability - Add trimming content item name and actor name on rename to prevent dangling whitespace
- Add drag drop controls to Actor Toolbox
- Add font and case options to Label and Textbox
- Add color properties to Panel's scroll bars
- Add width padding for tooltip text
- Add tree node guidelines for Editor hierarchies
- Add checkerboard background to color picker dialog color
- Add support for adding script via drag drop on actor
- Add minor improvements to UI Editor widget drawing
- Add better error messages to
NetworkReplicator::SetObjectOwnership
for incorrect usage - Add layer masking for
PostFxVolume
against Camera'sRenderLayersMask
- Add
OnStaticFlagsChanged
to Actor - Add Gameplay Global combobox to default to the last type of variable
- Add
For Distribution
to be enabled by default inRelease
builds - Add Windows on Arm build support for PhysX and NvCloth libs
- Add test case of nested types in scripting
- Add option to move all selected UI Controls while holding
Shift
key - Optimize navmesh building and reduce scene lock time
- Rename
Options
toEditor Options
and move underEdit
menu - Refactor
Color.FromRGBA
and add matching old logicColor.FromARGB
- Fix looping root motion
- Fix error when using undo after removing Multi Blend node
- Fix odd offset between 1st property and property label
- Fix empty layers to be ignored by LayerMask Editor
- Fix TreeNode not rendering all nodes properly with invisible children
- Fix editor to focus prefab window on item spawn
- Fix textbox caret not showing on empty string
- Fix caret location on text box with no text
- Fix drawing an extra character with
Render2D.DrawText
- Fix actor type drag spawn to correctly assign parent
- Fix editor game window focus while cursor is not visible
- Fix smooth step visject node width
- Fix color picker dialog
- Fix item search to clear on select prefab
- Fix incorrect
async
methods used as RPCs (not supported now) - Fix
ReadOnly
attribute handling in collection editors - Fix UI navigation when using multiple canvases
- Fix TAA in editors debug view modes
- Fix compilation warnings when using 64-bit coords
- Fix compilation when using non-strongly typed enum as default value
- Fix Editor not launching if custom interface fonts are missing
- Fix creating virtual terrain collision of actor that is not in a game
- Fix missing camera model preview in Prefab viewport
- Fix missing curve initialization when loading from json
- Fix windows cursor to force show or hide based on cursor hidden value
- Fix bindings code generation for nested types
- Fix deadlock between content storage and asset that is being updated during load
- Fix crash when using scripting object as interface implementation in object property displayed in Editor
- Fix crash when unboxing of array type Variant
- Fix crash when Visual Script event binding instance is invalid
Update 1.8.6511.1
Blog post: https://flaxengine.com/blog/flax-1-8-1-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-6511-1/1709/2
Changelog:
- Add support for importing
.exr
textures - Add logging and cleaning up leaked scene objects after play mode in Editor
- Add trading minor optimizations in MSVC Development builds for compile speed
- Add automatic restoring Anim Event tracks when reimporting animation asset
- Add
ShowDebugDrawSkeleton
to preview Animated Model skeleton via Debug Draw - Add toggle orthographic view hotkey (
Numpad Decimal
) - Add locking actor selection in properties and prefab windows
- Add displaying all actors in Actor toolbox search tab when no filter is applied
- Add better anim events visuals in timeline editor
- Add sorting search actor toolbox
- Add
Tags.Find
utility - Add statically disabled tessellation on macOS/iOS
- Add statically disabled geometry shaders on mobile
- Add CPU profiler events for UI drawing
- Add setter for crword agent position and velocity
- Add option for using Address and Thread sanitizers
- Add hiding TAA settings if TAA isn't enabled
- Add
Time.Synchronize
to stabilize engine loop - Add
Engine::UpdateCount
to sync gameplay logic updates with game loop rather than draw frames - Add improved size of Multi Blend nodes
- Add undo for Multi Blend points moving
- Add context menu to Multi Blend node points
- Add tooltips to Multi Blend points
- Add
Ctrl
to snap points to grid in Multi Blend editor - Add improved visuals of points in Multi Blend
- Add grid labels drawing to Multi Blend
- Add live debugging of blend position in Multi Blend
- Add add/remove buttons to Multi Blend
- Add better
const
correctness inMesh
andSkinnedMesh
api - Add
Write
/Read
methods toNetworkStream
forINetworkSerializable
sending in C# api - Add more useful orientation settings to Android
- Add exported property to activity element in
AndroidManifest.xml
template - Add basic Android version settings to editor
- Optimize
DrawBatch
for faster sorting - Optimize draw calls sorting in opaque passes
- Optimize TreeNode rendering
- Optimize ActorTreeNode reparent when it's not collapsed but one of the parents is
- Optimize Anim Graph node size and remove limit of max
64
state transitions - Refactor engine loop to have better sync between game update, physics and drawing
- Refactor
UpdateGraph
to run after engine services and game scripts - Refactor Visject Graph nodes data for unlimited size
- Refactor Multi Blend nodes to support up to
255
blend points - Update
DirectXTex
tomar2024
- Change default collision type to
ConvexMesh
fromTriangleMesh
- Fix default diffuse color value when importing material
- Fix Editor viewport aspect ratio scaling to be removed from camera mouse movement
- Fix numpad enter to normal enter on Linux
- Fix Two Bone IK to have correct bone roll
- Fix blend shapes transformation applying
- Fix blend shapes normals usage
- Fix blending nested animations to properly handle it per-node
- Fix nested animations sampling
- Fix animated model skinning precision issues
- Fix errors on using spline editor in Prefab window
- Fix error when applying prefab changes with Spline
- Fix deselecting actors when using camera orbiting in viewport after releasing LMB when Alt is up
- Fix text underline being in wrong spot on different DPIs
- Fix particle emitter creation from templates
- Fix various bugs in code detected with address/thread sanitizers
- Fix
EyeAdaptation
bug to flash on play mode start in Editor when time gets reset - Fix heightfield not saved when editing splatmap of terrain with physical materials in use
- Fix editor toolstrip by moving game cooking and building to the right for less missclicks
- Fix panning Visject Surface with middle mouse button (right button does it) to prevent missed connections removals
- Fix Debug Log scrolling when many entries are added at once
- Fix cloning value utility for object references
- Fix missing UI Control preview when changing UI Widget type
- Fix surface node context menu to not show when moving surface
- Fix margins issues in context menus
- Fix
FindRandomPointAroundCircle
to always find a valid point on a NavMesh in the radius - Fix NavMesh to initialize earlier and prevent issues with crowd agents on a scene
- Fix .NET runtime validity checks with daily runtime builds
- Fix
CachedAttributeGetter
holding references to collectible types - Fix to release Prefab assets when unloading Scripting service
- Fix freeze when selecting ModelPrefab referencing a removed asset
- Fix terrain heightmap to use higher range format when decompressed
- Fix bug in
ValueContainer.HasDifferentTypes
causing incorrect editor setup - Fix model tool importing to use temp file only for Assimp
- Fix deadlock when parsing invalid HTML text in
RichTextBox
- Fix crash on prefab preview with lightmap in use
- Fix crash when accessing physics objects state in
OnLateFixedUpdate
- Fix crash when resizing window on Vulkan
- Fix crash when removing Anim Event visual script that is used in opened Animation timeline
- Fix crash when using old
Blend with Mask
node in Anim Graph - Fix crash when playing uninitialized audio source
- Fix crash when reimporting animation with translation set
Update 1.8.6510
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
UIControl
Actor - Add RayCast utility to UI controls
- Add
MinCount
andMaxCount
toCollection
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
toRayCastHit
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
andDrawRay
withRay
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 toLevel::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
andInputEvent
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 useMatrix3x3
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 .NET8.0.1
- Refactor win32 exe icon updating
- Refactor
ThreadLocal
when running on hardware with more cores thanPLATFORM_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 utilizeJsonAssetReference
struct - Refactor 3D audio implementation in XAudio2 backend to match OpenAL
- Refactor Visject Surface attributes data storage to use
JsonSerializer
instead of deprecatedBinaryFormatter
- Refactor engine systems to use platform time seconds rather than date time
- Remove unused
SaveTime
/LoadTime
fromScene
- Remove unused 'PixelFormatExtensions::ComputeScanlineCount'
- Rename
Navigation.ProjectPoint
intoNavigation.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 inval...
Update 1.7.6407.2
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
toVector2
/Vector4
- Add
Where
,Select
andRemoveAll
toArrayExtensions
- Add
SloppyOptimization
disabledby default and lower defaultLOD 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
tov0.20
- Optimize time service update math code
- Remove old warnings about invalid model instance buffer
- Replace
ImportedModelData
withModelData
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 explicitlySceneObject
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
filesas-is
if 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
Update 1.7.6406.1
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
andDictionary
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 withinSceneRenderTask
- 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
andFindBetween
utilities to C#Quaternion
API - Add
GetSplineSegmentLength
to get spline segment length - Add new material nodes:
Rectangle Mask
,FWidth
, andAA 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 toFontAsset
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
andIsDebuggerPresent
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 toFlax.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
andTransform
- Reduce
LargeWorlds::ChunkSize
to8192
- Refactor
GPUResourceProperty
to cleanup code - Refactor main editor viewport and prefab viewport to share dragging handling code
- Refactor default
ContactOffset
forCollider
to be2
(keep10
forCharacterController
) - Refactor
HashSet
andDictionary
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 of8
- 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 inbuiltVariant
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 of4000
instead of just100
- 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 reading
BehaviorKnowledgeSelector
value in C# when type doesn't match exactly
Update 1.7.6404
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
toModelInstanceActor
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
toCustomEditorPresenter
- Add
Variant::AsStructure()
to comparision operator betweenVariantType
andScriptingTypeHandle
- 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 toSpan
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
andRenderView
toCamera
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
forVector2
andVector3
- Add
BaseLinesGapScale
configurable forLabel
- Add improved mouse wheel scrolling behavior in UI
- Add handling double clicking in
CheckBox
,Button
,Dropdown
andDropPanel
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
andAxisChanged
event toInputAxis
- Add
SelectionChanged
public event forVisjectSurface
and properly invoke it only when selection actually changes - Add ignoring types with
CompilerGeneratedAttribute
in Editor - Add
ScriptingType
to msvc natvis - Add
GetColliders
utility toRigidBody
- Add allow using
CustomValueContainer
as readonly if setter action isnull
- 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
asObject.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 toAPI_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 toButton
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
andOrigin
toProgressBar
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
andInputAxis
editors with pickers - Add
InputEvent
forUICanvas
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 cal...
Update 1.6.6344
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 newUtilities::UnitsToText
- Add
LineCast
andLineCastAll
to physics scripting - Add default new script name to
MyScript
and avoid namign it asScript
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
byuint32 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
- U...
Update 1.5.6339
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
andBC7
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
withTag
- 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
Update 1.5.6338
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
andRun cooked game
utilities toGame
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
toBuildSettings
- Add
ViewFlags::Sky
for conditional sky/skybox rendering - Add
DefaultValue
support for scripting parameters - Add
AfterGBufferPass
andAfterForwardPass
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
andTags
for new tags system - Add
FindActor
/FindActors
withTag
toLevel
- Add
Tag
toPhysicalMaterial
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
toAPI_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
toFlax.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 asSystem.Type
- Add
WriteStructure
/ReadStructure
utilities forNetworkMessage
- 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
toFlax.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
andForceRebindDescriptors
toGPUContext
for integration with external rendering libraries - Add support for
CanRender
in postFx to depend on specific render setup - Add
GetNativePtr
toGPUAdapter
- Add changing mouse cursor to ibeam when editing text box
- Add
IsAnyButtonDown
utility toMouse
andGamepad
- Add
Normalized
toFloat2
andVector2
- 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
toBlurPanel
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
andKeyUp
events toTextBoxBase
- 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
intoGetText
inStringView
- Refactor raw data
ReadSttream
andWriteStream
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 const...
Update 1.4.6334
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
toCollisions.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
toRenderView
for thumbnails/pre-render views drawing without temporal effects and LOD transitions - Add
DynamicStructuredBuffer
andDynamicTypesBuffer
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 intoRenderBuffers
- 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
toPlaySlotAnimation
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 (withAlias
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
toRenderBuffers
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
intoRigidbody
(useIPhysicsActor
interface manually) - Refactor
HashSet
to support custom allocator - Refactor
API_INJECT_CPP_CODE
intoAPI_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 allOnStart
- Refactor engine to support double-precision vectors
- Refactor
OrientedBoundingBox
to useTransform
for transformation instead ofMatrix
(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...