Include a fix in UWorldPartitionBuilder for IterativeCellOverlapSize not being applied to loaded bounds
#rb Yoan.StAmant
#jira UE-114032
#preflight 6155ce81549cbf0001d01f52
#ROBOMERGE-AUTHOR: aris.theophanidis
#ROBOMERGE-SOURCE: CL 17679211 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)
[CL 17679261 by aris theophanidis in ue5-release-engine-test branch]
LIMITATIONS:
1) Re-instancing will only update UClass instance data.
2) Adding and removing properties should only be done towards the end of a class or structure and can not be followed by complex data types.
3) Adding and removing properties from a base class should not be done if a derived class contains complex data types.
KNOWN ISSUES:
1) Changes to enumerations and structures will not be reflected in existing blueprints. However, adding new nodes to the blueprint will show the updated enumeration or structure.
2) If a class contains an enumeration or structure as a member, the class will not be re-instanced if enumeration or structure is changed.
CHANGES:
1) LiveCodingServer
1a) Modified to always execute certain static instances during load.
1b) Modified to exclude the _Statics static structures to avoid patching to old copies.
2) Added support for LiveCoding reinstancing
2a) Refactored deferred registration system for UClass, UEnum, and UScriptStruct to use a common system that works for normal game, hot reload and live coding.
2b) Type specific version check data is possible (i.e. enum doesn't have a size)
2c) Single registration static for UClass
2d) Single registration class for all types that is just a blind forward to API.
2e) Static and dynamic registrations use different API entry points to avoid having overloaded argument lists that just apply to one or the other.
2f) Shims for older API
3) New common "Reload" system to avoid using HotReload code.
3a) Support common delegates regardless of who is reloading/reinstancing.
3b) Re-instancing code moved from HotReload to Kismet2 (where the bulk of the re-instance code already existed).
3c) Modified PyWrapper to use new helper class instead of depending on HotRelaod
3d) Added WITH_RELOAD which is defined if HotReload or LiveCoding is enabled.
3e) Modifed existing code to use new #define and delegates.
Robert did the review on the changes covered by Part 2. Remaining changes are all straightforward.
#rb robert.manuszewski
#jira UE-74493
[CL 15736777 by Tim Smith in ue5-main branch]
Addition of ANavigationDataChunkActor, external actors used to hold navdata chunks
Addition of UWorldPartitionBuildNavigationDataCommandlet, commandlet to generate world partition navigation data
At the moment steps to generate a partitioned world with navmesh per cell are:
1) convert world to WP (WorldPartitionConvertCommandlet)
2) generate navigation data chunk actors (WorldPartitionBuildNavigationDataCommandlet)
3) pre cook (WorldPartitionPreCookCommandlet)
4) cook
#review @Yoan.StAmant
#rb Yoan.StAmant
[CL 14396364 by Aris Theophanidis in ue5-main branch]
[at]yoan.stamant [at]stephen.holmes
#rnx
#ROBOMERGE-SOURCE: CL 12486785 via CL 12486790 via CL 12486791 via CL 12486793
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)
[CL 12487596 by maxime mercier in Main branch]
- Added synchronization between the async pathfind queries task and the game thread. The sync point is implemented in OnWorldPostActorTick. This prevents pathfind requests from running at the same time as Navmesh generation tasks or beyond the engine frame boundary.
- Replaced task to broadcast async pathfinding results by a queue that will be flushed by the NavigationSystem udpate. This prevents tasks from being started during loading or other undesired locations.
- Replaced task to register new active path instance by a lock to make sure all paths are registered for potential invalidation before adding a generated tile on the main thread.
#jira UE-71960
#jira UE-85440
[at]aris.theophanidis [at]maxime.mercier
#rb aris.theophanidis maxime.mercier
#ROBOMERGE-SOURCE: CL 12368557 via CL 12368564
#ROBOMERGE-BOT: (v671-12333473)
[CL 12370954 by yoan stamant in Main branch]
[at]Yoan.StAmant [at]Mieszko.Zielinski [at]Maxime.Mercier [at]David.Hamm
#ROBOMERGE-SOURCE: CL 12126550 via CL 12132795
#ROBOMERGE-BOT: (v659-12123632)
[CL 12132919 by stephen holmes in Main branch]
The general idea here is to tick any non time sliced generators once per frame. Time sliced generators we aim to tick one per frame and move to the next, next frame.
In the case where one time sliced generator doesn't use the whole time slice we move to the next time sliced generator. That generator will only be considered to have a full frames processing if either it runs out of work or uses a large % of the time slice. Depending we either tick it again next frame or go to the next time sliced generator (next frame).
[at]Yoan.StAmant Aris [at]Aris.Theophanidis
#ROBOMERGE-SOURCE: CL 11628387 via CL 11628394
#ROBOMERGE-BOT: (v656-11643781)
[CL 11805238 by stephen holmes in Main branch]
+ added advanced property "DirtyAreaWarningSizeThreshold" in NavigationSystem to report warning logs when tiles larger than the specified threshold are pushed to the dirty queue.
+ error reporting is disabled as long as navigation lock is effective
+ centralized area validations and error reporting inside method FNavigationDirtyAreasController::AddArea and added new optional parameter to retrieve source object
[at]aris.theophanidis [at]maxime.mercier
#ROBOMERGE-SOURCE: CL 11587708 via CL 11587713 via CL 11588090
#ROBOMERGE-BOT: (v654-11333218)
[CL 11592197 by yoan stamant in Main branch]
The motivation is to provide a minimum of feedback when failing to register navigation data (ex: if navmesh settings do not fit the project navmesh settings) .
[REVIEW] [at]Yoan.StAmant [at]Mieszko.Zielinski
#ROBOMERGE-SOURCE: CL 11071719 via CL 11071722 via CL 11071725
#ROBOMERGE-BOT: (v637-11041722)
[CL 11071729 by aris theophanidis in Main branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
#ROBOMERGE-OWNER: matt.kuhlenschmidt
#ROBOMERGE-AUTHOR: matt.kuhlenschmidt
#ROBOMERGE-SOURCE: CL 9870262 via CL 9870265
#ROBOMERGE-BOT: (v548-9842178)
#rb chris.gagnon
[CL 9872761 by Matt Kuhlenschmidt in Main branch]
As part of the change I've also disabled climb link generation on Athena walls (still enabled in non-Athena games).
#rb Yoan.StAmant, Guillaume.Guay
#rnx
[at]Yoan.StAmant, [at]Stephen.Holmes
#ROBOMERGE-SOURCE: CL 9410194 via CL 9410196 via CL 9410200 via CL 9410201 via CL 9410206
#ROBOMERGE-BOT: (v456-9359915)
[CL 9410207 by mieszko zielinski in Main branch]