В марте я уже писал о том, что Microsoft использует Minecraft в качестве полигона для тестирования и обучения собственной системы искусственного интеллекта. Теперь этот проект вышел в публичную область и пробовать его в работе может каждый.
Разработчики рассказывают, что системы ИИ, используемые в настоящее время, служат для понимания или перевода человеческой речи, распознавания лиц и создания собственного текста. Однако конечная цель разработки подобных систем — это создание «сложного искусственного интеллекта» — системы, способной обучаться и принимать решения на основе собственного опыта.
И с этой точки зрения Minecraft оказался идеальным полем: практически бесконечный мир, в котором есть и опасности и огромные возможности для созидания. Почему упрощенной модели мира не стать областью, в которой будет жить и обучаться искусственный интеллект?
Проект, получил название Malmo (название скорее всего происходит от названия крупного шведского города, ведь сам Майнкрафт тоже родом из Швеции) и его уже можно скачать и попытаться использовать. Правда, для того чтобы установить систему искусственного интеллекта для Майнкрафта, придётся немного напрячь свой собственный.
Как установить Malmo
- Скачайте архив Malmo для Ваше операционной системы (У меня — 64-х битная Windows 10, поэтому далее я буду говорить именно о ней). Он включает мод для Minecraft и примеры программ.
- Скачайте и установите архиватор 7-zip (если вдруг его у Вас его ещё нет)
- Установите кодек FFMPEG (с сайта Zeranoe)
- Распакуйте содержимое архива (директорию bin и все сопутствующие файлы) в папку c:ffmpeg и добавьте папку c:ffmpegbin в системную переменную PATH.
- Установите CodeSynthesis. Перейдите по ссылке и скачайте там файл xsd-4.0.msi, запустите этот файл.
- Установите библиотеки Microsoft Visual Studio 2013 (скачайте файл vcredist_x64.exe и запустите его)
- В зависимости о того, какой язык программирования Вам близок можете скачать и установить:
- Python. Скачайте последний файл для x64, python-2.7.11.amd64.msi. После установки убедитесь, что команда python работает (может потребоваться добавить C:Python27 в переменную PATH)
- Lua. Скачайте и установите, после установки у Вас должна работать команда lua.
- Java (JDK). Как я понимаю, потребуется в любом случае. После установки папка «bin» из директории установки Java должна быть добавлена в переменную PATH, а сама директория установки Java должна быть прописана в переменной JAVA_HOME. Проверьте, если это не так — исправьте вручную.
- Для поддержки C# установите фреймворк dotNET.
- После этого можно приступать к запуску мода. Если у Вас уже установлен Forge, то можно просто установить себе мод расположенный, папке Mod. А можно просто пройти в папку Minecraft и запустить там launchClient.bat — тогда вам скачается отдельная инсталляция Minecraft c Forge, который будет содержать все необходимые моды.
Как пользоваться Malmo
Теперь самое время попробовать систему в действии. Поскольку в комплекте поставляются скрипты для Malmo сразу на нескольких языках программирования, то можно воспользоваться ими. Я обращусь к модулю на Java, но думаю суть будет та же.
Итак, в первую очередь надо запустить Malmo (т.е. запустить launchClient.bat). Ну а потом запускать модуль JavaExamples_run_mission.
Делается это командой (я создал небольшой бат-файл):
1 |
java -cp MalmoJavaJar.jar;JavaExamples_run_mission.jar -Djava.library.path=. JavaExamples_run_mission |
Правда, при этом у меня возникли проблемы с тем, что библиотек MalmoJava.dll, расположенная тут же в папке с примером, оказалась «невидима» для Java. В итоге, я её скопировал в какую-то директорию, которая прописана в переменной PATH и всё запустилось нормально.
Выглядело это так: внезапно окно Майнкрафта уменьшило размера, открылся какой-то мир, и в нём стало происходить какое-то движение персонажа. При этом в консоль писались сообщения, а через какое-то время всё замерло.
Собственно просмотреть это можно тут:
И это всё?!
Ну собственно на этом этапе — это действительно всё. Т.е. в комплекте с Malmo нет готового искусственного интеллекта, который принимал бы за Вас решения, строил бы города, ловил рыбу и охотился на медведей (тем более, что Мальмо отстаёт от обычного майнкрафт и работает на версии 1.8, а не 1.10).
Самое главное, как а я понимаю, — это инструмент, который позволит разработчикам создать систему, которая будет «видеть майнкрафт» как человек. Т.е. для взаимодействия с миром Майнкрафта через Мальмо надо будет опираться на действия вида «посмотреть под ноги, если там что-то похоже на лаву не идти туда», а не обращаться к блокам напрямую, используя их координаты. Отправив команду в чат, надо будет проанализировать написанный в ответ текст и т.п. Ну и самое главное, делать это всё это можно используя ту среду разработки, к которой Вы привыкли.
Конечно, же я могу ошибаться, — я пока ещё не заглядывал в документацию и не пробовал написать свой скрипт для Мальмо. Но я обязательно постараюсь это сделать и тогда расскажу подробнее.
А как же Malmo для Minecraft Pocket Edition?
После того как я скачал Malmo, меня больше всего удивило то, что она основана на Майнкрафте для ПК. Развитие линейки MCPE имеет больший приоритет развития и я сейчас больше верю в более скорое появление официального инструментария для программирования в MCPE, чем в появление обещанного много лет назад PluginAPI для обычного Майнкрафта.
Разработчики регулярно упоминают о разработке такого API (например, об этом говорил Томмазо Кекки в интервью порталу multiplayer.it) и казалось бы логичным, что такой инструмент будет использован в рамках такого проекта как Malmo.
Но этого не произошло. И думаю, реальная причина не в том, что API находится в каком-то зачаточном состоянии (если вообще существует), а в том, что в данном случае Forge оказывается более удобным инструментом, чем «мифическое» API, которое как известно скорее всего будет представлять собой скриптовый движок, который не будет давать возможности обращаться к функциям игры на низком уровне. Удел будущего API — это новые виды блоков или мобов, представляющие собой вариации существующих.
В общем, ждать варианта Malmo для MCPE/MCW10E думаю не стоит.
неужели вы не пытались написать скрипт?
Да что-то пока так руки и не дошли попробовать…
Помогите!!
Что делать если не получается сделать 4 шаг?
А что именно не получается?
Я не понимаю как это сделать.
И многие файлы в папке Malmo не открываются.