1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/opendilab-GoBigger

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Go-Bigger: Multi-Agent Decision Intelligence Environment

Текущая работа

  • 2021.11.13 Мы проводим соревнование — Go-Bigger: среда для принятия решений в мультиагентных системах. Присылайте своих агентов для участия в игре!

GoBigger — это простой и эффективный игровой движок, похожий на agar.io, который предоставляет различные интерфейсы для разработки игрового искусственного интеллекта. В GoBigger игроки управляют одним или несколькими круглыми шарами на карте. Цель игры — набрать как можно больше очков, поедая шары с едой и другие шары, которые меньше шаров игрока, избегая при этом более крупных шаров, которые могут съесть шары игрока. Каждый игрок начинает с одного шара, но игроки могут разделить шар на два, когда он достигает достаточного размера, что позволяет им управлять несколькими шарами.

Другие проекты OpenDILab

  • Система принятия решений на основе искусственного интеллекта

  • Традиционные академические среды и эталонные тесты

  • Реальные приложения искусственного интеллекта для принятия решений

    • DI-star: искусственный интеллект для принятия решений в StarCraftII
    • DI-drive: платформа для автоматического вождения
  • Общая библиотека вложенных данных

    • treevalue: древовидная структура данных
    • DI-treetensor: библиотека древовидных тензоров PyTorch
  • Документация и учебные пособия

  • Компоненты поддержки системы

    • DI-orchestrator: Kubernetes пользовательские ресурсы и операторная библиотека для RL
    • DI-hpc: библиотека операторов для высокопроизводительных вычислений RL
    • DI-store: объектное хранилище RL

Введение

В GoBigger пользователи могут легко взаимодействовать со средой с несколькими агентами в соответствии с основными правилами. Через предоставленный интерфейс пользователи могут просто получать наблюдения в игре и применять свои операции к своим агентам.

Основные правила

Чтобы понять правила игры, GoBigger предлагает несколько концепций:

  • Матч: GoBigger позволит нескольким агентам (по умолчанию 4) присоединиться к матчу. В матче есть много разных юнитов, таких как шары с едой, шипы, споры и шары игроков. Каждый агент должен набрать больше очков, съедая другие шары, чтобы получить более высокий ранг, когда этот матч закончится.
  • Агент: Каждый агент управляет командой, включающей несколько игроков (по умолчанию 3). Командная работа важна для агента, чтобы играть против других агентов.
  • Игрок: Каждый игрок начинает с одним шаром. Чтобы улучшить управляемость игры, GoBigger предоставляет несколько операций для шара игрока, включая split, eject и stop.
  • Шар: GoBigger предлагает 4 вида шаров в матче.
    • Шар с едой: шары с едой — это нейтральные ресурсы. ### Запуск игровой среды

После установки вы можете легко запустить свою игровую среду, следуя следующему коду:

import random
from gobigger.server import Server
from gobigger.render import EnvRender

server = Server()
render = EnvRender(server.map_width, server.map_height)
server.set_render(render)
server.start()
player_names = server.get_player_names_with_team()
# get [[team1_player1, team1_player2], [team2_player1, team2_player2], ...]
for i in range(10000):
    actions = {player_name: [random.uniform(-1, 1), random.uniform(-1, 1), -1] \
               for team in player_names for player_name in team}
    if not server.step(actions):
        global_state, screen_data_players = server.obs()
    else:
        print('finish game!')
        break
server.close()

Мы также создаём простую среду, следуя gym.Env. Для получения более подробной информации вы можете обратиться к gobigger_env.py.

Взаимодействие с игрой в реальном времени

GoBigger позволяет пользователям играть в игру на своём персональном компьютере в режиме реального времени. Поддерживается несколько режимов для изучения этой игры.

Одиночный игрок

Если вы хотите играть в режиме реального времени на своём ПК самостоятельно, вы можете запустить игру со следующим кодом:

python -m gobigger.bin.play --player-num 1 --vision-type full

В этом режиме стрелки вверх, вниз, влево и вправо позволяют вашим шарам двигаться, Q означает выброс споры в вашем направлении движения, W означает разделение ваших шаров, а E означает остановку всех ваших шаров и сбор их вместе.

Два игрока

Если вы хотите сыграть в режиме реального времени на вашем ПК с друзьями, вы можете запустить игру со следующим кодом:

python -m gobigger.bin.play --player-num 2 --vision-type full

В этом режиме игрок 1 использует стрелки вверх, вниз, влево и вправо, чтобы шары двигались, [означает выброс споры в направлении вашего движения, ] означает разделение шаров, а \ означает остановку всех шаров и их сбор. Игрок 2 использует клавиши W, S, A и D, чтобы шары двигались, 1 означает выброс споры в вашем направлении, 2 означает разделение шаров, а 3 означает остановку всех шаров и их сбор.

Один игрок с частичным видением

Если вы хотите поиграть в режиме реального времени на своем ПК только с частичным зрением, вы можете запустить игру с помощью следующего кода:

python -m gobigger.bin.play --player-num 1 --vision-type partial

Ваше зрение зависит от положения и размера всех ваших шаров.

Один игрок против ботов

Если вы хотите сразиться с ботом, вы можете запустить игру следующим образом:

python -m gobigger.bin.play --vs-bot

Вы также можете добавить больше ботов в свою игру. Попробуйте выиграть игру с большим количеством ботов!

python -m gobigger.bin.play --vs-bot --team-num 4

Тестирование ботов с визуализацией

Если вы хотите протестировать агента без участия человека, вы можете запустить игру следующим образом:

python -m gobigger.bin.play --bot-only --player-num 3 --team-num 1

Вы также можете протестировать своего собственного агента с аргументом --agent-class:

python -m gobigger.bin.play --bot-only --player-num 3 --team-num 4 --agent-class submit.bot_submission:BotSubmission

Помните, что класс вашего агента должен реализовывать методы __init__(self, team_name, player_names) и get_actions(self, obs) -> action.

Высокоуровневые операции в GoBigger

Выброс в сторону центра

Окружение других путём разделения

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ОупэнДИЛаб Мульти-Агент Энвиронмент. Развернуть Свернуть
Python
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/opendilab-GoBigger.git
git@api.gitlife.ru:oschina-mirror/opendilab-GoBigger.git
oschina-mirror
opendilab-GoBigger
opendilab-GoBigger
main