Introduction
On game it's sometime to have shape who can control tick speed on actor in this shape. Like a streaming system, object which are far for the player but visible don't need to tick as the same speed as actor near the player.
The idea is inspire by Sea of Thieve talk about managing the tick scale (https://www.unrealengine.com/en-US/events/unreal-fest-europe-2019/aggregating-ticks-to-manage-scale-in-sea-of-thieves)
Architecture
The Idea is to use a subsystem call TickGroupSubsystem which will manager the tick group system. A tick group system have shapes where ticking actor are inside. Depend on if player are inside or near theirs volume, tick group volume will have different tick interval.
When game start, Tick group volume get TickGroupSubsystem and register in it. If actor needs to be inside a TickGroupVolume, user have to add GSTickGroupClient. This component will register actor inside a volume
The Update Tick Group System
When player spawn, tick group system will detect on which Tick Group volume the player is in. The tickgroup volume will tick are full speed (0.0 tick interval) , for the demo surrounding will tick as lower frequency. Because on this demo it's for a linear game , we just take previous and next tick group of the player current tick group volume
Github : https://github.com/NicolasBunn/UE5TickGroup.git
Aucun commentaire:
Enregistrer un commentaire