воскресенье, 19 октября 2014 г.

Установка и настройка World Of Warcraft в Ubuntu или Linux Mint


Сама по себе установка World of Warcraft (WoW) в Ubuntu или Linux Mint (с помощью Wine) не представляет сложности, однако часто игра работает нестабильно, особенно если вы используете не последнюю версию Wine, кроме того FPS может быть очень низким, поэтому я решил составить руководство по настройке World of Warcraft на своем лэптопе (с графикой Nvidia Optimus, поэтому я мог протестировать игру как на видеокарте Nvidia, так и Nvidia), обеспечивающей стабильную и быструю работу WoW.


Установка World of Warcraft в Ubuntu / Linux Mint

1. Скачайте инсталлятор WoW installer (или используйте CD/DVD).
2. Этот шаг необязателен, но позволит избежать многих из описанных ниже ошибок и вылетов: установите последний релиз Wine из PPA:

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7

3. Запустите инсталлятор с помощью Wine:


Затем установите Battle.net:


4. И в конце запустите Battle.net и установите World of Warcraft:


Решение потенциальных проблем при работе World of Warcraft

A. Вылет инсталлятора World of Warcraft installer / Battle.net 
Если Battle.net вылетает при запуске:


Запустите из меню "Configure Wine" (или нажмите ALT + F2 и введите winecfg) и на вкладке Libraries, в поле "New override for library" введите "dbghelp" (без кавычек), затем кликните "Add". Далее, в "Existing overrides" выберите "dbghelp" и кликните "Edit", и в появившемся окошке выберите "Disable":


B. Если у вас 64-битная система и 64-битный клиент игры World of Warcraft вылетает с ошибкой вида:

ERROR #132 (0x85100084) Fatal exception!

Program: C:\Program Files\World of Warcraft\Wow-64.exe
ProcessID: 57
Exception: 0xC0000005 (ACCESS_VIOLATION) at 0033:0000000005A11A71

The instruction at "0x0000000005A11A71" referenced memory at "0x00007F38ACD6C028".
The memory could not be "read".

Вам необходимо заставить World of Warcraft использовать 32-битный клиент. Если вы для запуска игры используете Battle.net (это возможно, только если вы не используете OpenGL, см. ниже), вы можете выбрать 32-битный клиент в настройках Battle.net, доступных по клику левой кнопкой мыши на синей иконке в верхнем левом углу окна Battle.net. К сожалению меню не очень отзывчиво и начинает работать только после нескольких кликов. Или вы можете запускать World of Warcraft с помощью скрипта - добавление "-noautolaunch64bit" заставит запускаться 32-битный клиент вместо 64-битного. Если вы уже используете скрипт для запуска World of Warcraft, просто добавьте "-noautolaunch64bit" в конце команды запуска.
Сделать скрипт можно следующим образом. Создайте в своей домашней директории текстовый файл, назовите его wow и вставьте в него: 

Для 32-битной Ubuntu / Linux Mint:

#!/bin/sh

WINEDEBUG=-all wine "/home/YOURUSERNAME/.wine/drive_c/Program Files/World of Warcraft/WoW.exe" -noautolaunch64bit

(замените "YOURUSERNAME" на свое имя пользователя; вам может потребоваться ввести свой путь к WoW.exe!)

Для 64-битной Ubuntu / Linux Mint:

#!/bin/sh

WINEDEBUG=-all wine "/home/YOURUSERNAME/.wine/drive_c/Program Files (x86)/World of Warcraft/WoW.exe" -noautolaunch64bit

(замените "YOURUSERNAME" на свое имя пользователя; вам может потребоваться ввести свой путь к WoW.exe!)

Затем сохраните файл и сделайте его исполняемым с помощью следующей команды:

chmod +x ~/wow

Для WoW просто кликните дважды этот файл (его можно запустить и из командной строки с помощью команды "~/wow").

C. Только для 64-битной версии: если вы используете Bumblebee и World of Warcraft вылетает со следующей ошибкой:

X Error of failed request:  GLXUnsupportedPrivateRequest

Это лечится установкой 32-битных библиотек virtualgl-libs:

sudo apt-get install virtualgl-libs:i386

D. Если World of Warcraft останавливается на окне авторизации (невозможно подключиться) и при этом вы запускаете игру с помощью Battle.net  и используете OpenGL gxapi, решение этой проблемы вы найдете в следующем разделе (см. использование OpenGL).

Оптимизация и твики (увеличение FPS World of Warcraft в Linux, и т.д.)

A. Использование OpenGL

Есть несколько отзывов, говорящих о том, что World of Warcraft лучше работает при использовании OpenGL. В моем случае, при использовании видеокарты Nvidia и OpenGL FPS значительно вырос, но с видеокартой Intel такого не наблюдалось. В целом этот эффект нужно тестировать для своего конкретного набора железа.
К сожалению, запуск World of Warcraft с OpenGL из Battle.net к моменту написания этой статьи был невозможен, по крайней мере мне это сделать не получилось, так как World of Warcraft не может подключиться к серверу. Для того, чтобы он смог это сделать при использовании OpenGL, необходимо запускать его с помощью скрипта. Для этого создайте новый текстовый файл в своей домашней директории - давайте назовем его "wow", и вставьте в него следующий текст.

В 32-битной Ubuntu / Linux Mint:

#!/bin/sh

WINEDEBUG=-all wine "/home/YOURUSERNAME/.wine/drive_c/Program Files/World of Warcraft/WoW.exe" -opengl

(замените "YOURUSERNAME" на свое имя пользователя; вам может потребоваться ввести свой путь к WoW.exe!)

В 64-битной Ubuntu / Linux Mint:

#!/bin/sh

WINEDEBUG=-all wine "/home/YOURUSERNAME/.wine/drive_c/Program Files (x86)/World of Warcraft/WoW.exe" -opengl

(замените "YOURUSERNAME" на свое имя пользователя; вам может потребоваться ввести свой путь к WoW.exe!)

Только для пользователей Nvidia: для оптимизации производительности OpenGL добавьте перед "wine" в скрипте: "__GL_THREADED_OPTIMIZATIONS=1". После модификации скрипта он должен выглядеть следующим образом:

В 32-битной Ubuntu / Linux Mint:

#!/bin/sh

WINEDEBUG=-all __GL_THREADED_OPTIMIZATIONS=1 wine "/home/YOURUSERNAME/.wine/drive_c/Program Files/World of Warcraft/WoW.exe" -opengl

(замените "YOURUSERNAME" на свое имя пользователя; вам может потребоваться ввести свой путь к WoW.exe!)

В 64-битной Ubuntu / Linux Mint:

#!/bin/sh

WINEDEBUG=-all __GL_THREADED_OPTIMIZATIONS=1 wine "/home/YOURUSERNAME/.wine/drive_c/Program Files (x86)/World of Warcraft/WoW.exe" -opengl

(замените "YOURUSERNAME" на свое имя пользователя; вам может потребоваться ввести свой путь к WoW.exe!)

Примечание: опция "WINEDEBUG=-all" отключает вывод отладочной информации, что немного повышает производительность.
Далее, сделайте скрипт исполняемым:

chmod +x ~/wow

Это еще не все. Для повышения FPS выполните следующий твик. Нажмите ALT + F2, введите "regedit", далее:
- перейдите в HKEY_CURRENT_USER -> Software -> Wine, выберите папку Wine, кликните ее правой кнопкой, выберите New -> Key, и переименуйте вновь созданный ключ в "OpenGL".
- выберите ключ "OpenGL", кликните его правой кнопкой и выберите New -> String Value;
- переименуйте "New Value #1" в "DisabledExtensions";
- кликните дважды "DisabledExtensions" и в поле "value" введите "GL_ARB_vertex_buffer_object".

B. Видеокарта Intel


Если вы видите черные текстуры, или игра вылетает, активируйте компрессию текстур S3TC:
- сначала установите driconf:

sudo apt-get install driconf

Затем запустите его: он должен отобразиться в меню как "3D Acceleration" (или можно нажать ALT + F2 и ввести "driconf"), и на вкладке Image Quality задайте "Enable S3TC texture compression even if software support is not available" to "Yes", после чего закройте окно.

C. Дополнительные твики для повышения FPS

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

Откройте в текстовом редакторе файл Config.wtf  (он должен находиться в ~/.wine/drive_c/Program Files (x86)/World of Warcraft/WTF/) и вставьте в него следующие строки:

SET M2UseShaders "0"
SET UseVertexShaders "0"
SET useWeatherShaders "0"
SET ffxGlow "0"
SET ffxDeath "0"
SET ffxSpecial "0"
SET weatherDensity "0"
SET reflectionMode "0"
SET maxFPS "60"
SET ffx "0"
SET maxFPSbk "5"
SET mapShadows "0"

Затем сохраните файл.

Использование некоторых аддонов WoW  (например Recount) может значительно снизить FPS, поэтому лучше их удалить (именно удалить, а не отключить!).
В  Ubuntu 14.04 и 14.10 / Linux Mint 17 вы можете использовать Oibaf PPA с Oibaf Gallium Nine и Wine, пропатченный для D3D State Tracker/Gallium Nine PPA для повышения FPS в World of Warcraft с помощью Direct3D. Однако эти пакеты являются экспериментальными, поэтому я не буду здесь добавлять инструкции для них. Если вы хотите подключить их, почитайте описания PPA. 
Обновите драйвера для видеокарты (например, для Nvidia вы можете скачать последние драйвера с Xorg Edgers PPA, но не добавляйте этот PPA в систему, ли удалите сразу после установки драйверов.

6 комментариев:

  1. Огромное спасибо за статью!

    ОтветитьУдалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить
  3. Спасибо, очень помогло вот это:
    "Enable S3TC texture compression even if software support is not available" to "Yes"

    ОтветитьУдалить
  4. что делать если терминал пишет что присутствуют битые пакеты

    ОтветитьУдалить
  5. А если Battle.net клиент не запускается ?

    ОтветитьУдалить
  6. Прогресс бар загружается и клиент вылетает

    ОтветитьУдалить