warcraft 3 TFT + ROC, warcraft III,

Replaysowa strzałka Polskie Centrum Replayów - top
Replay Tygodnia / Best Replay
Nie ma żadnych replayów spełniających te wymogi.

Wirtualizacja gier i nie tylko

Wirtualizacja systemu operacyjnego.
 
Doczekaliśmy się już bardzo dawno pierwszych procesorów z sprzętowym wsparciem wirtualizacji, ale do dzisiaj zastosowanie w warunkach domowych jest nieznane przeciętnemu użytkownikowi. W tym artykule przedstawię kilka trików możliwych dzięki wirtualizacji, w tym także dotyczących gier.

Na początek kilka podstawowych pojęć i krótkie wprowadzenie do samej technologii.
 
Wirtualizacja polega na utworzeniu w komputerze dodatkowej powłoki kontrolującej system operacyjny – taki rozbudowany emulator. Dzięki temu można utworzyć pełny wewnętrzny system operacyjny, odtwarzając i kontrolując każdy jego aspekt z zewnątrz. W skrócie i najprościej jak się da: wirtualizacja pozwala utworzyć komputer w komputerze. Dziwne i dość bezsensowne, a nawet bezużyteczne na pierwszy rzut oka.


Windows XP startuje w wirtualnej maszynie. Na górze widoczne są przyciski stop, pauza (suspend), start oraz wirtualny reset. Na końcu po prawej przycisk "nagrywania", który pozwala odtwarzać fragmenty pracy wirtualnego komputera.

Nie trzeba wiele rozumu, żeby dojść do wniosku, że każdy „komputer w komputerze” będzie wolniejszy niż kontrolujący go fizyczny sprzęt. Tutaj na szczęście opracowano już bardzo dużo pomysłowych trików, które pozwalają określić, gdzie leży największe spowolnienie oraz które fragmenty wirtualnej maszyny mogą zostać uruchomione bezpośrednio na fizycznym sprzęcie z maksymalną wydajnością, bez utraty zewnętrznej kontroli i niepożądanego wpływu na bazowy system operacyjny. Wydajność jest zapewniona obecnie na niezłym poziomie. Można swobodnie korzystać z dwóch wirtualnych maszyn na przeciętnym domowym komputerze.

Co ciekawsze, są nawet oferowane specjalne systemy operacyjne, które oferują tylko jedną funkcję: tworzenie i zarządzanie wirtualnymi maszynami. Jest to użyteczne, ale przydatne wyłącznie w serwerach. Domowy użytkownik będzie chciał mieć możliwość zainstalowania pełnowartościowego systemu, żeby skorzystać z pełnej wydajności sprzętu bez żadnych ograniczeń. Tutaj dochodzimy do głównej cechy wirtualnych maszyn – niestety aby uzyskać pełną wirtualizację, trzeba w pełni odtworzyć również urządzenia (zwirtualizować je, kontrolować do nich dostęp) razem ze sterownikami. Obecny poziom zaawansowania oprogramowania do wirtualizacji wkroczył niedawno na poziom, który pozwala na najbardziej interesującą (z punktu widzenia użytkowników tej strony, jak uważam) możliwość: uruchamianie gier pod Windows wykorzystujących sprzętową akcelerację, czyli DirectX.

Co to oznacza? Po co to komu? Co za bezsensowny pomysł! Tak sobie właśnie pomyślałem, kiedy usłyszałem wirtualizacji sprzętu do gier po raz pierwszy. Przecież to normalne, że każdy chce wycisnąć z swojego PC maksimum, a tutaj ktoś miałby się skazywać na niską wydajność dobrowolnie?

Zastosowania inne niż gry.

W tym momencie trzeba się zastanowić, do czego jest używana popularnie wirtualizacja. Przede wszystkim jest to narzędzie do szybkiego odtwarzania stanu systemu operacyjnego. Praktycznie każde oprogramowanie, czy to będzie darmowe VirtualPC od Microsoftu, VMWare, VirtualBox, Bochs, czy inne, pozwala na zachowanie stanu wirtualnej maszyny i jego szybkie, bezproblemowe odtworzenie. Bez reinstalowania systemu, konfigurowania sterowników, i to niekoniecznie do stanu „surowego”.

To już powinno nasunąć każdemu możliwe zastosowania: analiza programów, testowanie kompatybilności, tworzenie obrazów z konkretnym, przetestowanym środowiskiem do szybkiego instalowania. W skrócie, wykorzystuje się zaletę pełnej izolacji środowiska wirtualnej maszyny. Przy okazji, skonfigurowanie i utworzenie nowej maszyny jest znacznie szybsze, tańsze i łatwiejsze, niż fizycznego odpowiednika.

Można uruchomić stare systemy operacyjne (DOS, Windows 9x – i to nawet na komputerach, które fizycznie już ich nie obsługują – tutaj jest prezentacja, gdzie pokazany jest ładny przekrój). Można uruchomić Linuksa, bez zabawy w dodatkowe partycje i męczenia się z konfliktami z zainstalowanym Windowsem. Dostępne są nawet gotowce, nazywane virtual appliances, do ściągnięcia ze stron VMWare, które oferują skonfigurowane systemy. Jest to nawet reklamowane jako pewna zaleta, na przykład oferująca bezpieczne przeglądanie w izolowanym systemie operacyjnym. Chcesz uruchomić nieznany program? Nie ma problemu, najwyżej później skasujesz lub odtworzysz wirtualną maszynę. Chociaż w teorii możliwe jest istnienie błędów pozwalających na „ucieczkę” do zewnętrznego systemu, to w praktyce jest to trudniejsze niż bezpośredni atak, chociażby ze względu na to, że mogą to być diametralnie różne systemy operacyjne.

To oczywiście nie jest wszystko, bo można wirtualizować znacznie więcej niż system operacyjny. Napędy optyczne można tworzyć z obrazów płyt, urządzenia USB przełączyć do kontrolowanego środowiska VM, utworzyć „z powietrza” wirtualne sieciówki i z nich dowolną sieć wewnętrzną (oczywiście bez problemu podłączaną do zewnętrznej), a nawet procesor na innym procesorze (Bohs, emulatory konsoli na PC, gier itd.). Skoro znowu doszedłem do gier, to przyjrzyjmy się jak to wygląda.
 
Zastosowania do gier
 
Powszechnie znane są emulatory. Z założenia emuluje się w nich stare sprzęty, wiec wydajność ma niewielkie znaczenie. Nawet po emulacji jest ona akceptowalna. Wadą tutaj jest niewielki zakres emulacji – w przypadku popularnego na Linuksach wine jest to zawsze niepełna część Windows API. Zazwyczaj nie jest to wystarczające i większość programów nie działa w pełni poprawnie lub ma problemy ze stuprocentową kompatybilnością.

Pełna emulacja, na poziomie sprzętu i poniżej systemu operacyjnego, jest obecnie nazywana wirtualizacją. Oczywiście najbardziej interesująca dla tutejszych użytkowników jest wirtualizacja PC z Windows i DirectX. Niestety, z tego co udało mi się dowiedzieć z wyszukiwarek, jest tylko jedna firma oferująca coś takiego na klasyczny PC: VMWare. W najnowszym produkcie VMWare Workstation widać, że jest reklamowana obsługa DirectX 9.0c (i niższych) wraz z shaderami (bardzo ważne jak się okazało, bo używane nawet przez takie stare gry jak Warcraft 3 - w zeszłym roku testowałem betę, która nie obsługiwała DirectX .1 bez shaderów i niestety nie było obrazu). To jest niewiarygodny przełom, bo ogromna większość dzisiejszych tytułów pod Windows da się zwirtualizować!

Niestety moje wstępne testy wypadły bardzo niepomyślnie, jeśli chodzi o wydajność. Warcraft 3 uzyskał poniżej 20 klatek na sekundę, gdy normalnie uzyskuje ~60. Być może na lepszych procesorach i kartach graficznych jest więcej. Nie spodziewałbym się jednak jakiejś wielkiej różnicy, bo pewnie nie ma tu żadnej optymalizacji na wielordzeniowce, a jak wiadomo moc pojedynczego rdzenia ostatnio stoi raczej w miejscu. Są to pierwsze wersje wirtualizacji kart graficznych, jeszcze niezbyt zaawansowanych, więc można się wkrótce spodziewać poprawy. Moje testy były na średnim sprzęcie (Pentium 4 3GHz, Radeon 9550) i słabym (Pentium 4 1.5GHz, GeForce 2 MX). Ponieważ wydajność grafiki była bardzo podobna (kilkanaście fps w Warcraft3), odpuściłem sobie lepsze sprzęty, do których i tak nie miałem pod ręką dużo lepszych kart graficznych.
 
Początkowo nawet było gorzej, ale po wymianie sterowników z przed kilku/kilkunastu miesięcy na dzisiejsze zamiast 2fps uzyskałem około 20fps. Być może jest lepiej na nowszych kartach NVidii?


Przykładowy screen z battle.net, gra włączona w oknie na wirtualnym Windows XP.

Ciekawostką jest tutaj, że VMWare będzie coraz popularniejszy, właśnie wśród domowych użytkowników. Powodem jest tutaj możliwość emulacji Windows na Mac OS przez VMWare Fusion, co przy rosnącej popularności samych maków, może zwiększyć potrzebę korzystania z „brakujących” aplikacji na wirtualnych maszynach.

Co można z tym zrobić, jeśli nie ma wystarczającej wydajności?

Oczywiście, oszukiwać w grach online. Nie żartuję, można sobie spokojnie wejść z dwóch (albo więcej) komputerów na raz i grać przeciwko samemu sobie. Wynik chyba każdy może przewidzieć… Oprócz tego, jest wiele subtelniejszych sposobów, bezużytecznych poza czystą zabawą. Można wyszukiwać gry na raz z jednego komputera i grać przekazując sobie zasoby (możliwe w Warcraft 3 przy pomocy automatów), albo sabotować przeciwną drużynę. W szczególności takie rzeczy można łatwo wykonać na serwerach pvpgn nie wymagających klucza, lub na Garenie (szczerze mówiąc nie sprawdzałem, ale w teorii powinno być to możliwe – może się też okazać, że Garena nie działa na wirtualnych maszynach). Oczywiście do gry na Battle.Net potrzebne są dodatkowe klucze. Jeśli je masz, to już droga do utworzenia swojego klanu bez spamowania Pol-1 stoi przed tobą otworem.

Oczywiście w innych grach, na przykład opartych na przeglądarkach internetowych, otwierają się znacznie szersze możliwości nadużyć.  Wszystkie wirtualne komputery wychodzą jednak przez pojedyncze zewnętrzne IP, wykrycie ich jest więc stosunkowo łatwe. Niezbyt wielka przewaga ponad korzystaniem z wielu przeglądarek, ale już znacznie trudniejsze do odróżnienia jeśli jesteśmy w dużej sieci lokalnej.

W grach FPS oczywiście najbardziej kuszące jest wpuszczenie „kreta”, samobójczego wysłannika allaha, do przeciwnej drużyny. Niestety tak jak poprzednio – Kick przy pomocy adresu IP będzie dotyczyć również „oryginalnego” gracza. Jak wyżej, jeśli należysz do dużego LANu, sprawa ma się inaczej.

Pomysłów jak widać jest trochę, a część oczywiście zachowałem dla siebie.

Z nieco mniej złośliwych pomysłów, wirtualne maszyny mogą zostać użyte do instalacji inwazyjnego oprogramowania, na wzór virtual appliances, o których wspominałem wcześniej. Na przykład takiego, które na co dzień się nie przydaje, a zmienia jakieś fragmenty interfejsu, podmienia systemowe biblioteki i do tego ciężko się instaluje.

Webmaster może instalować różne wersje przeglądarek bez problemu wzajemnego konfliktu lub konieczności odinstalowania starszych wersji. Podobnie można robić oczywiście z innymi programami.


Replays.pl w wirtualnej maszynie kontrolującej system Windows 7 Beta. Niestety w becie nie da się jeszcze uruchomić Warcraft III pod wirtualnym systemem, sterownik grafiki najwyraźniej nie jest w 100% kompatybilny, mimo że sam Windows 7 ma w założeniu przyjmować sterowniki dla Windows Vista.

Ja używam VMWare w domu do obsługi skanera, który sterowniki ma tylko pod Windows 9x i Linuksa.

VMWare

Niestety VMWare Workstation kosztuje ~200$, czyli kilkaset PLN. Jest kilka darmowych produktów: VMWare Player i VMWare Server. Wbrew nazwie, to Server jest bardziej użyteczny. Player pozwala na uruchamianie wirtualnych maszyn, ale nie zezwala na ich tworzenie! Można powiedzieć, że to taki Acrobat Reader wirtualizacji. Sever pozwala na tworzenie obrazów, co jest wymagane, jeśli chcemy sami skonfigurować swój system.

Jest też cała masa innych produktów, wewnątrz samej firmy VMWare, a także innych producentów. Bardzo łatwo się w tym pogubić, ale na PC do emulacji Windows liczy się głównie VMWare, trochę microsoftowe VirtualPC oraz przyszłościowy Hyper-V.

Podsumowanie: wady i zalety

Wirtualizacja grafiki jest na razie na zbyt słabym poziomie, żeby grać komfortowo, na przykład zastępując wine pod Linuksem. Można się jednak spodziewać, że nie wydajność była obecnie priorytetem, i powoli będzie to ulegać zmianie. Na pewno taki drogi produkt nie ma służyć przeciętnemu Kowalskiemu, szczególnie jeśli weźmiemy pod uwagę, że potrzebna jest dodatkowa licencja do korzystania z systemu operacyjnego wewnątrz wirtualnej maszyny. Nie można więc legalnie, za darmo, postawić sobie ani jednego wirtualnego komputera z Windows.

Darmowe VMWare Player nie posiada obsługi DirectX 9 i shaderów. Darmowe VMWare Server również, co razem z brakiem wsparcia dla przeciągania i upuszczania powoduje, że „domowo” nadaje się tylko do utworzenia obrazu wirtualnej maszyny. Żeby nie było zbyt łatwo, zainstalowanie dwóch różnych produktów do wirtualizacji na jednym komputerze jest niemożliwe (pewnie głównie ze względów kompatybilności, ale może to tylko złośliwość producenta). Na pewno tych rzeczy bardzo brakuje, i jeśli zostaną gdzieś dodane, to prędzej do VMWare Player niż Server. Ten drugi chyba się uwstecznił, bo o ile udawało mi się na wersji 1.x uzyskać czarny obraz przy uruchamianiu aplikacji DirectX 8 (a niektóre normalnie chodzą), to w wersji 2.x nie ma nawet tego.

VMWare Server 2.0 – Warcraft nie przechodzi fazy inicjowania DirectX. Tak samo jest pod wersją Player.
 
Na pewno popularny stanie się VMWare Fusion, który pozwala korzystać z Windows na komputerze firmy Apple. Wprawdzie konkuruje z kilkoma innymi rozwiązaniami, ale wydaje się z nich najbardziej rozbudowany.

Wirtualna maszyna jest przede wszystkim fajną zabawką. Idealne rozwiązanie dla kogoś z wyobraźnią, szukającego zastosowania dla wielordzeniowego i wielogigabajtowego komputera. Obecnie istnieje możliwość ściągnięcia i uruchomienia publicznej bety Windows 7 na VMWare Server 2.0. Polecam jednak mniej cierpliwym ściągnięcie starszej (1.x) wersji Server, ze względu na łatwiejszy interfejs, lub zapisanie się na 30-dniowy okres próbny do wersji Workstation, która jak wspominałem w artykule, jest jedyną bezproblemową wersją z wszystkimi funkcjami potrzebnymi na desktopie – w szczególności przeciąganie i upuszczanie oraz DirectX 9.

Zamieścił: pyton, dnia: 21:32:10, Friday 16. January 2009

Komentarze:

1: BLIZZARD, です
[14:52:55, Monday 19. January 2009] , Zgłoś do moderacji
extra artykul :)
przyda sie :)

[00:30:30, Tuesday 20. January 2009] 1 , Zgłoś do moderacji

3: pyton, Support
[10:12:46, Tuesday 20. January 2009] , Zgłoś do moderacji

[14:33:56, Tuesday 20. January 2009]
no dobra ale po co mi ta wirtualizacja?:|

// zaktualizowany przez bochu dnia 20.01.2009 - 14:34

[16:37:07, Tuesday 20. January 2009] , Zgłoś do moderacji

6: pyton, Support
[17:01:05, Tuesday 20. January 2009] 1 , Zgłoś do moderacji

[15:42:40, Friday 27. February 2009] 1 , Zgłoś do moderacji

Więcej?

Chcesz znaleźć informacje na konkretny temat? Przejrzyj hasła, których najczęściej dotyczą dodane ostatnio nowości! WC3L, TURNIEJ, WCG, NETWARS, LCW, WORLD CYBER GAMES, TERROR, DOTA, GRUBBY, MYM, PALADYN, WYWIAD, REPPACK, WARCRAFT, BLIZZARD, MOON, PORADNIK, POL-TEAM, BIOT, POLSKA, ESL, KONKURS, LIGA, WORLD ELITE, FUZJA, NGL-ONE, ENC, NGL, TOD, TDEL, SPQR, SLH, MOUZ, PGS, TOUR, GFO, WILQ, BRONZE, KODE5, WILDA, PATCH, TEAM FIGHTING, LADDER, REPREZENTACJA, SILVER, HEADSHOT, EXTREME MASTERS, HEYAH, FLY100%, VOODOO, LYN, KUJA, BIOHAZARD-TEAM, BVG, WICKED, ESWC, ALMOST, TH000, ACIS, KWAKI, CYKLOP, SHOW, KLIMO, REPLAYPACK, INCUP, CLAN BASE, HOORAI, SASE, ELIMINACJE, FINAłY, FNATIC, POLTEAM, SHOWMATCH, WCG 2006, IEST, SRS, FINAł, CYBERSPORT, WE.EU, PLD, SKY, PRAE, REMIND, JAGR, CASIN, LAN, REPLAYS.PL, CHALLENGE, ANIMATOR, 2007, BATTLENET, CARMAC, HAPPY, NATIONS, STARCRAFT, PEDAL, KONKURSIWO, W3ARENA

Copyright © Wszelkie prawa zastrzeżone,
kopiowanie tylko za zgodą właściciela.
2003/2007 by: CyklOP, Muzami, Julas [ Mapa Strony ]
Replayów w bazie: 19538 Kont użytkowników: 11428

Pomysł, oskryptowanie, administracja: CyklOP [jak kupić zagraniczne akcje] [Jak wypełnić W-8BEN] [Jak tanio wymienić walutę] [deutschtests]
Design: Muzami, art w topie strony nadesłał Z4buZa
Skrypt obsługujacy replaye: Juliusz 'Julas' Gonera [ Replay Parser ]
Wykonano w czasie 0.48018312454224 sekund