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

linux
Здрастуйте, Хабраспівтовариство. Думаю, багато хто запитував, чи існує робочий порт Unity 3D Web player під Linux. На жаль, офіційно ця платформа (зараз) не підтримується, і веб-плагін працює тільки під Windows/Mac OS. Деякі для вирішення цієї проблеми використовували зв'язок Wine + Firefox для Windows + Unity 3D WP для 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 бібліотеки підтягнутися самі:

Зверну вашу увагу на те, що нова версія пакета називається pipelight-multi, а не«pipelight», який перейшов у стан deprecated. Також через початкову спрямованість на Silverlight, Pipelight може витягнути шрифти, захищені ліцензією Microsoft. У цьому випадку вам доведеться ухвалити ліцензійну угоду. Втім, у мене воно не вимагалося навіть після включення Silverlight'a.

Тепер, включаємо підтримку Unity:

Тиснемо [Y], після цього запуститься Wine додаток, чекаємо на його завантаження, перезавантажуємо браузер - все, готово!

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

Не працює!

Якщо установка пройшла успішно, але 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. Відкриваємо налаштування плагіна та дописуємо наступні рядки:

3. Для Unity 3D вибираємо Safari/OSX 4. Для Silverlight - "Firefox 15/Windows".

Все одно не працює!

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

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»