Class UAbstractGymConnector

class UAbstractGymConnector : public UObject, public IGymConnector

An abstract class for connectors between unreal and gym.

Subclassed by UExternalGymConnector

Public Functions

UAbstractGymConnector()

Constructor for the abstract gym connector.

virtual void Init(const FSharedTrainingDefinition &AgentDefinitions)

Initialize this gym connector, setting up services and sending agent definitions.

Note

This function should be implemented by a derived class

Parameters:

AgentDefinitions – – The definitions of the agents that will be trained

void Init()

Initialize this gym connector, collecting environments and training definitions.

Note

Calls the other Init function with the SharedTrainingDefinition

virtual void ResetCompletedEnvironments() override

Reset all the environments that have completed.

virtual void UpdateEnvironments(FTrainingStateUpdate &StateUpdate) override

Update the environments with the new state update.

Parameters:

StateUpdate[in] The new state update

virtual void CollectEnvironmentStates()

Collect all the environment states.

void SetStatus(EConnectorStatus NewStatus)

Set the status of the connector.

Parameters:

NewStatus[in] The new status of the connector

inline virtual void SubmitEnvironmentStates()

Submit environment states to the other end of the connector.

Note

This function should be implemented by a derived class

inline virtual FTrainingStateUpdate *ResolveEnvironmentStateUpdate()

Resolve the environment state update.

Useful for connections that operate off of futures, or otherwise require synchronization.

Note

This function should be implemented by a derived class

Returns:

The resolved environment state update

inline virtual void SubmitPostResetState(const FTrainingState &States)

Submit the initial state of the environment after a reset to the other end of the connector.

Note

This function should be implemented by a derived class

Parameters:

States[in] The states to submit

void UpdateConnectorStatus(const FTrainingStateUpdate &StateUpdate)

Update the connector status based on a state update.

Parameters:

StateUpdate[in] The state update to base the new status on

void UpdateConnectorStatus()

Update the connector status based on the last state update.

inline virtual void Enable()

Enable the connector.

Useful for multistage setup as it is called after init.

Note

This function should be implemented by a derived class

inline virtual bool CheckForStart()

Check if the connector is ready to start.

Note

This function should be implemented by a derived class

Returns:

True if the connector is ready to start

inline virtual FTrainingStateUpdate *GetCurrentStateUpdate()

Get the latest state update.

Returns:

The last state update

inline bool IsRunning()

Get if the connector is running.

Returns:

True iff the connector is running

inline bool IsNotStarted()

Get if the connector is closed.

Returns:

True iff the connector is closed

virtual void CollectEnvironments() override

Collect all the EnvironmentManagers in the simulation.

void RegisterEnvironment(AAbstractScholaEnvironment *Env)

Register an environment with the subsystem so that it can be controlled by the subsytem.

Parameters:

Env[in] A ptr to the environment to be registered.

Public Members

FTrainingStateUpdate *CurrentStateUpdate

The current state update from the environments.

FConnectorStartedDelegate OnConnectorStarted

Delegate for when the connector starts.

FConnectorClosedDelegate OnConnectorClosed

Delegate for when the connector closes.

FConnectorErrorDelegate OnConnectorError

Delegate for when the connector encounters an error.

EConnectorStatus Status = EConnectorStatus::Running

The status of the connector.

TArray<AAbstractScholaEnvironment*> Environments = TArray<AAbstractScholaEnvironment*>()

The environments that are currently being trained.

FTrainingState SharedTrainingState = FTrainingState()

The states of the environments that are currently being trained.

FSharedTrainingDefinition SharedTrainingDefinition = FSharedTrainingDefinition()

The shared training definition for the environments that will be trained.

Related pages

  • Visit the Schola product page for download links and more information.

Looking for more documentation on GPUOpen?

AMD GPUOpen software blogs

Our handy software release blogs will help you make good use of our tools, SDKs, and effects, as well as sharing the latest features with new releases.

GPUOpen Manuals

Don’t miss our manual documentation! And if slide decks are what you’re after, you’ll find 100+ of our finest presentations here.

AMD GPUOpen Performance Guides

The home of great performance and optimization advice for AMD RDNA™ 2 GPUs, AMD Ryzen™ CPUs, and so much more.

Getting started: AMD GPUOpen software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on GPUOpen!

AMD GPUOpen Getting Started Development and Performance

Looking for tips on getting started with developing and/or optimizing your game, whether on AMD hardware or generally? We’ve got you covered!

AMD GPUOpen Technical blogs

Browse our technical blogs, and find valuable advice on developing with AMD hardware, ray tracing, Vulkan®, DirectX®, Unreal Engine, and lots more.

Find out more about our software!

AMD GPUOpen Effects - AMD FidelityFX technologies

Create wonder. No black boxes. Meet the AMD FidelityFX SDK!

AMD GPUOpen Samples

Browse all our useful samples. Perfect for when you’re needing to get started, want to integrate one of our libraries, and much more.

AMD GPUOpen developer SDKs

Discover what our SDK technologies can offer you. Query hardware or software, manage memory, create rendering applications or machine learning, and much more!

AMD GPUOpen Developer Tools

Analyze, Optimize, Profile, Benchmark. We provide you with the developer tools you need to make sure your game is the best it can be!