RetroArch Netplay - кооператив для SEGA, NES, SNES, Gameboy и аркадных автоматов
Гайд, как играть в игры c перечисленных консолей в кооперативе с друзьями, если вы не можете собраться в одной комнате или у вас нет двух геймпадов.
Протестируем работоспособность кроссплея на ПК, Steam Deck, Nintendo Switch и Miyoo Mini+.
Мотивы:
Хочу показать другу аркадную игру Metal Slug. Друг живет далеко. Вдвоем в нее играть интереснее, чем одному.
Еще хочется сыграть в Battle City - это танчики на Денди. Друг на работе, я на работе, а играть хочется в моменте.
Решить проблему необходимости находиться в одной комнате можно с помощью RetroArch Netplay.
Почему RetroArch:
- Это большой комбайн эмуляторов, заботливо собранный в одном месте.
- Его можно установить на ПК из Steam, скачав необходимые эмуляторы уже внутри него.
- Самый популярный проект с комбайном эмуляторов на Steam Deck - EmuDeck - тоже установит RetroArch.
- Набор эмуляторов для Nintendo Switch устанавливается в виде Homebrew приложения RetroArch.
- Miyoo Mini+ под капотом использует RetroArch.
В общем, он довольно распространен, у него большое сообщество пользователей, поэтому я советую именно его.
Загруженные эмуляторы будем называть ядрами, а возможность игры по сети Netplay.
После настроек, описанных ниже, а также часа опытов, запуск игры и подключение становится тривиальной задачей:
Хосту нужно запустить игру, нажать паузу, нажимать назад, пока не окажетесь в главном меню, выбрать меню Netplay и нажать первую кнопку Host.
Клиенту нужно сделать все тоже самое, только в меню Netplay обновить список игроков LAN или WAN и найти комнату друга по имени. Если игра была запущена однажды в RetroArch, то при подключении ее запускать уже не нужно, она найдется и включится сама.
Теперь настройки и нюансы:
Сначала нужно убедиться, что ядро поддерживает Netplay. Поддержка Netplay очень медленно добавляется в ядра. В принципе, выше я перечислил все поддерживающиеся консоли на текущий момент. Для других консолей бывают свои версии костылей для игры онлайн.
Запуск сетевой игры может не заработать если у вас с другом игра запускается разными ядрами (эмуляторами). Или если версия ядра у друга отличается (можно обновить внутри RetroArch). И точно не будет работать если у вас разные версии дампа игры, там есть проверка контрольной суммы при запуске.
Если два устройства находятся в одной локальной сети, например, подключены к одной точке WiFi, то достаточно обновить список хостующих игру в LAN и подключиться.
Если два устройства находятся в одной виртуальной сети, например, у вас с другом настроен собственный VPN, Hamachi, Radmin VPN или что-то подобное, то хостер в LAN тоже может определится.
Есть способ избавить себя от необходимости быть в локальной сети. В RetroArch Netplay есть два пути решения этой проблемы:
Первый способ требует открытия портов, настройки upnp на роутере, и он мне не нравится, потому что мы привязаны к железу роутера и его настройкам.
Второй способ - указать промежуточный сервер, который будет использоваться для коммутации друх и более устройств. По умолчанию RetroArch предлагает использовать один из общедоступных серверов. Ближайший к нам находиться где-то в западной Европе. Установив такую настройку, можно захостить игру и ее будет видно всем пользователям RetroArch Netplay.
В погоне за лучшим пингом я пошел чуть дальше и установил маленькую программу промежуточного сервера на свой дедик с Linux и белым IP адресом. Отредактировал порт в конфиге, чтобы никто не ломился лишний раз. Программа написана на Python, но я сильно не разбирался в коде. Опытным путем я выяснил, если выключить сервер во время игры, соединение между устройствами пропадает сразу же. Я сделал вывод, что с помощью этой программы происходит активная коммутация трафика, а не просто первичное рукопожатие между устройствами.
Ссылка на официальный кастомный промежуточный сервер: github.
Таким образом, если вы используете промежуточный сервер по умолчанию, вы можете раздать Интернет с телефона на ваш условный Nintendo Switch Lite и поиграть с другом из другого города, сам при этом, находясь где угодно. Настраивая кастомный сервер, вместо сервера по умолчанию, я на упреждение борюсь только с пингом, и то, я его не измерял.
Интерфейс RetroArch на всех платформах примерно одинаковый, поэтому, я текстом укажу то, что можно или нужно изменить:
- Язык в RetroArch - Настройки-Интерфейс-Язык;
- Имя пользователя - Настройки-Пользователь;
- Использовать сервер посредник - Сетевая игра-Сеть (ставим да);
- Локация сервера-посредника - Сетевая игра-Сеть (ставим ближайший);
- Ручной ввод адреса сервера-посредника - Сетевая игра-Сеть (только если используем свой);
- Пароль сервера - Сетевая игра-Сеть;
- Автосохранение - Настройки-Сохранения (нужно выключить, если включены, и сохранить конфигурацию. Иначе будет вылетать. В основном это касается Miyoo Mini+).
Для демонстрации запущу две игры Metal Slug 3 (Neo Geo) и Танчики (NES). Два игрока + один наблюдатель.
На всех трех устройствах играется просто отлично. Для Miyoo Mini+ загрузка игры Metal Slug 3 дается тяжеловато - грузит где-то две минуты. В кооператив тоже заходит с хрустом. Но если загрузиться, то работает хорошо.
Танчики настолько простые, что тормозить тут нечему.
В Sega играть по сети еще не пробовал, но в Интернете пишут, что Netplay поддерживается для эмуляторов всех ее консолей. Наибольшую ценность для меня представляют аркадники, на которых есть файтинги и шмапы - это круто. От себя советую еще заценить шмап Blazing Star. А какие ретро игры на двоих нравятся вам?
У гайда есть идея, а выводов нет. Если будут проблемы - решайте!)
Оо, я б хотел поиграть в танчики по нетплей. Давно уже есть желание, но вот где напарников взять?
Есть discord канал libretro, там люди ищут себе напарников, но он англоязычный. Подключиться к случайной комнате не получится, потому что врядли совпадет версия игры, нужно договариваться. Только если здесь пост создать и договариваться. Конкретно в танчики можем вместе сыграть пару раз. Пиши в личку)
маи два друга послали миня нахуй и сказали чтобы я просто им стримил эмуль через парсек
кто? не понял
Как же добренькооо
Так метал слаг и так есть в стиме
Можно купить в стиме. Но мне не зачем собирать в стиме ретро коллекцию. Спасибо, что ромсеты есть в Интернете. И еще там, скорее всего, нет кроссплея. Как быть с другими играми?