niedziela, 10 czerwca 2012

Steam, Wine i Linux - to działa całkiem nieźle

Przy okazji ostatnich emocjonujących informacji na temat wydania Steama i silnika Source na GNU/Linuksa chcę wspomnieć o stanie obecnym, czyli Steamie uruchamianym przez Wine.


Produkty Valve działają całkiem dobrze pod Wine. Obecnie sama instalacja Steama to kilka kliknięć, bez uciekania się do konsoli czy grzebania w plikach konfiguracyjnych. Instrukcje można znaleźć na stronach społeczności programistów Valve.

"Natywny" Steam początkowo zaoferuje pewnie tylko gry Valve na silniku Source (Half-Life 2 (EP1, EP2), Portal (2), Left 4 Dead (2), Team Fortress 2). Okazuje się, że już teraz (z użyciem Wine) instalacja tych tytułów odbywa się dokładnie tak samo jak pod Windows. Kilka kliknięć i można zaczynać grę.
W przypadku gier innych producentów może być gorzej, tu przychodzi z pomocą baza Wine czy strona Steam Games on Linux

Ciekawostką jest, co widać na załączonym obrazku, że Steam potrafi rozpoznać, kiedy jest uruchomiony pod Wine i określić jego wersję.

Do uzyskania dobrej wydajności, zapewne porównywalnej do Windows, nadal potrzebne są binarne sterowniki. Otwarte (wykorzystujące Mesę 8.1) są wystarczająco dopracowane by bezbłędnie wyświetlać grafikę (powyższy zrzut ekranu, ustawienie silnika Source na DirectX 9.0), ale wydajność niestety kuleje i przy budżetowych kartach graficznych może być zbyt niska.

W tym momencie zacząłem się zastanawiać w czym "natywny" klient Steama i silnik Source będzie lepszy niż ten pod Wine. Pewnie będzie nieco stabilniejszy i mniej pamięciożerny. No i może prędkość renderingu gier się podniesie. Właśnie... to nic pewnego, szczególnie, że Wine to nie emulator, a implementacja API Windows i może zapewniać wydajność zbliżoną do systemu z Redmond. Tak samo nieudolny port gry pod OpenGL może być mniej wydajny niż wersja windowsowa uruchomiona pod Wine, które zajmuje się tłumaczeniem wywołań Direct3D na OpenGL (w tym shaderów HLSL na GLSL).
Korzyści będą za to widoczne w przypadku gier korzystających z Direct3D 10/11 (poziom ~ OpenGL 3.3/4.2). Wsparcie Wine dla wszystkiego ponad Direct3D 9.0 jest szczątkowe.

Wprowadzenie "natywnego" Steama nie zmieni wiele z dnia na dzień. Już teraz można go z powodzeniem używać pod Wine. Ważniejsze będą efekty długofalowe. Kto wie jaki wpływ będzie miało Valve i Steam na API i sterowniki używane pod Linuksem. Nie chcę tu wróżyć ze szklanej kuli. Poczekamy, zobaczymy.

PS W przypadku OS X i Windows, Valve wprowadziło Steam Play - grę kupuje się raz i można ją uruchamiać na obu platformach. Mam nadzieję, że docelowo Steam Play obejmie również Linuksa.

3 komentarze:

  1. Oj stary, to chyba powinieneś spróbować w coś pograć tak na serio a nie tylko odpalić (pod WINE). Mam 2x2.1GHZ i GF8600 co wystarcza mi do grania na Windowsie we wszystkie gry jakie mam podpięte na Steamie w przyzwoitych detalach. Dla kontrastu - niestety mimo początkowego entuzjazmu nie udało mi się praktycznie w nic komfortowo pograć na WINE. Pomijając wydajność to w np. w TF2 artefakty z oświetleniem, L4D2 regularnie gubił dzwięk i się wysypywał a sam klient Steam muli niesamowicie i zachowuje się co najmniej dziwnie przy rozciąganiu okien.

    Dostrzegam gigantyczny przeskok jakościowy od czasów kiedy parę lat temu po raz pierwszy instalowałem na WINE Orange Boxa od Valve, ale to ciągle nie to. Natywny wersja to będzie (przynajmniej dla mnie) rewolucja.

    OdpowiedzUsuń
  2. Moje próby pogrania na linuxie w Counter strike-source przez wine trwały chyba przez dwa tygodnie po kilka h dziennie aż w końcu się poddałem .
    Niby dało się zagrać ale z komfortem to miało nie wiele wspólnego.
    Przy procku 2X3,1Ghz 6 Gb ramu i GF gts 250 rozdziałka full HD i tak :
    Windows wszystkie detale , wygładzanie i inne duperele na maxa średnia fps 130 (min.60)
    Wine wszystko na minimum średnia fps 25 .. (min 10 max 35)

    OdpowiedzUsuń
    Odpowiedzi
    1. Może nie masz sterowników NVIDI zainstalowanych tylko Messe albo Novau i dlatego tak wolno tobie działa. Ja nie zauważyłem różnicy większej niż +-`0 FPS. 4x3Ghz, DDR2 8GB RAM, GF 9800GT a moge swobodnie grac i w sourca i cs:go na linux mint pod wine 1.6. Co do dzwieku to lepiej sobie skompilować samemu wine, bo jak byś czytał na ten temat to byś wiedział, że pulseaudio(domyslne) nie jest w pełni obsługiwane przez wine. Do tego winetricks do instalacji bibliotek i directx-a(9 działa bez problemu, 10 - tylko starsze wersje). Po instalacji i dodaniu/instalacji kilku bibliotek, kodeków instalujemy z winetricks steama i wszystko działa. Tylko TF2 ma z 30-40 klatek mniej niż na windowsie. Reszta działa lepiej i praktycznie 0 różnica w FPSach, a ping na linuxie mam mniejszy z 18-25 na 5-12.

      Usuń