Hey!đź‘‹ ubyte.dev just recently launched. It's dedicated towards Unreal Engine 5.

Warning: Undefined array key "page" in /home/u831815985/domains/ubyte.dev/public_html/wp-content/plugins/code-snippets/php/snippet-ops.php(582) : eval()'d code on line 24
Portions of the materials used are trademarks and/or copyrighted works of Epic Games, Inc. All rights reserved by Epic. This material is not official and is not endorsed by Epic.
Documentation
Unreal Engine 5.0

Unreal Engine 5.0

title placeholder

About

While this framework doesn’t necessarily mandate a certain implementation pattern, it’s still written with a strong preconceived philosophy of how things (pure virtual functions) should be dealt with internally. That’s separately included inside a section labeled 'Recommended'.

IGenericWorldActivityWorker embodies a high-level world activity executor, who owns and manipulates a pool of IGenericCrowdActivityWorkers.

Each IGenericWorldActivityWorkercan begin a FWorldActivity, which represent a high-level event that can occur in a level.

Recommended

The goal of IGenericWorldActivityWorker is to operate from a highly leveraged point of view.

To achieve that, it relinquishes awareness about the actual tangible state of the level (where individual agents are, environment queries, etc.), and bases its entire world view from state-indicating (gameplay) occurrences each Crowd Activity worker explicitly broadcasts or notifies its owner.

World Activity Workers can then calculate their next move, and make a decision (based on the strategy it itself follows).

See WorkerGameplayUpshot (plugin) and WorkerActivityStrategy (included by default).

The logic IGenericWorldActivityWorker executes should compliments its relative responsibility down the world-crowd-agent chain by solely being focused on how each FWorldActivity is rolled out, without dwelling inside a specific Crowd or Agent Activity implementation.

IGenericWorldActivityWorker does not understand how each FCrowdActivity is carried out. Likewise, 
IGenericCrowdActivityWorker does not understand how each FAgentActivity is carried out.

WorldActivityCognition

Each IGenericWorldActivityWorker has its own Scoped/Persistent WorldActivityCognition tags, which are just GameplayTags mapped to the "WorldActivityCognition" base category.

Recommended

ubyte.dev endorses creating GameplayConcepts extending WorldActivityCognition that:

  1. Explicitly specify which problem they solve. Example: WorkerStrategyGameplayConcept (included by default) introduces a filtered variant of WorldActivityCognition called WorldActivityStrategy. This concept mandates that these tags always dynamically influence the underlying implementation of a WorldActivity (as its name implies).
  2. Explicitly manage their blueprint exposure. Example: WorkerStrategyGameplayConcept introduces BlueprintCallable methods for adding/removing WorldActivityStrategy tags. While this concept is pretty simple, any other concept might require additional encapsulation and/or properties before truly being exposed to the blueprint surface.

Blueprints should never be able to add/remove unencapsulated Cognition tags. It's only permitted through blueprint-exposed concepts that extend Cognition (e.g. Strategy).

cross linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram