...

четверг, 3 апреля 2014 г.

[Из песочницы] 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. Устанавливаем плагин — http://ift.tt/1pUB2hr

2. Для Unity 3D выбираем «Safari / Mac OS X»

3. Для Silverlight — «Windows Firefox 15».


Firefox:

1. Устанавливаем плагин — http://ift.tt/QHZCpL

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. Буду рад любой конструктивной критике касательно поста, пожеланиям, а также указаниям на ошибки, оговорки и опечатки в личку.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий