GoBigger: 多智能体决策智能环境
GoBigger是一个高效直观的类Agar游戏引擎,为游戏AI开发提供了丰富的接口。作为一个多智能体决策智能环境,GoBigger在设计上特别关注了以下几个方面:
- 合作比单打独斗更有回报
- 小范围内容易爆发激烈竞争
- 可扩展性强,支持模拟不同规模的团队和智能体
- 丰富的动作空间和部分可观察的观察空间
- 可灵活配置不同类型的小游戏
基本规则
GoBigger中有几个基本概念:
-
Match: 一场比赛,多个智能体参与,包含食物球、刺球、孢子球和克隆球等多种单位。智能体通过吃掉其他球来获得更高的得分和排名。
-
Agent: 每个智能体控制一个团队,包含多个玩家。团队合作对于智能体取胜至关重要。
-
Player: 每个玩家初始拥有一个球。为了增加操作性,玩家球可以执行分裂(split)和弹射(eject)等操作。
-
Ball: 游戏中有4种球:
- 食物球: 中立资源,被玩家球吃掉后增加玩家球的大小
- 刺球: 被玩家球吃掉后会导致玩家球爆炸分裂
- 孢子球: 由玩家球弹射产生
- 克隆球: 玩家可控制的球,可以移动和吃掉比自己小的球
观察空间
GoBigger提供了丰富的可观察信息,观察空间分为全局状态和玩家状态两部分:
-
全局状态:包括地图大小、比赛总时间和剩余时间、排行榜等信息。
-
玩家状态:包括视野范围、视野内各类球的详细信息、所属团队、得分、是否可执行弹射和分裂操作等。
动作空间
球的基本动作包括:
- 移动:控制玩家球的移动方向
- 分裂:当球达到一定大小时可以分裂成两个
- 弹射:向移动方向弹射出孢子球
高级操作
GoBigger还支持一些高级操作,如:
- 向中心弹射:通过精准弹射实现快速移动
- 团队合作:多个球协同作战
- 分裂与合并:灵活运用分裂和合并来应对不同情况
- 分裂吃人:通过分裂快速吃掉对手
使用方法
GoBigger提供了简单的Python API,用户可以轻松创建环境、获取观察、执行动作等。例如:
import random
from gobigger.envs import create_env
env = create_env('st_t2p2')
obs = env.reset()
for i in range(1000):
actions = {0: [random.uniform(-1, 1), random.uniform(-1, 1), -1],
1: [random.uniform(-1, 1), random.uniform(-1, 1), -1],
2: [random.uniform(-1, 1), random.uniform(-1, 1), -1],
3: [random.uniform(-1, 1), random.uniform(-1, 1), -1]}
obs, rew, done, info = env.step(actions)
print('[{}] leaderboard={}'.format(i, obs[0]['leaderboard']))
if done:
print('finish game!')
break
env.close()
此外,GoBigger还支持实时人机交互模式,玩家可以通过鼠标控制球的移动,使用键盘进行弹射和分裂操作。
结语
GoBigger为多智能体决策智能研究提供了一个简单而富有挑战性的环境。它简单的规则下蕴含着复杂的策略空间,既考验智能体的个体决策能力,又需要团队的协作。研究者可以基于GoBigger开发各种算法,探索多智能体系统中的决策、协作与竞争问题。
希望GoBigger能为多智能体强化学习研究提供有力支持,推动相关技术的发展与应用。欢迎感兴趣的研究者和开发者加入GoBigger社区,共同探索多智能体决策智能的无限可能!