Запускаем Windows-игры на Linux с помощью PlayOnLinux

29 июня 2016

Тема компьютерных игр не так уж бесконечно далека от программирования, как может показаться на первый взгляд. Допустим, у вас на ноутбуке Ubuntu и вам предстоит девятичасовой перелет на самолете к месту проведения какой-нибудь конференции, а все сериалы вы уже посмотрели. Было бы неплохо иметь на этот случай несколько хороших игр, и желательно пошаговых, так как в прочие в самолете играть затруднительно. Есть, конечно, множество нативных игр под Linux, ровно как и Steam. Однако в рамках этой заметки мы познакомимся с PlayOnLinux, который представляет собой такую сильно более удобную обертку над Wine.

Примечание: Существует порт PlayOnLinux под FreeBSD, он называется PlayOnBSD. Я лично его работу не проверял, поэтому далее речь идет только о PlayOnLinux.

Несколько замечаний

Отмечу, что помимо PlayOnLinux есть и другие способы запустить Windows-игры на Linux-ноутбуке. Например, dual boot, использование Wine напрямую или запуск приложений под VirtualBox. Но эти варианты либо намного менее удобны, либо более требовательны к ресурсам и следовательно быстрее разряжают ноутбук. В частности, по моему опыту при использовании голого Wine после установки приложений вечно приходится что-то подхачивать. Удовольствие это весьма сомнительное.

Также отмечу, что хотя далее речь пойдет только об играх, через PlayOnLinux можно с тем же успехом запускать и другие приложения, взять к примеру тот же Microsoft Office.

Все описанные далее шаги были проверены на ноутбуке Fujitsu Lifebook E733 под управлением Ubuntu Linux 14.04.

Установка PlayOnLinux

Установка PlayOnLinux описана здесь. Сначала требуется установить пакет wine:i386. Проблема заключается в том, что у меня вот так просто Wine не устанавливался:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 wine : Depends: wine1.6 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Быстрое гугление покзало, что такая проблема, похоже, возникает у всех.

Я воспользовался этим советом — поставить Wine из PPA, а также этим — использовать aptitude вместо apt-get, так как aptitude способен лучше разруливать конфликты зависимостей:

sudo dpkg --add-architecture i386
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo aptitude --full-resolver --without-recommends \
  -f install wine1.8:i386

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

The following actions will resolve these dependencies:

      Keep the following packages at their current version:
1)      libasn1-8-heimdal:i386 [Not Installed]
2)      libgphoto2-6:i386 [Not Installed]
3)      libgphoto2-port10:i386 [Not Installed]
4)      libgssapi3-heimdal:i386 [Not Installed]
5)      libhcrypto4-heimdal:i386 [Not Installed]
6)      libheimbase1-heimdal:i386 [Not Installed]
7)      libheimntlm0-heimdal:i386 [Not Installed]
8)      libhx509-5-heimdal:i386 [Not Installed]
9)      libkrb5-26-heimdal:i386 [Not Installed]
10)     libldap-2.4-2:i386 [Not Installed]
11)     libroken18-heimdal:i386 [Not Installed]
12)     libwind0-heimdal:i386 [Not Installed]
13)     wine1.8:i386 [Not Installed]
14)     wine1.8-i386:i386 [Not Installed]

Accept this solution? [Y/n/q/?] 13

(ПРОПУЩЕНО)

Enter "r 13" to prevent this action from appearing in new solutions.
Enter "a 13" to require that new solutions include this action if
possible.

Accept this solution? [Y/n/q/?] r 13

(ПРОПУЩЕНО)

Accept this solution? [Y/n/q/?] n

Пояснение. Здесь Aptitude такой говорит, мол, я тут подумал, и считаю, что Wine не нужно ставить, тогда все будет хорошо. На что мы ему отвечаем, мол, нет, чувак, Wine нужно поставить, подумай еще раз. Так повторяем несколько раз, пока Aptitude не предложит решение с даунгредом некоторых пакетов.

Например (вывод обрезан по ширине):

The following actions will resolve these dependencies:

      Downgrade the following packages:
1)  libasn1-8-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1.6~...
2)  libgphoto2-6 [2.5.3.1-1ubuntu2.2 (now) -> 2.5.3.1-1ubuntu2 (trus...
3)  libgphoto2-port10 [2.5.3.1-1ubuntu2.2 (now) -> 2.5.3.1-1ubuntu2 ...
4)  libgssapi3-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1.6...
5)  libhcrypto4-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1....
6)  libheimbase1-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1...
7)  libheimntlm0-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1...
8)  libhx509-5-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1.6...
9)  libkrb5-26-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1.6...
10) libroken18-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1.6...
11) libwind0-heimdal [1.6~git20131207+dfsg-1ubuntu1.1 (now) -> 1.6~g...

Accept this solution? [Y/n/q/?] Y

Соглашаемся, в результате чего Wine успешно устанавливается. Теперь ставим сам PlayOnLinux:

wget -q "http://deb.playonlinux.com/public.gpg" -O - | \
  sudo apt-key add -
sudo wget http://deb.playonlinux.com/playonlinux_trusty.list -O \
  /etc/apt/sources.list.d/playonlinux.list
sudo apt-get update
sudo apt-get install playonlinux

Все свои данные, если что, PlayOnLinux хранит в каталоге ~/.PlayOnLinux.

Ставим игры!

Далее, если не сказано обратное, игра устанавливалась по сценарию «зарегистрироваться на gog.com, купить игру за PayPal, установить ее в PlayOnLinux при помощи встроенного скрипта, введя логин и пароль от gog.com». Также можно ставить игры и без покупки на gog.com, указав путь до каталога, куда примонтирован установочный диск.

Во многих играх я обнаружил проблемы со звуком. Они решились переходом в настройки игры и заменой версии Wine на «System». Я лично предпочитаю запускать игры в отдельном окне, а не на весь экран. Для этого в настройках Wine во вкладке «Graphics» нужно поставить галочку «Emulate a virtual desktop». Во время установки игры могут вылетать несколько ошибок. Это не страшно и на работоспособность установленной игры не влияет.

Итак, мне удалось успешно установить и запустить следующие игры (запустились все игры, которые я вообще пробовал):

  • Wizardry 8. Игра установилась. Работает, не тормозит, все хорошо.
  • Neverwinter Nights. Аналогично.
  • The Elder Scrolls III: Morrowind. Запускается долго, но все работает.
  • Heroes of Might and Magic III. Установочный скрипт почему-то не смог залогиниться на gog.com. Скачал инсталлятор сам, указал до него путь, все установилось. HD Mod ставится без проблем отдельным скриптом.
  • Heroes of Might and Magic V. Готового установочного скрипта нет. Сделал так — в главном окне PlayOnLinux нажал Configure, создал новый виртуальный диск с системным Wine и 32-х битным окружением, в нем во вкладке «Miscellaneous» нажал «Run a .exe file in this virtual drive», в нем выбрал инсталлятор. Затем в «General» нажал «Make a new shortcut from this virtual drive» и создал иконки для запуска игр (их там ставится больше одной). Но при запуске с эмуляцией рабочего стола описанным образом игры почему-то не запускались. Решил проблему, указав в качестве программы для запуска «C:\ Windows\ Explorer.exe» и путем запуска нужной игры через иконку на десктопе.
  • Disciples 2 Gold. Установочный скрипт со своей работой не справился, не смог скачать инсталлятор. Баг разработчикам PlayOnLinux зарепортил. Общение с саппортом gog.com по этому вопросу оказалось пустой тратой времени. В итоге сделал все точно так же, как описано выше для HOMM V, и все заработало.
  • Neverwinter Nights 2. Скрипт с работой не справился, не смог скачать инсталлятор. Впрочем, игра помечена красным цветом, то есть, скрипт еще находится в разработке. Поставил игру по принципу Disciples 2 и HOMM V. На appdb.winehq.org подсмотрел, что также нужно установить пакет directx9. Делается это путем нажатия на кнопку Configure, во вкладке «Install Components». После этого все заработало.

Скриншот главного окна PlayOnLinux с установленными играми:

Главное окно PlayOnLinux

Путем тривиальных манипуляций с каталогами:

~/.PlayOnLinux/shortcuts/
~/.PlayOnLinux/icones/32/
~/.PlayOnLinux/icones/full_size/

… можно указать правильную иконку, если игру вы запускаете через explorer.exe.

Заключение

В общем и целом, все оказалось даже лучше, чем я ожидал. Запустились все игры, которые я решил попробовать. Притом практически без приседаний, особенно если с самого начала не слишком сильно полагаться на установочные скрипты PlayOnLinux. Также был приятно удивлен, что все игры без проблем заработали на встроенном ноутбучном GPU, притом не самом новом — Intel HD Graphics 4000.

Метки: , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.