Играем в старый мобильный Minecraft… на ПК без эмуляторов?
Добрый день, хабровчане! Сегодня речь пойдет о Minecraft PE - в основном для тех, кто хочет окунуться в ностальгию по старым версиям именно мобильного (карманного) издания. Способ поиграть весьма нетривиальный, зато удивит последующими возможностями игры.
Погружение в контекст
Minecraft Pocket Edition вышла в 2012 году и сразу удивила всех - не только тем, что игра шла на смартфонах, а еще и реализацией. В первых версиях (до alpha 0.8.1) в игре были ограничены миры до размера 256х256х128 блоков, нет голода, бега, приседания, а контента было гораздо меньше. Возможно, многим тогда запомнился шарм именно этих старых версий игры - размеренный, странный, но приятный, со старыми текстурами и старым весьма темным освещением.
И когда мне захотелось его ощутить вновь, скачав заветный apk-файл, то во время установки меня ждал сюрприз - версии настолько морально устарели даже по меркам Android, что без установщика Install with Options на свежий Android 11+ вы его уже не поставите. Тем не менее, даже с этим установщиком после Android 12 старые версии отказываются работать корректно - есть проблемы с аппрувом запрашиваемых разрешений, а также у игры тупо нет доступа к записи в свою папку games/com.mojang/minecraftWorlds, то есть мир вы уже не сохраните. Сторонние модификации по типу minecraftpetv4 избавлены от проблем с установкой, но всё так же не сохраняют одиночные миры. Данная ситуация заставила меня побродить по github...
... и найти изящное и красивое решение, про которое мы сегодня и говорим - Ninecraft. По сути это лаунчер на основе Minecraft Raspberry Pi Edition (так как ее ядро использует ядро MCPE), который пересобрали, добавили множество твиков и теперь вы можете скомпилировать ее под любой Linux/Windows и поиграть нативно прям так. Вот отсюда и начнем.
Сборка Ninecraft
Для начала вам стоит определиться с платформой, на которую вы хотите собрать сборку. В моем случае - это Windows вместе с Visual Studio tools, так что из необходимого мне нужно лишь доустановить зависимости в виде Windows 10 SDK и git + CMake + Python. Их можно установить прямо в самом VS, в фирменном инсталлере. Также требуется подтянуть пакет jinja2 после установки python, устанавливаем его:
pip install jinja2
Вытягиваем себе репозиторий:
git clone --recursive http://github.com/MCPI-Revival/Ninecraft.git
Переходим в папку:
cd Ninecraft
Запускаем компиляцию через батник:
.\compile-msvc.bat
Если всё было сделано верно, то в консоли вы увидите начало сборки(первая сборка будет достаточно долгой), по окончании которой у вас появится собранный ninecraft.exe и будет ждать вас по пути ./repository/build-win32/ninecraft/Debug
Запуск
Осталось еще запустить сам лаунчер. Из его названия становится понятно, что он лишь часть того, что мы будем запускать. Поэтому нам понадобится разворошить apk-файл MCPE, чтобы было что запускать. По понятным юридическим и антипиратским причинам я не могу вам оставить ссылку на сам apk, но могу подсказать, что все они хранятся как часть истории на archive.org - нужна сборка под x86 архитектуры.
После скачивания, в директорию build-win32/ninecraft/Debug туда, где находится скомпилированный ninecraft.exe, распаковываем всё содержимое apk-файла. Выглядеть это должно примерно следующим образом (options.txt и config.cfg создадутся автоматически при первом запуске).
И конечным итогом остается запуск - обычным открытием exe или командой:
.\build-win32\ninecraft\Debug\ninecraft.exe
Поздравляем, у вас должен был запуститься Minecraft PE! Не забываем, что поддерживаются только сборки версий 0.1.3 - 0.10.5
Небольшие итоги + разбор полетов
Далеко не с первого раза я додумался, в чем была проблема, когда в первый раз проморгав, я запустил не тот батник - compile.bat вместо compile-msvc.bat. Оказалось, CMake сохраняет в кэш буквально все данные о том, как собирать, чтобы при последующих сборках не пришлось это делать. Достаточно очистить CMakeCache.txt и CMakeFiles и можно перезапускать.
После этого, сильно ступанул в момент, когда попытался собрать без Windows 10 SDK (о нем в мануалах в гитхабе - ни слова), выдавая ошибку cmake error no cmake_c_compiler could be found
. Как уже упоминал - решается банальной установкой последнего SDK для вашей версии Windows.
Какой можно сделать из этого вывод? Что играть в старый майн - это прикольное ощущение той олдовости. И иногда для того, чтобы это хотя бы работало, стоит слегка попотеть ручками и ножками (а еще явно стоит избегать mingw32 и всех его собратьев по сборщикам, ибо вы замаетесь, честно).
Ах да, помните, в начале статьи я указывал "последующие возможности"? Так вот, в Ninecraft, как и в PiEdition можно загружать свои моды на основе python-скриптов, класть достаточно в папку mods в корневой директории сборки. Пока что не тестировал, но кто знает, может это будет для следующей статьи :-)