def make_eval_env(all_args): def get_env_fn(rank): def init_env(): if all_args.env_name == "HideAndSeek" or all_args.env_name == "BlueprintConstruction" or all_args.env_name == "BoxLocking": env = HNSEnv(all_args) else: print("Can not support the " + all_args.env_name + "environment.") raise NotImplementedError env.seed(all_args.seed * 50000 + rank * 10000) return env return init_env if all_args.n_eval_rollout_threads == 1: return ChooseDummyVecEnv([get_env_fn(0)]) else: return ChooseSubprocVecEnv( [get_env_fn(i) for i in range(all_args.n_eval_rollout_threads)])
def make_train_env(all_args): def get_env_fn(rank): def init_env(): if all_args.env_name == "Hanabi": assert all_args.num_agents > 1 and all_args.num_agents < 6, ( "num_agents can be only between 2-5.") env = HanabiEnv(all_args, (all_args.seed + rank * 1000)) else: print("Can not support the " + all_args.env_name + "environment.") raise NotImplementedError env.seed(all_args.seed + rank * 1000) return env return init_env if all_args.n_rollout_threads == 1: return ChooseDummyVecEnv([get_env_fn(0)]) else: return ChooseSubprocVecEnv([get_env_fn(i) for i in range(all_args.n_rollout_threads)])