ICppOnlyMultiAgentEnvironment
Interface for StateTree-based multi-agent environments.
Pure C++ interface - methods are not exposed to Blueprint. Implement this in your environment class to create a StateTree RL environment. Each agent is identified by a unique string ID.
class ICppOnlyMultiAgentEnvironment : public IBaseScholaEnvironmentMethods
InitializeEnvironment
virtual void InitializeEnvironment( TMap<FString, FInteractionDefinition> &OutAgentDefinitions) = 0Initialize the environment and define all agents’ observation and action spaces.
Parameters
OutAgentDefinitions(TMap<FString, FInteractionDefinition>)
SeedEnvironment
virtual void SeedEnvironment(int Seed) = 0Set the random seed for reproducible environment behavior.
Parameters
Seed(int)
SetEnvironmentOptions
virtual void SetEnvironmentOptions(const TMap<FString, FString> &Options) = 0Configure the environment with custom options.
Parameters
Options(const TMap<FString, FString>)
Reset
virtual void Reset(TMap<FString, FInitialAgentState> &OutAgentState) = 0Reset the environment to its initial state for all agents.
Parameters
OutAgentState(TMap<FString, FInitialAgentState>)
Step
virtual void Step(const TMap<FString, FInstancedStruct> &InActions, TMap<FString, FAgentState> &OutAgentStates) = 0Execute one environment step with actions from all agents.
Parameters
-
InActions(const TMap<FString, FInstancedStruct>) -
OutAgentStates(TMap<FString, FAgentState>)
Execute_InitializeEnvironment
static inline void Execute_InitializeEnvironment( UObject *Obj, TMap<FString, FInteractionDefinition> &OutAgentDefinitions)Dispatches InitializeEnvironment to Obj if it implements ICppOnlyMultiAgentEnvironment.
Parameters
-
Obj(UObject) -
OutAgentDefinitions(TMap<FString, FInteractionDefinition>)
Execute_SeedEnvironment
static inline void Execute_SeedEnvironment(UObject *Obj, int Seed)Dispatches SeedEnvironment to Obj if it implements ICppOnlyMultiAgentEnvironment.
Parameters
-
Obj(UObject) -
Seed(int)
Execute_SetEnvironmentOptions
static inline voidExecute_SetEnvironmentOptions(UObject *Obj, const TMap<FString, FString> &Options)Dispatches SetEnvironmentOptions to Obj if it implements ICppOnlyMultiAgentEnvironment.
Parameters
-
Obj(UObject) -
Options(const TMap<FString, FString>)
Execute_Reset
static inline voidExecute_Reset(UObject *Obj, TMap<FString, FInitialAgentState> &OutAgentState)Dispatches Reset to Obj if it implements ICppOnlyMultiAgentEnvironment.
Parameters
-
Obj(UObject) -
OutAgentState(TMap<FString, FInitialAgentState>)
Execute_Step
static inline voidExecute_Step(UObject *Obj, const TMap<FString, TInstancedStruct<FPoint>> &InActions, TMap<FString, FAgentState> &OutAgentStates)Dispatches Step to Obj if it implements ICppOnlyMultiAgentEnvironment (type-erased action map).
Parameters
-
Obj(UObject) -
InActions(const TMap<FString, TInstancedStruct<FPoint>>) -
OutAgentStates(TMap<FString, FAgentState>)
Source: Source/ScholaTraining/Public/Environment/CppOnlyMultiAgentEnvironmentInterface.h