środa, 21 listopada 2012

play in the World of tanks on Ubuntu 12.10 (linux)

Tłumacząc tytuł: gramy w World of tanks na Ubuntu 12.10 (linux).

Windows był mi potrzebny tak naprawdę tylko do... gry w powyższą grę, na dobrą sprawę do niczego innego mi nie był ten system potrzebny.
Po odebraniu laptopa ze sklepu (sklep zleca naprawę serwisowi) okazało się, że Windows ma problemy z... grafiką, a raczej gry w Windows mają z nią problem. Jak się okazało, to nie windows ma problem w grafiką (nVidia) tylko sterownikami własnościowymi - a chodzi o nvlddmkm.sys - masę informacji w internecie i... żadna nie jest pomocna.
Masę ludzi ma problem w tym plikiem i błędami związanymi z jego złym działaniem - co mnie zaczęło dobijać.

Postanowiłem więc, że spróbuję uruchomić grę na Ubuntu, jako że korzystam z tego systemu do codziennej komunikacji, przeglądania internetu i innych pierdów, jak tworzenie filmików na youtube, czy rzeczy relaksacyjnych: słuchanie muzyki, oglądanie filmów.

Zaczynamy...
Na początek poszło w ruch google: porady, problemy itd.
Jak się okazało, grę da się uruchomić... choć z graniem wychodzi różnie.

WAŻNE!!
Co mi było potrzebne do uruchomienia gry na Ubuntu (12.10)?
1. Zainstalowana działająca i ZAKTUALIZOWANA DO NAJNOWSZEJ wersja gry na systemie Windows
2. Instalator WoT-a
3. Wine w wersji 1.5.17 (ppa)
4. Sporo miejsca na /home lub osobna partycja BARDZO WAŻNE: sformatowana pod ext4 (chyba że stosujecie inny rodzaj), ale musi to być partycja linux!!
5. Wytrwałość przy szukaniu rozwiązania problemów, jakie mogą się pojawić
6. Pogodzenie się z tym, że FPS w grze nie będzie powalać

Historia:
Na początek poprzestałem na Wine w wersji dostarczanej mi przez Canonical w repozytoriach (jeśli nie wiesz o czym piszę, to znaczy że albo nie masz styczności z linux, albo jesteś jeszcze laikiem w kwestiach systemu linux).

Jak się jednak przekonałem, wersja Wine 1.4.x nie jest za dobra i... aktualna. Więc szybkie dodanie repo do synaptic i instalacja Wine 1.5.17 (deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ precise main).
Pamiętać warto, aby zainstalować winetricks - ułatwia wiele rzeczy w późniejszym etapie.

Otwieramy terminal i wklejamy (bez sudo):
winetricks d3dx9_36 vcrun2008 gdiplus vcrun2005 vcrun2010 corefonts msxml3 wininet
(czy muszę wspominać o enterze?)

Teraz trzeba przekopiować zawartość z grą do... /home/[nazwa waszego konta]/.wine/drive_c/
U mnie wygląda to tak: /home/xxx/.wine/drive_c/Games/World_of_Tanks/ - gdzie znajdują się pliki z grą.

Tip:
I na samym początku wspomniałem o dużej ilości miejsca na /home lub partycja linux. Ponieważ w linux można tworzyć dowiązania między katalogiem, który znajdują się na innej partycji a katalogiem - skrótem w systemie. Wspominam o tym dlatego, że w linux dowiązanie nie jest traktowane jako ikonka z przejściem do danego miejsca (choć jest tak oznaczana), ale jako rzeczywisty odnośnik - najprościej tłumacząc: system interpretuje takowy skrót jako rzeczywiste miejsce/katalog/plik, tak jakby w danym miejscu był dany katalog z plikami a nie plik który nas przenosi do danego miejsca.
Dlatego można sobie całe .wine przenieść na inną większą partycję, robiąc dowiązanie do .wine w katalogu domowym - terminal: ln -s /media/xxx/.wine ~/.wine
/media - miejsce gdzie montowane są inne partycje niż systemowa
xxx - nazwa partycji

Jeśli doszliście do tego miejsca i uważacie, że to co napisałem powyżej to jakaś czarna magia, przykro mi... ale to jest linux :)

Teraz przystępujemy do... zainstalowania instalatora WoT - http://worldoftanks.eu/en/update (ja tak zrobiłem).

Wiedziałem, że z WOTLauncher.exe będzie problem, więc go nawet nie uruchamiałem, przeszedłem od razu do uruchomienia gry.
Gra... o dziwo uruchomiła się. Zalogowałem się na moje konto i wszystko było o.k :)
Panele ustawień działają, wybór pojazdu działa, czat (kanały) działają, dźwięki działają.

Problem pojawił się w momencie wejście do bitwy, który objawia się oknem debbug-owania. Można by pomyśleć, że wchodziłem do bitwy jako bot, czy specjalnie nie wchodziłem do bitwy - musiałem przekonać się, czego może mi brakować w Wine i jak temu zaradzić.

I teraz kilka porad:
Obowiązkowe zmiany
Po ustawieniu ustawień graficznych w grze (po zapisaniu zmian wychodzimy z gry) przechodzimy do
/home/xxx/.wine/drive_c/users/xxx/Application Data/wargaming.net/WorldOfTanks/
(xxx - nazwa waszego konta na systemie Ubuntu)
i edytujemy plik preferences.xml
>>  <tripleBuffering> zmieniamy true na false </tripleBuffering>
>>  <textureQualityMemoryBlock> ustawiamy wartość 1024 zamiast 3000</textureQualityMemoryBlock>

Teraz zmiany odnoszące się do ustawień Wine:
Otwieramy terminal:
winetricks glsl-disable
winetricks videomemorysize=1024

Są to dwie bardzo ważne zmiany, które u mnie umożliwiły mi... wejście do bitwy i zagranie w grę.

Moje ustawienia Directx oprócz tego co powyżej ustawiacie 
(HKEY_CURRENT_USER\Software\Wine\Direct3D):
DirectDrawRenderer opengl
Multisampling disabled
OffscreenRenderingMode fbo
PixelShaderMode enalbed
StrictDrawOrdering disabled

W ustawieniach Wine (winecfg) i Biblioteki mam pewne zmiany:
d3dx9_36 - ustawione mam na (wbudowana, natywna) - nie wiem w czym to pomaga, może coś tam daje.

Jeśli ktoś posiada kartę graficzną nVidia (jak ja) polecam zainstalowanie wersji tegoż sterownika 310.19 I TYLKO JEGO (właściwy plik i paczka oznaczona jako settings). U mnie poprawiło to troszeczkę płynność gry i obecnie FPS nie spada poniżej 7, jeśli zaczyna spadać.


Dowód na to, że udało mi się uruchomić, oraz zagrać w World of tanks na Ubuntu, bo czy na linux jest xfce?
FPS nie powala, ale to jest wynik przy jednoczesnym nagrywaniu rozgrywki, a nie powtórka.

ps.
Nie korzystałem z żadnych tam WOTFix, czy podobnych. Nie kompilowałem Wine z git, nie patch-owałem Wine (bo nie kompilowałem wine). Zainstalowałem wine z ppa, zainstalowałem wszystkie potrzebne elementy do uruchomienia gry winetricks (directx itd.), przeniosłem grę z partycji Windows na partycję linux, dokonałem zmian opisanych dla Wine ze zmianą videomemorysize itd. i wszedłem do bitwy. Wcześniej próbowałem wejść do bitwy, ale bez skutecznie, trochę mi zajęło znalezienie rozwiązania, ale udało się... obecnie gra działa i jakoś da się grać :)

ps2.
Muszę wspomnieć o tym, że nie mam Ubuntu 32 bit-owego, ale 64 bit :)
Co oznacza, że byłem zmuszony zainstalować więcej paczek niż to się ma analogicznie do wersji 32.
Wszystko przez to, że na wersji 64 bit instaluje się prawie połowę systemu 32.

ps3.
Grę uruchamiam poleceniem: wine ~/.wine/drive_c/Games/World_of_Tanks/WorldOfTanks.exe

2 komentarze:

  1. jezeli wtedy kiedy nie nagrywasz chodzi lepiej to spoko, jezeli nie to wybacz ale moim zdaniem nie ma sensu

    kiedys wargaming pytal graczy czy chcieli by klienta na linuxa, pamietam ze ankieta wyszla slabo
    chyba trzeba bylo by temat ponownie rozwazyc, przynajmniej dla ubuntu jak to zrobil steam

    OdpowiedzUsuń
    Odpowiedzi
    1. Tzn. z tym nagrywaniem - to tylko WoT tak zwalnia podczas nagrywania, inne gry typowo na linux działają płynnie, nawet jeśli je nagrywam. Zauważyłem, że gra nie wychodzi po za 15FPS, gdzie da się grać. Jeśli zaś FPS spada poniżej 10 - to obraz zaczyna przycinać i grać się za bardzo nie da.
      W patch 8.2 zostaną zoptymalizowane drzewa, jak i roślinność, oraz grafiki obiektów mają być "ulepszone" pod względem grafiki.
      To powinno sprawić, że gra powinna działać szybciej.\

      Co do ankiety - wątpię, aby wersja na linux się pojawiła. Za mało użytkowników, za mało płacących za grę w WoT.

      Usuń