Делаем игру для прошитого nintendo switch на unity

"Да чего там настраивать, unity из коробки поддерживает Switch"(с)
"Да чего там настраивать, unity из коробки поддерживает Switch"(с)

Когда я выложил в соцсети радостный пост о том, что получилось запустить игру с unity на своем nintendo switch, то были ответы в духе "ну так а чо такого-то, ведь этот движок поддерживается на платформе". Тут сразу стоит сказать, что поддерживается он только официально, а если делать что-то неофициально, то это не самая простая задача, в которой достаточно тяжело разобраться. И за помощь, а так же за кучу рабочих материалов спасибо Никите Крапивину, без его пояснений ничего бы не вышло.

Начнем с того, что купить купить devkit switch вполне реально, если вы крупная или хотя бы средняя студия. Хотя я слышал истории, что даже некоторые издатели заказывали консоли в европейские страны, а потом почти контрабандой везли их уже к нам. То ли японцы мстят нам за Курильские острова, то ли продолжают свою откровенно убогую политику работы с игроками и клиентами, когда могут удалять фанатские ролики и каналы за использование музыки или футажей из игр. В общем, нам это не важно, но если вы такой же мелкий хоумбрюшный разработчик, как и, то приготовьтесь к очередному пиратству ради того, чтобы запустить свою игру на этой платформе.

Необходимые файлы

Список того, что требуется для работы вполне стандартный. Это сам unity, так же support files для платформы switch, ключ для unity, чтобы экспортировать на эту платформу, а так же sdk самой платформы. Ну и взломанный или чипованый nintendo switch. Есть еще вариант тестировать на эмуляторе yuzu, но об этом в самом конце. Найти слитые рабочие файлы совершенно не проблема, сейчас их можно найти как на торрентах, так и на различных облаках.

Рабочие файлы ищутся на торрентах без проблем
Рабочие файлы ищутся на торрентах без проблем

И далее все довольно просто, определяемся с версией unity, качаем support files, а так же в зависимости от версии движка скачиваем sdk. Если это 2018 версия, то 7.3.2, если выше - 9.2. Распаковываем в папку, например, E:\NintendoSDK . И этот путь надо прописать в Система-Дополнительные параметры системы - Переменные среды, где в Системных переменных создать новую переменную NINTENDO_SDK_ROOT и там прописать этот путь к sdk.

Делаем игру для прошитого nintendo switch на unity

Потом запускаем от имени администратора (важно) коммандную строку и там надо запустить два bat файла:

cd /d ПУТЬ_К_ПАПКЕ_NintendoSDK\NintendoSDK\Installers\TargetManager Install.bat cd .. cd Vsi Install.bat

Чтобы разблокировать в unity возможность экспорта на платформу switch, вам потребуется бесплатный ключ, который можно взять на портале разработчика, подходит тот же, с которым можно было экспортировать для 3ds или wiiu. И не забудьте поставить рекомендуемый visual studio 2015, хотя у меня стоит 2019 и все работает.

Если вы читали прошлую статью про экспорт из unity на xbox360, то этих действий хватало, чтобы начать делать игры, запускать их на платформе.

Но на тут начинается самое интересное. Для начала нам надо найти и заменить файл Application.desc на взломанный.

Делаем игру для прошитого nintendo switch на unity

После этого теоретически можно будет из unity экспортировать проект, но вот запустить на нашем взломанном switch его не выйдет, потому что сейчас проект подписан ключом для devkit, а даже взломанный switch - это ритейл. Решается эта проблема самописным фиксом:

Делаем игру для прошитого nintendo switch на unity

Для этого берем переименовываем AuthoringTool.exe в AuthoringToolO.exe, а потом в эту же папку распаковываем архив prodencrypt.zip, где лежат модифицированные ключи и утилита, которая их подписывает. Казалось бы, это все, пробуем собрать проект, заливаем на устройство и проект не устанавливается...

Веселый геморрой и его лечение

Проект не устанавливается и самое время почитать документацию и там можно найти полезную вещь. Для начала, у нашего приложения должен быть уникальный идентификационный номер, важно, чтобы поддерживался хотя бы один язык (можно ставить английский), а так же были иконки. Все это меняется в player settings, но даже после этого проект может не устанавливаться.

Делаем игру для прошитого nintendo switch на unity

Когда мы с товарищами только разбирали, как же идет компиляция и что может быть не так, то пробовали разные варианты и что интересно - проект мог стартовать в эмуляторе yuzu, но на реальном устройстве - нет. Времени было потрачено - тьма, нервов - еще больше, а когда было найдено решение, то показалось, что две скинутые на Хиросиму бомбы - это еще маловато.

Проблему компиляции проекта создают иконки приложения. Два небольших файла, которые не может прочесть компилятор, обламывают сборку всего проекта. Видимо, у компилятора используется какая-то библиотека, которая читает определенный формат файла, но у меня ни разу не вышло, чтобы экспортированный из adobe photoshop файл подхватился. Но есть решение - сделать два файла в фотошопе, один 1024х1024 bmp, второй - 256х256 jpg, а потом пересохранять их через обычный Paint, который идет вместе с windows. Либо использовать решение еще проще - взять подготовленные мной иконки, тестировать проект, если все ок, то попробовать их менять, так меньше возможностей ошибиться. И не знаю, важно это или нет, но и названия файлов стараюсь сохранять в виде smallicon.jpg и bigicon.bmp, а при компиляции и установке на реальное устройство не дышать и не моргать.

Фиксим иконки для сборки проекта в paint
Фиксим иконки для сборки проекта в paint

Наконец-то можно начать творить

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

И еще плюс, что тестировать работоспособность можно так же на эмуляторе yuzu. Проблем с иконкой или подписью приложений там нет, зато не надо будет каждый раз гонять проект на устройство, а ps4 геймпад позволяет получить похожий функционал.

И таким же образом я планирую проверить сборку homebrew приложений для ps3, эмулятор работает сейчас отлично, а вот реального устройства у меня нет. Ну и уже есть описание сборки проекта для ps4, написанное Никитой, у него же и есть реальное устройство, на котором он уже тестировал проекты.

Но nintendo switch точно будет долго жить и не потеряет своей актуальности, потому интересно дальше с ним разбираться.

Эта же информация в виде ролика. Плюс, все рабочие файлы собраны там в описании.
7373
42 комментария

Комментарий недоступен

21
Ответить

Комментарий недоступен

4
Ответить

ну вот японцы во всю используют передовой bmp

Ответить

Комментарий недоступен

Ответить

Юристы нинки подтянулись

3
Ответить

Ох, как же вы паблишить такое собрались?

Ответить

самый простой вариант - через издателя, у кого лицензия есть

2
Ответить