Энтузиасты и профессионалы строительства в знаменитой Minecraft ударными темпами двигают эту популярную игру к новым высотам. И вполне успешно, надо сказать. Недавно геймеры умудрились смоделировать в игре рабочие компоненты компьютера. Проще говоря, создали почти компьютер внутри компьютера.
На днях дуэт особо продвинутых Майнкрафт-мастеров официально объявил о создании в игре функциональных жестких дисков, которые способны считывать и записывать данные. Один из таких дисков (придуманный юзером smellystring) может сохранять до 1KB данных, а еще один — творение The0JJ — до 4KB. В этой связи уже появилось мнение, что теперь СкайНет и Матрица — не такая уж и фантастика. По крайней мере, день, когда появятся первые виртуальные модели полнофункциональных вычислительных машин, подчиняющиеся законам физического мира, точно стал ближе.
Однако не может не возникать еще один вопрос, и даже два: что это за данные и каким образом их можно использовать в Minecraft? Тема, безусловно, интересная, хотя по понятным причинам и малоизученная. Тем не менее, кое что уже можно спрогнозировать. К примеру, так как в Майнкрафт запасы того или иного игрока сохраняются в виде игровых данных различного объема, то сам геймер описанным способом вполне мог бы сохранить тестовый или даже аудиофайл, если имеющийся в его распоряжении виртуальный диск будет достаточно вместительным и он найдет возможность преобразовать информацию в двоичный код. По словам одного из создателей жесткого диска в Minecraft, метод подходит для сохранения любой информации, в объеме пока только до 1KB.
В общем, у любителей Майнкрафт, а также у всех знатоков современной компьютерной науки и логики появился еще один повод для размышлений.
Недавно я снова начал играть в Minecraft. Ванильный Minecraft несколько скучен, как по мне, и я всегда ищу модпаки (пакеты дополнений). В поисках новых модпаков я наткнулся на FTB Horizons: Daybreaker. Из списка содержащихся в нем модов мое внимание привлек мод OpenComputers.
Как можно предположить из названия, модуль OpenComputers добавляет в Minecraft компьютеры. Настоящие компьютеры! При этом они тоже модульные. Вы можете добавлять периферию: от мониторов до клавиатур и карт расширения, которые добавляют возможности такие как графика и сеть. И эти компьютеры могут быть запрограммированы на языке Lua, прямо в игре. И существует такой вид карт, как Интернет-карта, которая можете себе представить, может подключаться к Интернету реального мира. Неплохо.
Прежде всего, я запустил Minecraft. Далее, я сотворил новый мир в Minecraft и вошел в игру. Переключился в творческий режим, что означает что я мог вносить в игру все что хочу, и построил OpenComputers компьютер. Имеется много инструкций на этот счет, но все же разобраться как работают такие компьютеры — это заняло некоторое время. После некоторых проб и ошибок у меня был работающий компьютер и я мог создать TCP соединение с реальным миром!
Протокол используемый лампочкой довольно прост, один байт заголовка (header byte), три дополнительных байта определяющих цвет в формате RGB, и байт определяющий яркость белого (лампочка RGBW), и один байт переключающий между режимом RGB и режимом белого, и замыкающий байт (footer byte). Достаточно просто!
0x56 RED GREEN BLUE WHITE MODE 0xAA
Итак, у нас есть компьютер, способ управлять компьютером и входящими сигналами. Мы также имеем путь и протокол для коммуникации с лампочкой. Последний элемент паззла — программа которая запуститься на компьютере и оживит всю систему. Прежде всего я заспавнил в Minecraft жесткий диск. При записи информации на жесткий диск, OpenComputers компьютер создает директорию с уникальным идентификаторов в директории файлов Minecraft. Таким образом я могу добавлять, редактировать и удалять файлы из моего компьютера на компьютере в игре.
В качестве редактора я использовал Sublime Text, на мой взгляд писать код на компьютере в игре не слишком-то удобно. И вот после некоторых исследований и ошибок, я написал следующий скрипт:
Прежде всего, если нажата клавиша ‘q’ — программа завершается. Когда получен сигнал редстоуна, программа преобразует положение рычага в ‘0x00’ либо ‘0xFF’, что означает включение и выключение wifi-лампы. Пакеты передаются по каналу и лампа реагирует соответственно. Наконец, TCP подключение открывается, когда программа запускается. Просто и работает!
Экспресс среди ивентов: TechTrain прибывает на IT-платформу
Итак, голографическое изображение — это всего лишь текстура, которая вырисовывается с помощью переименованных лошадей. Из их имён и складывается кадр.
Откройте нужный Вам мир. Запомните или запишите координаты блока, на месте которого и будут появляться текстуры. Закройте Minecraft и загрузите MCEdit, ссылка на который находится чуть ниже.
Переместите кадры для Вашего голографического кадра в папку «frames» в корневой папке программы MCEdit. Назовите кадр как «frame1». Учите: расширение *.png для картинки является обязательным. Также, данный фильтр поддерживает создание анимаций. Для их создания, число в каждом следующем кадре должно быть на 1 больше. Например: «frame1», «frame2», «frame3».
Также, нам потребуются специальные фильтры, которые Вы сможете найти чуть ниже. Переместите их в папку «filters». Готово. Зайдите в MCEdit и выберите модифицированный ранее мир с помощью кнопки «Load World. «. Следующим шагом будет выделение с помощью левой кнопки мыши того блока, с которого начнётся построение схемы для запуска нашего голографического изображения или анимации. Нажмите «Filter» в меню снизу. В появившемся слева окошке выберите в пункте «Filter» фильтр «Holograms». Дополнительные параметры описаны ниже.
Нажмите на кнопку «Filter». Отлично! Можно заходить в Minecraft. Запустить схему можно поставив красный факел на блок кварца.
Не стоит забывать, что команда /summon была добавлена в версии 1.7. Поэтому, данный подход не будет работать на меньшей версии.
Также, советую посмотреть видео-урок по использованию данного фильтра: