Konsole hamują rynek gier na PC? Ejże…
Zarówno Xbox One, jak i PlayStation 4, są nieco inne od swoich poprzedników. Przypominają swoją architekturą bowiem komputery PC. A to wielka gratka dla deweloperów, którzy mogą wydać więcej pieniędzy na ulepszanie samej gry, zamiast na pisanie jej od nowa.
Do tej pory, zarówno PlayStation jak i Xbox bardzo różniły się od komputerów PC z powodu zastosowania nietypowych rozwiązań sprzętowych. Microsoft i Sony kombinowały z procesorami PowerPC i Cell, co miało wiele konsekwencji. Po pierwsze, procesory te zostały wybrane jako takie, które lepiej się nadają do radzenia sobie z bardzo złożonymi przeliczaniami dotyczącymi oprawy graficznej, co niewątpliwe działało na korzyść konsol.
To jednak oznaczało, że tworzenie gier multiplatformowych stawało się bardzo trudne. Można było korzystać z gotowych, ale drogich engine’ów do gier (a i tak jeszcze potem deweloperów czekało wiele pracy jeśli chodzi o optymalizację), albo dłubać samemu kilka wersji kodu źródłowego gry. Co więcej, owe układy scalone były na tyle nowe i nietypowe, że ten sam engine gry był tworzony dwa lata na procesory Cell i… pół roku na układy x86.
Tym razem sytuacja wygląda zupełnie inaczej. Po pierwsze, obie konsole wykorzystują standard x86 w swoim procesorze głównym, dokładnie taki sam, jaki jest stosowany w komputerach osobistych. Na tym jednak nie koniec. Xbox One i PlayStation 4 posiadają również dokładnie taki sam, jeżeli chodzi o architekturę, procesor graficzny. Różnica polega tylko na innym rozłożeniu mocy obliczeniowej w obu konsolach, przy czym „surowa” moc obliczeniowa PlayStation 4 jest zdecydowanie wyższa. To dobra wiadomość dla deweloperów. Ale czy dla graczy?
GCN, czyli martwimy się tylko wydajnością
Konsole Sony i Microsoftu wykorzystują architekturę graficzną Graphics Core Next, czyli rozwiniętą RISC SIMD. To zupełnie nowe rozwiązanie, całkowicie zastępujące dotychczasową VLIW SIMD. Jej wadą jest konieczność zastosowania znacznie większej liczby tranzystorów przy produkcji układów graficznych, ale w zamian oferuje GPGPU, czyli, cytując Wikipedię, technikę, dzięki której GPU, zwykle zajmujący się tylko obliczeniami związanymi z grafiką komputerową, umożliwia wykonywanie obliczeń ogólnego przeznaczenia, tak jak CPU. Dzięki temu wiele obliczeń, głównie obliczenia równoległe, można przeprowadzić znacznie szybciej.
GCN to również obsługa adresowania x86 ze zunifikowaną, 64-bitową przestrzenią adresową dla procesorów GPU i CPU, znacznie wydajniejsze przetwarzanie tekstur, większa sprawność pracy i, co oczywiste, wsparcie dla ogólnie przyjętych standardów, takich jak DirectX, OpenGL, Video Codec Engine czy kodeki H.264 i AVC.
Jeden standard by rządzić wszystkimi
Okazuje się, że deweloper ma znacznie ułatwioną pracę przy pisaniu gier. Niestety, nie wszystko wygląda tak różowo, ale do tego przejdziemy za chwilę. Programista bowiem nie musi tworzyć zupełnie nowych kodów odpowiadających za działanie i mechanikę gry. To, co go interesuje, to wydajność maszyny docelowej. Jeżeli więc programista jest wyjątkowo leniwy, może wręcz założyć, że gra ma kilka poziomów szczegółowości renderowanego obrazu i, wyłączając nieco niuansów, może całkowicie odpuścić sobie problem odmiennej architektury konsol.
W efekcie jeżeli gra ma wyglądać oszałamiająco na komputerach najwyższej klasy, kosztujących chore pieniądze, nie trzeba już tworzyć zupełnie odmiennych mechanizmów. Dokładnie te same znajdują się bowiem na komputerach PC. Konsolowe wersje gier, w najbardziej „leniwym” scenariuszu dla dewelopera, to po prostu odpowiedniki wersji PC w trybie średniej lub niskiej szczegółowości obrazu.
Co więcej, AMD, a więc twórca GCN, stawia na otwartość. To oznacza, że z innowacji tej firmy mogą skorzystać również… konkurenci. To, czy to zrobią, to oczywiście jest nieco inny problem, ale rozwiązania tej firmy są dostępne zarówno na konsolach, jak i komputerach PC.
Przykłady? Służymy chętnie. Chociażby TressFX, dzięki czemu obiekty takie, jak włosy czy futra wirtualnych postaci wyglądają bardzo realistycznie bez konieczności zastosowania potężnej mocy obliczeniowej. TrueAudio, czyli technika generowania bardzo realistycznego dźwięku, którego pozycje można w łatwy sposób odczytać z układu GPU. Czy wreszcie DirectCompute, czyli praktyczne wykorzystanie wspomnianego wcześniej GPGPU, co w znaczący sposób urealistycznia symulację zjawisk fizycznych czy oświetlenia. Ciekawostką jest fakt, że zarówno Sony, jak i Microsoft, nie odblokowały w swoich konsolach API graficznego o nazwie Mantle, które ma pozwolić na łatwe wykorzystanie pełnej mocy obliczeniowej układów GPU. Microsoft początkowo miał je wprowadzić w konsolach Xbox One, ale najwyraźniej się z tego wycofał, by skupić się na promowaniu DirectX 12.
Warto jednak pamiętać o jednym: Mantle to nie tylko otwarte API, ale powstawało ono, między innymi, przy współpracy z Microsoftem. To oznacza, że zapowiadany przez Microsoft bezpośredni dostęp do mocy obliczeniowej układu graficznego w DirectX 12 to nic innego, jak wykorzystanie i zaimplementowanie pomysłów z Mantle. I tak jak Nvidia, Intel i cała reszta najprawdopodobniej nie skorzystają z zachęty AMD do opracowania sterowników dla ich układów graficznych obsługujących Mantle, tak z całą pewnością zrobią to w przypadku nowej wersji DirectX.
Z tą unifikacją to jednak nie tak do końca…
Deweloperzy mają więc faktycznie znacząco ułatwione zadanie. Ale to nie oznacza, że konsola do gier to średniej jakości PC. PlayStation 4 i Xbox One zachowują dotychczasowe zalety konsol. Jest nią sztywna specyfikacja sprzętowa i zawsze ta sama wersja oprogramowania zachowująca się dokładnie tak samo u każdego konsumenta. Na dodatek konsole nie są obciążone „bagażem”, jaki dają komputery PC. Nie mają dziesiątek usług do sieci, wirtualizacji, drukowania, dołączania do domen, i tak dalej. Na dodatek każda z firm stosuje własne, dodatkowe optymalizacje, takie jak układy DSP odciążające CPU od przeliczeń dźwięku (które korzystają z wyżej wspomnianego TrueAudio), chmurę obliczeniową pozwalającą na przeniesienie skomplikowanych ale mniej pilnych obliczeń całkowicie poza konsolę, i tak dalej, i tak dalej.
Co więcej, układ APU w obu konsolach został opracowany na zamówienie obu producentów konsol i dopasowany pod ich potrzeby. Dlatego też, tak jak oferuje zgodność z pecetowymi standardami, co w znacznym stopniu ułatwia „deweloperkę”, tak jego wnętrze kryje znacznie więcej niż jego pecetowe odpowiedniki. Co powoduje, że deweloperzy będą mogli wycisnąć jeszcze więcej mocy z konsol i co raz jeszcze udowadnia, że suche porównywanie specyfikacji PlayStation 4, Xboxa One i dowolnego desktopa do grania nie ma najmniejszego sensu. Te innowacje trafiają też powoli do komputerów PC, ale są już standardem w konsolach nowej generacji.
Owymi nowinkami są wynikające z HSA rozwiązania hQ i hUMA, które redukują problem różnicy wydajności pomiędzy CPU a GPU. Układy graficzne są znacznie wydajniejsze od jednostek centralnych, ale też są od nich uzależnione: to CPU wysyła do GPU instrukcje na temat kolejnych danych do przeliczeń.
Dzięki hUMA pamięć obu układów jest współdzielona, dzięki czemu oba mogą z niej odczytywać i zapisywać dane bez konieczności wzajemnego na siebie oczekiwania. Z kolei hQ zapewnia komunikację wszystkich procesorów na tym samym poziomie priorytetu. Ponadto zarówno procesor centralny, jak też układ graficzny będą mogły sobie nawzajem, bez pośrednictwa systemu operacyjnego, przekazywać dane. Teoretycznie, może to pozwolić na nawet 500-procentowy wzrost wydajności porównując do analogicznych układów bez tych rozwiązań. Póki co jednak mówi się o praktycznym 70-procentowym wzroście wydajności. Co, jakby nie patrzeć, jest nadal olbrzymią ilością zyskanej mocy obliczeniowej.
Te pomysły, jak już wspominaliśmy wyżej, trafiają już do komputerów PC, ale nie są jeszcze na nich tak powszechne. Co nie zmienia faktu, że za jakiś czas takimi będą, więc programiści nie muszą, ale już mogą je uwzględniać przy swoich produkcjach na nowe konsole i desktopy. Nie trzeba rozdzielać dwóch światów. Można, by uzyskać lepsze efekty i piękniejszą oprawę graficzną. Ale żadna z platform nie hamuje innej.
Konsole nie przeszkadzają w tworzeniu pięknych gier na PC i są wydajniejsze, niż wynika z suchych porównań tabelarycznych
Dlatego też deweloperzy z czasem nauczą się to wykorzystywać. Przypomnijmy sobie jak „biedną”, po latach na rynku, konfigurację sprzętową miały Xbox 360 czy PlayStation 3. Nie przeszkadzało im to w generowaniu pięknej oprawy graficznej w oszałamiających rozmachem światach w Skyrimie czy Grand Theft Auto. Crytek narzeka, że nowe konsole mają „tylko” 8 GB pamięci RAM. Wyżej wymienione gry doskonale sobie radziły na… 0,5 GB RAM. Dlatego też porównywanie konsol i komputerów PC jeden-do-jednego nie ma najmniejszego sensu. To nadal odmienne urządzenia i można z nich wycisnąć znacznie więcej przy tej samej konfiguracji sprzętowej, co w przypadku odpowiadającym im komputerom.
Pole do popisu, do daleko idących optymalizacji jest więc nadal. Porządny deweloper nadal powinien dopieścić swoją grę dla każdej platformy z osobna. Nie musi jednak tworzyć zupełnie nowych rozwiązań. Konsole nowej generacji przestały hamować rozwój gier na PC. Czy są lepszym rozwiązaniem dla gracza od porządnego desktopa, czy też gorszym, to zupełnie inna kwestia i wojna w tej sprawie między entuzjastami nie umilknie nigdy. Ale nowe gry, które zaczną wychodzić wkrótce, takie jak Wiedźmin 3: Dziki Gon, które już nie są projektowane również z myślą o starych konsolach, wyglądają i będą wyglądać obłędnie. A jeżeli nie… to nie dlatego, że istnieją konsole. A dlatego, że deweloper nie był w stanie wycisnąć wszystkiego z jednej i tej samej platformy.