Skip to content

schola.core.env.ScholaEnv

Class Definition

class schola.core.env.ScholaEnv(
unreal_connection,
verbosity=0,
environment_start_timeout=45
)

Bases: object

A Gym-Like Environment that wraps a connection to the Unreal Engine, running the Schola Plugin for Unreal.

Raises:

Parameters

unreal_connection

Type: UnrealConnection The connection to the Unreal Engine.

verbosity

Type: int
Default: 0
The verbosity level for the environment.

environment_start_timeout

Type: int
Default: 45
The time to wait for the environment to start in seconds.

Attributes

unreal_connection

Type: UnrealConnection The connection to the Unreal Engine.

gym_stub

Type: gym_grpc.GymServiceStub
The gRPC stub for the Gym Service.

ids

Type: List[List[int]]
A nested list of all the environments and their active agents.

agent_display_names

Type: List[Dict[int, str]]
A list of mappings from the id to the display names for each agent in each environment.

obs_defns

Type: Dict[int, Dict[int, DictSpace]]
The observation space definitions for each agent in each environment.

action_defns

Type: Dict[int, Dict[int, DictSpace]]
The action space definitions for each agent in each environment.

steps

Type: int
The number of steps taken in the current episode of the environment.

next_action

Type: Dict[int, Dict[int, Any]], optional
The next action to be taken by each agent in each environment.

Properties

num_agents

Type: int (property)
Return the total number of agents in the environment.

Returns: The total number of agents.

Return type: int

num_envs

Type: int (property)
Return the number of environments.

Returns: The number of environments.

Return type: int

Methods

__init__

__init__(unreal_connection, verbosity=0, environment_start_timeout=45)

Parameters:

  • unreal_connection (UnrealConnection)
  • verbosity (int)
  • environment_start_timeout (int)

close

close()

Closes the connection to the Unreal Engine and cleans up any resources. It is safe to call this method multiple times.

See also: gymnasium.Env.close – The equivalent operation in gymnasium

Return type: None

get_action_space

get_action_space(env_id, agent_id)

Get the action space for a specific environment and agent.

Parameters:

  • env_id (int) – The ID of the environment
  • agent_id (int) – The ID of the agent

Returns: The action space for the specified environment and agent.

Return type: DictSpace

get_obs_space

get_obs_space(env_id, agent_id)

Get the observation space for a specific environment and agent.

Parameters:

  • env_id (int) – The ID of the environment
  • agent_id (int) – The ID of the agent

Returns: The observation space for the specified environment and agent.

Return type: DictSpace

hard_reset

hard_reset(env_ids=None, seeds=None, options=None)

Perform a hard reset on the environment.

Parameters:

  • env_ids (Optional[List[int]]) – A list of environment IDs to reset. If None, all environments will be reset. Default is None.
  • seeds (Union[None, List[int], int]) – The seeds to use for random number generation. If an int is provided, it will be used as the seed for all environments. If a list of ints is provided, each environment will be assigned a seed from the list. Default is None.
  • options (Union[List[Dict[str, str]], Dict[str, str], None]) – The options to set for each environment. If a list of dictionaries is provided, each environment will be assigned the corresponding dictionary of options. If a single dictionary is provided, all environments will be assigned the same options. Default is None.

Returns: A list of environment IDs that were reset.

Return type: List

Raises:

  • AssertionError – If the number of seeds provided, is not zero or one, and does not match the number of environments
  • AssertionError – If the number of options dictionaries provided, is not zero or one, does not match the number of environments

See also: gymnasium.Env.reset – The equivalent operation in gymnasium

poll

poll()

Polls the environment for the current state.

Returns:

  • observations (EnvAgentIdDict[Dict[str,Any]]) – A dictionary, keyed by the environment and agent Id, containing the observations for each agent
  • rewards (EnvAgentIdDict[float]) – A dictionary, keyed by the environment and agent Id, containing the reward for each agent
  • terminateds (EnvAgentIdDict[bool]) – A dictionary, keyed by the environment and agent Id, containing the termination flag for each agent
  • truncateds (EnvAgentIdDict[bool]) – A dictionary, keyed by the environment and agent Id, containing the truncation flag for each agent
  • infos (EnvAgentIdDict[Dict[str,str]]) – A dictionary, keyed by the environment and agent Id, containing the information dictionary for each agent

Return type: Tuple[Dict[int, Dict[int, Dict[str, Any]]], Dict[int, Dict[int, float]], Dict[int, Dict[int, bool]], Dict[int, Dict[int, bool]], Dict[int, Dict[int, Dict[str, str]]]]

send_actions

send_actions(action)

Send Actions to all agents and environments.

Parameters:

  • action (EnvAgentIdDict[Dict[str,Any]]) – A dictionary, keyed by the environment and agent Id, containing the actions for all active environments and agents

Return type: None

See also: poll – Where the actions are actually sent to unreal

soft_reset

soft_reset(ids=None)

Soft reset the environment, by waiting for Unreal to self reset and send a Post Reset State to python.

Parameters:

  • ids (List[str], optional) – A list of environment IDs to reset. If not provided or set to None, all environment IDs will be reset

Returns:

  • observations (EnvAgentIdDict[Dict[str,Any]]) – A dictionary, keyed by the environment and agent Id, containing the observations of the agents in the environments immediately following a reset
  • infos (EnvAgentIdDict[Dict[str,str]]) – A dictionary, keyed by the environment and agent Id, containing the infos of the agents in the environment

Return type: Tuple[Dict[int, Dict[int, Dict[str, Any]]], Dict[int, Dict[int, Dict[str, str]]]]