Unity 3D Web Player на Linux через Pipelight

от автора


Здравствуй, Хабрасообщество. Думаю, многие задавались вопросом, существует ли рабочий порт Unity 3D Web player под Linux. К сожалению, официально эта платформа (на данный момент) не поддерживается, и веб-плагин работает только под Windows/Mac OS. Некоторые для решения этой проблемы использовали связку Wine + Firefox for Windows + Unity 3D WP for Windows. Однако эта связка работает нестабильно, и существуют проблемы с зацикленным обновлением Unity 3D WP. Сегодня мы рассмотрим более функциональное решение с использованием браузеров под Linux, а сделаем мы это с помощью Pipelight.

Что такое Pipelight?

Pipelight — это враппер Windows NPAPI для Windows плагинов (Unity 3D WP, Silverlight, Flash и т.д.), позволяющий использовать эти плагины в натив-Linux браузерах. Pipelight состоит из двух частей: Linux библиотеки, которая подгружается браузером, и Windows программы, стартующей в Wine. Windows программа эмитирует Win-браузер и подгружает Win-DLL необходимого плагина. Когда вы открываете веб-страницу, которой требуется этот плагин, библиотека посылает все запросы с Linux-браузера через туннель в Windows-процесс, образуя некий «мост» между браузером и плагином. Более подробную информацию можно найти здесь (англ.).

Установка

Я устанавливал и тестировал Pipelight под Kubuntu 13.10 и Firefox 28. Соответственно, буду описывать процесс под неё, но ваша система и браузер могут отличаться (также поддерживаются: Debian, Arch Linux, openSUSE, Fedora 18/19/20, AVLinux, Slackware, CentOS 6, SteamOS, Mageia 4… и кастомные дистрибутивы).

Установка очень проста и осуществляется всего в несколько шагов, необходимые Wine библиотеки подтянуться сами:

# Добавляем ppa репозиторий: sudo add-apt-repository ppa:pipelight/stable # Устанавливаем пакет: sudo apt-get update sudo apt-get install --install-recommends pipelight-multi # И тут же обновляем: sudo pipelight-plugin --update 

Обращу ваше внимание на то, что новая версия пакета называется «pipelight-multi», а не «pipelight», который перешёл в состояние deprecated.
Также из-за первоначальной направленности на Silverlight, Pipelight может вытянуть шрифты, которые защищены лицензией Microsoft. В этом случае вам придётся принять лицензионное соглашение. Впрочем, у меня оно не запрашивалось даже после включения Silverlight’a.

Теперь, включаем поддержку Unity:

sudo pipelight-plugin --enable unity3d

Жмём [Y], после этого запустится Wine приложение, ждём его загрузки, перезагружаем браузер — всё, готово!

Вы также можете включить другие плагины, которые поддерживаются Pipelight (Silverlight или например Flash, так как Linux версия отстаёт от Win):

# Silverlight sudo pipelight-plugin --enable silverlight # Silverlight 5.0 sudo pipelight-plugin --disable silverlight --enable silverlight5.0 # Flash sudo pipelight-plugin --enable flash 

Не работает!

Если установка прошла успешно, но Unity Web приложение отказывается грузиться на странице, то, скорее всего, в него встроена проверка User Agent’a, отсекающая не Win/Mac OS системы.
Проблема решается довольно просто.

Устанавливаем один из рекомендованных плагинов (за совместимость с другими плагинами разработчики не ручаются) для быстрой смены юзер агента:

Chrome:
1. Устанавливаем плагин — chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg
2. Для Unity 3D выбираем «Safari / Mac OS X»
3. Для Silverlight — «Windows Firefox 15».

Firefox:
1. Устанавливаем плагин — addons.mozilla.org/en-US/firefox/addon/user-agent-overrider
2. Открываем настройки плагина и дописываем следующие строки:

Firefox 15/Windows: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1  Safari/OSX: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10 

3. Для Unity 3D выбираем «Safari/OSX»
4. Для Silverlight — «Firefox 15/Windows».

Всё равно не работает!

Если все работало хорошо, а потом внезапно перестало, попробуйте очистить home папку pipelight:

rm -rf ~/.wine-pipelight/ 

Загляните в официальный FAQ (англ.) и баг трекер.
Для дистрибутивов отличных от Ubuntu может потребоваться пересобрать специальные Wine пакеты, подробности — тут (англ.).

Известные проблемы с Unity 3D WP

Pipelight поддерживает большинство Unity Web приложений, однако в некоторых возникают проблемы, над которыми разработчики работают (по их заверениям):

1. Остановка загрузки файла посередине. Решается перезагрузкой страницы: загрузка не обрывается, а докачивается.
2. Постоянно зажатая клавиша левой стрелки (left arrow key). Решается либо перезагрузкой страницы, либо является неразрешимой проблемой для конкретного приложения.
3. Конкретное приложение не запускается вообще. К сожалению, встречается с шансом примерно 1 к 20.

Выводы и P.S.

Pipelight позволяет легко и быстро насладиться Unity 3D Web приложениями в вашем любимом Linux дистрибутиве.
Конечно, это не совсем полноценная работоспособность «как от производителя», но намного легче по ресурсам, чем параллельная VM машина, стабильнее чем Wine, и гораздо лучше, чем ничего 🙂

P.S. Буду рад любой конструктивной критике касательно поста, пожеланиям, а также указаниям на ошибки, оговорки и опечатки в личку.

ссылка на оригинал статьи http://habrahabr.ru/post/218123/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *