GoBigger 环境

总览

本节主要说明了 GoBigger 的环境设计,其中包括给定好的环境的定义,以及如何自定义生成对应的环境。

已经定义好的环境

GoBigger 定义了一些基础环境,可以通过下面的代码生成这些基础环境

from gobigger.envs import create_env
env = create_env('st_t4p3')

其中,create_env() 接收的第一个参数是一个字符串,是我们已经定义好的环境的名称。类似的,除了 st_t4p3 以外,我们还有 st_t2p2st_t3p2 可供选择。下面详细介绍一下各个环境的区别。

  1. st_t4p3: 创建了一个有四支队伍,每支队伍三个玩家的游戏场景。这是我们定义的标准游戏场景,包括其中的各种球的刷新速度等参数都已经调节至一个比较健壮的水平。用户可以使用这个环境来解决一些复杂空间场景下的合作和对抗问题。

  2. st_t2p2: 考虑到 st_t4p3 可能过于庞大,因此我们提供了一个更小的游戏场景。在这个场景内,只有两支队伍,每支队伍两个玩家。同样,地图尺寸,食物球和荆棘球的数量也受到了相应的削减。此外,为了缩减玩家前期发育的时间,我们在 st_t2p2 将玩家第一次出生时的分数设置成了 13000 来使得玩家可以快速进行对抗,而这个值在 st_t4p3 中是 1000。

  3. st_t3p2: 这是一个间于 st_t2p2st_t4p3 的中等环境,有三支队伍,每支队伍两个玩家。和 st_t2p2 一样,也设置了较高的出生分数来减少发育时间。

此外,上述环境默认都是每两帧做一个动作(一秒20帧)。如果想要更长的动作间隔,可以通过下面代码设置:

from gobigger.envs import create_env
env = create_env('st_t4p3', step_mul=10)

此外,我们还有更多已经定义好的环境,如下:

Name

Agents Size

Map Size

Food

Thorn

Init Size

Limited Frame

Small Maps

st_t1p1

1x1

32x32

[65,75]

[1,2]

1000

3600(3min)

st_t1p2

1x2

48x48

[130,150]

[2,3]

1000

3600(3min)

st_t2p1

2x1

48x48

[130,150]

[2,3]

1000

3600(3min)

st_t2p2

2x2

64x64

[260,300]

[3,4]

13000

3600(3min)

st_t3p2

3x2

88x88

[500,560]

[5,6]

13000

3600(3min)

Large Maps

st_t4p3

4x3

128x128

[800,900]

[9,12]

1000

14400(12min)

st_t5p3

5x3

128x128

[900,1000]

[10,12]

1000

14400(12min)

st_t5p4

5x4

144x144

[900,1000]

[10,12]

1000

14400(12min)

st_t6p4

6x4

144x144

[1000,1100]

[11,13]

1000

14400(12min)

自定义生成对应的环境

GoBigger 丰富的配置文件设计使得用户可以很方便地设置游戏内的每一个细节。

如果想要在某个我们已经定义好的环境的基础上进行简单修改,例如在 st_t2p2 修改一局时长,可以如下:

from gobigger.envs import create_env
env = create_env('st_t2p2', dict(
    frame_limit=10*60*20,
))

这样,开启的新环境就会在 st_t2p2 的基础上变成了 10 分钟一局。