使用pysc2的环境并与其进行交互
作为应用于强化学习的SCII环境是被定义在 pysc2.env.sc2_env
中的,(action 和 observation 空间是定义在 pysc2.lib.features
中的),环境的类即 SC2Env
,继承自 pysc2.env.environment.Base
类。可以作为使用一般的gym库的强化学习的环境一样使用它。
要实例化并使用一个 SC2Env
,需要传入几个重要的参数,完整的参数列表如下:
_only_use_kwargs=None,
map_name=None,
battle_net_map=False,
players=None,
agent_interface_format=None,
discount=1.,
discount_zero_after_timeout=False,
visualize=False,
step_mul=None,
realtime=False,
save_replay_episodes=0,
replay_dir=None,
replay_prefix=None,
game_steps_per_episode=None,
score_index=None,
score_multiplier=None,
random_seed=None,
disable_fog=False,
ensure_available_actions=True,
version=None
重要的参数说明
一些重要的参数说明如下:
map_name
:地图的名称,一个字符串- 地图名均列在了
pysc2.bin.map_list
中,可以使用如下的命令来列出所有的地图名称:python -m pysc2.bin.map_list
- 或者可以在 pysc2/maps/ 下的文件夹中查找,比如 pysc2/maps/melee.py 中定义了所有 Melee 的地图名称:
melee_maps = ["Flat32", "Flat48", "Flat64", "Flat96", "Flat128", "Simple64", "Simple96", "Simple128",]
- 地图名均列在了
players
:传入一个list,list中是一个或两个pysc2.env.sc2_env.Agent
或pysc2.env.sc2_env.Bot
的实例,目前只支持一个或者两个,一个就是单 Agent 与环境交互,两个就是互相对战,有些地图只能传入一个。注意,就是使用一个Agent