Minecraft как сделать ботов

База знаний

Citizens — как создавать ботов на сервере Майнкрафт? (настройка мобов, жителей, NPC, охранников, торговцев и квестов)

⭐️ ПРИВЕТСТВУЕМ НА HOSTING-MINECRAFT.RU ⭐️

✔️ Мы запускаем серию из 4-х видео роликов по созданию ботов. После просмотра Вы узнаете:

1) как создавать и настраивать мобов;

2) как поставить личного охранника;

3) как запустить различные квесты;

4) как сделать торговцев.

А поможет нам в этом плагин — Citizens и его подплагины.

Инструкция по установке плагинов находится — ЗДЕСЬ.

❗️ ❗️ 1 ЧАСТЬ — КАК СОЗДАВАТЬ БОТОВ ❗️ ❗️

(основные принципы и команды)

✅ ПОДПИШИТЕСЬ НА НАШ YOUTUBE КАНАЛ ✅

Итак, поздравляем! Вы только что изучили фундамент, с которым мы будем дальше работать 🙂

❗️ ❗️ 2 ЧАСТЬ — КАК СОЗДАТЬ ТОРГОВЦА (БОТА-ТРЕЙДЕРА) ❗️ ❗️

Хотите сделать свою собственную лавку охотника, либо же открыть целый магазин с продавцами? Ребят, сделать это максимально просто 🙂 А помимо всего, Вы ещё сможете самостоятельно указывать необходимый товар к продаже и назначать за него цену!

✅ ПОДПИШИТЕСЬ НА НАШ YOUTUBE КАНАЛ ✅

❗️ ❗️ 3 ЧАСТЬ — КАК СОЗДАТЬ ОХРАННИКА НА СЕРВЕРЕ МАЙНКРАФТ ❗️ ❗️

(твоя надёжная защита)

Вот мы и подходим к наиболее интересному — враждующему мобу O_o

Помимо привата территории, для защиты дома рекомендуем выставить охранников, которые будут яростно атаковать нежелательных гостей! Получится своя мини-армия 😀

Включено огромное количество параметров: нападение на определённые группы игроков или на конкретных по никнейму.

✅ ПОДПИШИТЕСЬ НА НАШ YOUTUBE КАНАЛ ✅

❗️ ❗️ 4 ЧАСТЬ — КАК СОЗДАТЬ КВЕСТЫ НА СЕРВЕРЕ МАЙНКРАФТ ❗️ ❗️

Вы уже изучили хорошую порцию материала! Молодцы, надеемся у Вас всё получилось!

Теперь осталось собрать в единое целое полученные знания и объединить их. А всё для того, чтобы научиться делать прикольные квесты! Здесь полностью всё зависит от Вашей фантазии, выдумывайте крутые задачи для игроков и назначайте для них вознаграждения. Зарабатывайте очки и деньги, соревнуйтесь на время и много чего другого!

✅ ПОДПИШИТЕСЬ НА НАШ YOUTUBE КАНАЛ ✅

❗️ ❗️ КАК ЗАКАЗАТЬ СЕРВЕР МАЙНКРАФТ СМОТРИТЕЗДЕСЬ ❗️ ❗️

ПРОМО-КОД НА СКИДКУ 15%: ready-steady-go

Источник

/ mineflayer

🇺🇸 Английский 🇷🇺 русский 🇪🇸 испанский

Создавайте ботов Minecraft с помощью мощного, стабильного и высокоуровневого JavaScript API.

Впервые используете node.js? Вы можете начать с учебника

Features

  • Поддерживает Minecraft 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15 и 1.16.
  • Знание и отслеживание сущностей.
  • Блокировать знания. Вы можете задавать вопросы окружающему миру. Миллисекунды на поиск любого блока.
  • Физика и движение — обработка всех ограничивающих рамок.
  • Атака на объекты и использование транспортных средств.
  • Управление запасами.
  • Создание предметов, сундуки, раздатчики, таблицы зачарования.
  • Копание и строительство.
  • Разное, например, знание вашего здоровья и его состояния. идет дождь.
  • Активация блоков и использование предметов.
  • Чат.

Дорожная карта

Проверьте эту страницу, чтобы узнать, какие у нас текущие проекты.

Установка

Сначала установите nodejs> = 14 с nodejs.org, затем:

npm install mineflayer

Documentation

ссылка description
tutorial Начните с узла .js и mineflayer
FAQ.md Есть вопрос? сначала перейдите туда
api.md unstable_api.md Полный справочник по API
history.md Журнал изменений для Mineflayer
examples/ Ознакомьтесь со всеми примерами минных заговоров

Contribute

Пожалуйста, прочтите CONTRIBUTING.md и prismarine-submit

Использование

Видео

Обучающее видео, объясняющее базовый процесс настройки для бота, может быть найдено здесь.

Если вы хотите узнать больше, есть другие видеоуроки и соответствующие исходные коды для этих ботов.

Начало работы

Если версия не указана, версия сервера будет угадана автоматически, вы можете установить конкретную с помощью опции версии. n. Например, версия: «1.8» .

Пример эха

Посмотрите, что делает ваш бот

Благодаря проекту prismarine-viewer можно отображать в окне браузера, что делает ваш бот. Просто запустите npm установите prismarine-viewer и добавьте это к своему боту:

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

Дополнительные примеры

пример описание
viewer отобразить вид мира вашего бота в браузере
pathfinder заставить вашего бота автоматически переходить в любое место
сундук Использовать сундуки , печи, раздатчики, столы чар
копатель Узнайте, как создать простого бота, способного копать блок
discord соединить бота Discord с ботом-минитером
прыгун Узнайте, как двигаться, прыгать, ездить на транспортных средствах, атаковать близлежащие объекты

И многое другое в папке примеров

Modules

Большая часть активной разработки h добавление внутри небольших пакетов npm, которые используются mineflayer.

The Node Way ™

«Когда приложения сделаны хорошо, они просто действительно специфические для конкретного приложения, солоноватые остатки, которые не так легко удалить. Все красивые, многоразовые компоненты сублимируются на github и npm, где каждый может сотрудничать, чтобы продвигать общественное достояние. «- подстек из» как я пишу модули «

Modules

Это основные модули, из которых состоит Mineflayer:

module description
minecraft-protocol Анализировать и сериализовать пакеты minecraft, а также аутентификацию и шифрование.
minecraft-data Независимый от языка модуль, предоставляющий данные minecraft для клиентов, серверов и библиотек minecraft.
prismarine-Physics Обеспечить физический движок для объектов minecraft
prismarine-chunk Класс для хранения данных фрагментов для Minecraft
node-vec3 Трехмерная векторная математика с надежными модульными тестами
prismarine-block Представляет блок minecraft со связанными с ним данными
prismarine-chat Парсер сообщения чата minecraft (извлеченный из mineflayer)
node-yggdrasil Библиотека Node.js для взаимодействия с системой аутентификации Mojang, известной как Yggdrasil
prismarine-world Основная реализация миров для призмарина
prismarine-windows Представляют окна minecraft
prismarine-item Представляют элемент minecraft со связанными с ним данными
prismarine-nbt Парсер NBT для протокола node-minecraft
прис морской рецепт Представьте рецепты minecraft
prismarine-biome Представьте биом minecraft с связанные с ним данные
prismarine-entity Представляют сущность minecraft

Отладка

Вы можете включить вывод отладки некоторых протоколов с помощью переменной среды DEBUG :

Сторонние плагины

Mineflayer подключаемый; любой может создать плагин, который добавляет API еще более высокого уровня поверх Mineflayer.

Наиболее обновленными и полезными являются:

  • pathfinder — advanced A * поиск пути с множеством настраиваемых функций.
  • prismarine-viewer — простой веб-просмотрщик фрагментов
  • web-inventory — веб-просмотрщик инвентаря
  • Statemachine — API конечного автомата для более сложных действий ботов.
  • Armor Manager — автоматическое управление броней
  • Collect Block — Быстрый и простой API для сбора блоков.
  • Панель инструментов — Панель управления для бота-минитера.
  • PVP — Простой API для базового PVP и PVE.
  • auto-eat — Автоматическое поедание еды.
  • Tool — Утилита для автоматического выбора инструмента/оружия с высокоуровневым API.
  • Hawkeye — Утилита для использования автоматического прицеливания из луков.

Но также обратите внимание:

  • navigate — легко получить, используя поиск пути A *. Демо YouTube
  • radar — веб-интерфейс радара с использованием Canvas и socket.io. Демо YouTube
  • blockfinder — найдите блоки в трехмерном мире
  • scaffold — доберитесь до целевого пункта назначения, даже если для этого вам нужно построить или разбить блоки. Демо YouTube
  • auto-auth — аутентификация бота на основе чата
  • Bloodhound — определяет, кто и что несет ответственность за нанесение ущерба другому объекту
  • tps — получить текущие tps (обработанные tps)

Проекты с использованием Mineflayer

  • rom1504/rbot
    • YouTube — построение винтовой лестницы
    • YouTube — копирование здания
  • Darthfett/Helperbot
  • vogonistic/voxel — визуализируйте, что делает бот с помощью voxel.js.
  • JonnyD/Skynet — регистрируйте активность игрока в онлайн-API.
  • MinecraftChat (последний открытый исходная версия, созданная AlexKvazos) — клиент веб-чата Minecraft https://minecraftchat.net/
  • Cheese Bot — бот на основе плагина с чистым графическим интерфейсом. Сделано с помощью Node-Webkit. http://bot.ezcha.net/
  • Chaoscraft — бот Minecraft, использующий генетические алгоритмы, см. его видео на YouTube.
  • hexatester/minetelegram — Minecraft — Telegram bridge, build поверх mineflayer и telegraf.
  • ProZedd/mineflayer-printer — печатает схемы minecraft
  • и сотни других — все проекты, обнаруженные github, используют mineflayer

Тестирование

После первого клонирования проекта требуется некоторая настройка, но после этого их очень легко запустить.

Настройка

Для успешного выполнения всех тестов вы должны сначала:

  1. создать новую папку, в которой будут храниться jar-файлы сервера minecraft
  2. установить MC_SERVER_JAR_DIR в эту папку
  1. mkdir server_jars
  2. export MC_SERVER_JAR_DIR =/full/path/to/server_jars

Где «/full /path/to/»- это полное имя пути.

Тестирование всего

Просто запустите: npm test

Тестирование конкретной версии

Выполните npm test -g , где — это версия minecraft, например 1.12 , 1.15.2 …

Тестирование конкретного теста

Запустить npm test -g , где — это имя теста, например кровать , useChests , rayTrace …

Источник

Как сделать ИИ для поиска алмазов в Minecraft

Обучение с подкреплением и имитация поведения человека с помощью MineRL

В случайно сгенерированном мире Minecraft найдём алмазы с помощью ИИ. Как обученный с подкреплением агент проявит себя в одной из самых сложных задач игры? Подробностями делимся к старту флагманского курса по Data Science.

Minecraft — масштабная игра с большим количеством механик и сложных последовательностей действий. Чтобы просто научить людей играть в эту игру, написали целую энциклопедию на 8000 страниц.

Последовательность действий поиска алмазов

Обсуждаемое не ограничивается только Minecraft; подход можно применять в таких же сложных средах. Строго говоря, мы реализуем два разных метода, которые станут основой нашего интеллектуального агента.

Но, прежде чем обучать агента, необходимо понять, как взаимодействовать со средой. Начнём со скриптового бота и познакомимся с синтаксисом. Работать мы будем с MineRL — потрясающей библиотекой для создания приложений искусственного интеллекта в Minecraft.

Код из статьи доступен в Google Colab. Это упрощённая и доработанная версия потрясающих блокнотов, написанных организаторами турнира MineRL 2021 (лицензия MIT).

I. Скриптовый бот

MineRL позволяет запускать Minecraft в Python и взаимодействовать с игрой. Взаимодействие реализовано через популярную библиотеку gym:

Мы стоим перед деревом. Как вы видите, разрешение довольно низкое. В низком разрешении используется меньше пикселей, что ускоряет работу. К счастью для нас, нейронным сетям не нужно разрешение 4К, чтобы понять происходящее.

Мы хотим взаимодействовать с игрой. Что может делать наш агент? Вот список возможных действий:

Список действий

Первый шаг при поиске алмазов — добыть древесину для изготовления верстака и деревянной кирки.

Давайте постараемся подойти к дереву поближе. То есть нам нужно удерживать кнопку Forward меньше секунды. В MineRL обрабатывается по 20 действий в секунду: нам не нужна целая секунда, поэтому давайте повторим действие Forward 5 раз и подождём ещё 40 тактов:

Отлично, а сейчас срубим дерево. В общей сложности от нас требуется 4 действия:

Forward — встать перед деревом;

Attack — срубить дерево;

Camera — посмотреть вверх или вниз;

Jump — получить готовый кусок древесины.

Управляться с камерой может быть трудновато. Для упрощения синтаксиса мы задействуем функцию str_to_act из этого GitHub-репозитория (лицензия MIT). Новый скрипт теперь выглядит так:

Агент успешно срубил целое дерево. Неплохо для начала, но от ИИ хотелось бы побольше самостоятельности…

II. Глубокое обучение

Наш бот хорошо работает в фиксированной среде. Но что случится, если мы поменяем затравку или её начальную точку? Всё прописано в скрипте, так что агент, скорее всего, попытается срубить несуществующее дерево.

Такой подход слишком статичен для наших целей: нам нужно что-то, что могло бы адаптироваться к новым средам. И вместо заданных в скрипте команд нам нужен искусственный интеллект, который бы знал, как рубить деревья. Конечно же, подходящей основой для обучения такого агента служит обучение с подкреплением. Если точнее, то подходящим вариантом будет глубокое обучение с подкреплением, поскольку мы обрабатываем изображения, из которых выбираются правильные действия.

Существует два способа реализации глубокого обучения с подкреплением:

Истинное глубокое обучение с подкреплением: агент обучается с нуля, взаимодействуя со средой. Он поощряется каждый раз, когда срубает дерево.

Имитационное обучение: агент учится, как рубить деревья, исходя из набора данных. Здесь данные — это последовательность действий по рубке деревьев, выполняемая человеком.

Оба подхода дают один и то же результат, но они не одинаковы. Авторы турнира MineRL 2021 пишут, что одинаковый уровень производительности достигается в обучении с подкреплением за 8 часов, а в имитационном обучении — за 15 минут.

У нас нет столько времени, поэтому что мы останавливаемся на варианте с имитационным обучением. Эта техника также называется клонированием поведения, то есть простейшей формой имитации.

Обратите внимание, что имитационное обучение не всегда бывает эффективнее обучения с подкреплением. Если хотите почитать подробнее, то Кумар с соавторами написал об этом отличную статью в блоге.

Проблема сводится к задаче классификации с несколькими классами данных. Набор данных состоит из видео в mp4, так что мы воспользуемся свёрточной нейронной сетью (CNN), чтобы перевести данные изображения в соответствующие действия. Кроме того, наша цель — ограничить количество возможных действий (классов). Таким образом, у CNN останется меньше доступных вариантов, и обучение пройдёт эффективнее:

В этом примере мы вручную определили 7 подходящих действий: Attack — атака, Forward — движение вперёд, Jump (прыжок) и движение камеры влево, вправо, вверх и вниз. Ещё один популярный подход — использовать метод k-средних для автоматического подбора релевантных действий человека. В любом случае смысл в том, чтобы убрать самые бесполезные для решения задачи действия. Наша задача — изготовление (крафтинг) вещей.

Давайте обучим нашу CNN на наборе данных MineRLTreechop-v0. Другие наборы данных можно найти здесь. Мы выбрали скорость обучения 0,0001 и 6 эпох с размером пакетов в 32:

Модель обучена. Теперь мы можем создать экземпляр объекта среды и посмотреть, как поведёт себя модель. Если обучение прошло успешно, модель должна безостановочно рубить все деревья в зоне видимости.

В этот раз мы воспользуемся обёрткой ActionShaping. Она нужна для сопоставления массива чисел, созданного с помощью dataset_action_batch_to_actions, с дискретными действиями из MineRL.

Нашей модели нужно наблюдение от первого лица в корректном формате, а на выходе она выводит логиты. С помощью функции softmax эти логиты можно перевести в распределение вероятностей в наборе из 7 действий. Далее случайным образом выбираем действие по его вероятности. Выбранное действие реализуется в MineRL через env.step(action).

Этот процесс можно повторять сколько угодно раз. Повторим его 1 000 раз и посмотрим, что получится:

Наш агент довольно хаотичный, но в этой новой, незнакомой среде у него всё-таки получается рубить деревья. А теперь… как же найти алмазы?

III. Скрипт + имитационное обучение

Простой, но действенный подход — комбинировать скриптовые действия с действиями искусственного интеллекта. Учим всему скучному и записываем знания в скрипт.

В этой парадигме нам нужна свёрточная сеть, которая позволит получить большой объём древесины (3 000 шагов). Затем в скрипте прописывается последовательность действий для изготовления досок, палок, верстака, деревянной кирки и приступаем к добыче камня (он должен быть у нас под ногами). Этот камень можно использовать для изготовления каменной кирки, которой можно добывать железную руду.

Сочетание CNN и скрипта

Вот здесь всё и начинает усложняться: железная руда встречается довольно редко, поэтому для поиска её залежей придётся на какое-то время запустить игру. Далее нужно создать печь и расплавить руду, чтобы получить железную кирку. И, наконец, придётся спуститься ещё глубже и суметь получить алмаз, не упав в лаву.

Как видите, это выполнимо, но результат — непредсказуем. Мы могли бы обучить второго агента искать алмазы, а третьего — создавать железную кирку. Если вам интересны более сложные подходы, то можете почитать про результаты турнира MineRL Diamond 2021. Канервисто с соавторами описал несколько решений на основе разных хитроумных методов, включая архитектуры сквозного глубокого обучения. Надо сказать, что это сложная задача, и ни одной команде не удавалось находить алмазы постоянно… если они вообще хоть что-то находили.

По этой причине в примере ниже ограничимся созданием каменной кирки, но код можно изменить и пойти дальше:

Видно, что в первые 3 000 шагов агент рубит деревья как сумасшедший, а затем срабатывает скрипт, и выполняется задача. Возможно, это не так очевидно, но команда print(obs.inventory) показывает каменную кирку. Обратите внимание, что это избранный пример; большинство запусков завершаются не так успешно.

Существует несколько причин, почему агент терпит неудачу: он может попасть во враждебную среду (вода, лава и т. д.), в область без леса или даже упасть и погибнуть. Если вы поэкспериментируете с разными затравками, то сможете лучше понять всю сложность проблемы и, надеюсь, получите идеи по созданию ещё более «талантливых» агентов.

Заключение

Надеюсь, вам понравилось это небольшое руководство по обучению с подкреплением в Minecraft. Это не просто популярная игра, но и интересная среда для проверки агентов ИИ, обученных с подкреплением. Здесь, как и в NetHack, нужно очень хорошо разбираться в игровой механике, чтобы спланировать точную последовательность действий в процедурно-сгенерированном мире. В данной статье мы:

узнали, как пользоваться MineRL;

рассмотрели 2 подхода (скрипт, клонирование поведения) и их комбинацию;

показали действия агента в коротких роликах.

Основная проблема среды — низкая скорость её обработки. Minecraft — не такая лёгкая игра, как NetHack или Pong, поэтому агентам нужно много времени на обучение. Если для вас это проблема, рекомендую присмотреться к средам полегче, например Gym Retro.

Спасибо за внимание! Если вам интересно, как использовать ИИ в видеоиграх, то подписывайтесь на меня в Twitter. А мы поможем прокачать ваши навыки или с самого начала освоить профессию, актуальную в любое время:

Источник

Читайте также:  Как сделать fake ping
Поделиться с друзьями
Ответ и точка