首页 > 编程语言 > 详细

openAI的仿真环境Gym Retro的Python API接口(续2)—— 有些过程记录及回放

时间:2021-09-13 18:14:43      阅读:35      评论:0      收藏:0      [点我收藏+]

如题,本文主要介绍仿真环境Gym Retro的Python API接口 。

 

官网地址:

https://retro.readthedocs.io/en/latest/python.html

 

 

本文环境配置:如何使用Python环境下的2D经典游戏仿真器(openai推出的)retro库运行游戏"刺猬索尼克" (SonicTheHedgehog-Genesis)

 

 

==============================================

 

 

游戏状态的记录,示例代码:

import retro

env = retro.make(game=Airstriker-Genesis, record=.)
env.reset()
while True:
    _obs, _rew, done, _info = env.step(env.action_space.sample())
    if done:
        break

 

运行后将游戏的过程保存为文件:Airstriker-Genesis-Level1-000000.bk2

技术分享图片

 

 

 

游戏过程的记录只需要在环境生成函数  retro.make  中指定 record 参数即可。

 

注意:

游戏过程文件只保存了游戏开始时的状态及过程中的所有按键,所以要对过程记录文件进行游戏回放的话我还是需要有相应的游戏ROM文件的。

 

 

 

 

 

 

 

游戏记录的回放,示例代码:

import retro

movie = retro.Movie(Airstriker-Genesis-Level1-000000.bk2)
movie.step()

env = retro.make(
    game=movie.get_game(),
    state=None,
    # bk2s can contain any button presses, so allow everything
    use_restricted_actions=retro.Actions.ALL,
    players=movie.players,
    obs_type=retro.Observations.IMAGE
)
env.initial_state = movie.get_state()
env.reset()

while movie.step():
    keys = []
    for p in range(movie.players):
        for i in range(env.num_buttons):
            keys.append(movie.get_key(i, p))

    env.render()
    observation, reward, done, info = env.step(keys)
    print(keys)
    print(observation)
    print(reward)
    print(done)
    print(info)

 

 

由前文可知,

use_restricted_actions=retro.Actions.ALL    代表动作为 MultiBinary 类型,因此执行的动作形式大致为:

[True, False, False, False, False, False, True, False, True, False, False, False]

这个类型的。

其中,代码:

    for p in range(movie.players):
        for i in range(env.num_buttons):
            keys.append(movie.get_key(i, p))

就是从记录文件中取出当前步骤中不同player的动作(MultiBinary 类型),该动作是分别判断MultiBinary 类型不同位置对应的动作(env.num_buttons)是否被选择,具体代码为:

movie.get_key(i, p)

 

openAI的仿真环境Gym Retro的Python API接口(续2)—— 有些过程记录及回放

原文:https://www.cnblogs.com/devilmaycry812839668/p/15259823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!