piątek, 23 lutego 2018

Magiczne właściwości silnika graficznego są magiczne


Od kiedy zacząłem zajmować się grami (czyli od ponad ćwierć wieku) interesowało mnie, jak to wszystko właściwie działa. W głowie (ledwo piśmiennego) chłopca powstawała masa teorii, na temat tego, jakie siły działają na zbitki pikseli poruszające się na ekranie. Powiem szczerze, że gdy potem czytałem prasę fachową (tudzież "fachową"), niejednokrotnie zaskoczony byłem, jaką trafność miały moje dzikie skojarzenia (z drugiej strony zdarzało się też, że rzeczy wydające się oczywiste, okazywały się nieprawdziwe). W czasach 8-bitowej grafiki dwuwymiarowej wszystko było proste i przejrzyste. W połowie lat 90-tych na dobre upowszechniła się grafika trójwymiarowa, a wraz z nią cieniowanie, teksturowanie i cała masa kolejnych, bardzo interesujących rzeczy.

Przez kolejne lata interesowałem się każdym niusem na temat filtrowania dwuliniowego, trójliniowego, anizotropowego, że mgła liniowa, że wolumeryczna, że mapowanie takie, a potem jeszcze lepsze bo srakie... Jeszcze w pierwszych latach XXI wieku potrafiłem odgadnąć, na jakim silniku graficznym działa dany tytuł, patrząc tylko na screenszoty, bo każdy z tych silników we właściwy sobie sposób obliczał oświetlenie czy nawet w ogóle renderował obiekty.

Dobra, żeby nie było, że kreuję się na jakiegoś specjalistę... Z grubsza mam jakieś tam pojęcie na temat tego, o czym piszę (i też mam świadomość tego, że każdemu może się wydawać, że wie, kiedy naprawdę nie wie...ale ja wiem... przynajmniej to co wiem).

W roku 2007 obroniłem pracę magisterską na temat rozwoju grafiki w grach komputerowych i od tego czasu wciąż interesuję się wszelkimi nowinkami technicznymi dotyczącymi przerabiania impulsów w procesorach na piksele wyświetlane na ekranie. W sumie porównując postęp na tym polu w ciągu ostatniej dekady, do tego, czego świadkiem byłem od czasów dzieciństwa, to faktycznie jest to "praca" na ćwierć etatu (ot chociażby jedenaście lat po premierze Gears of War, wciąż powstają normalne, regularne, pełnopłatne i pełnowartościowe gry oparte na Unreal Engine 3!).


Okej, ale o czym jest właściwie ten post i co mnie tknęło do jego napisania?

Kilka dni temu jakiś branżowy dziennikarz zauważył, że Treyarch (studio odpowiedzialne za tegoroczną, nadchodzącą część Call of Duty) opublikował ogłoszenie o naborze na stanowisko inżyniera grafiki (czy jak to tam można dokładnie przełożyć "senior tools and graphics engineer"). W ten sposób pojawiły się nieproporcjonalnie nadmuchane niusy, zatytułowane "Black Ops 4 na nowym silniku graficznym" albo "Call of Duty zmienia silnik graficzny", co z kolei zaowocowało masą komentarzy od "znawców" którzy zaraz zaczęli wytykać, że najpopularniejsza seria strzelanek online wciąż działa na silniku Quake'a 3...

Jako że sam jestem najlepszym znawcą (silnik Quake'a znam, bo dwie dekady temu bawiłem się w robienie map i poziomów do Q2), a to jest mój osobisty blog, postanowiłem wtrącić swoje trzy grosze.


Podczas jednego z wykładów Chris Butcher (główny programista w Bungie) zauważył, że jedynym zupełnie nowym silnikiem graficznym użytym w XXI wieku do stworzenia wysokobudżetowej gry było to, co napędzało grę Alan Wake (klimatyczna, trzecioosobowa strzelanka z roku 2010 stworzona przez studio Remedy). Poza tym wszystko, co napędza obecnie "prawdziwe" gry, to w najlepszym razie przeróbki czegoś wcześniejszego.

Gdzieś tam w silniku napędzającym Gears of War 4 czy Battlefielda 1, wciąż tkwią linijki kodu wpisane w odległym, XX wieku (bo nawet uchodzący za nowoczesny, silnik Frostbite 3 wywodzi się w prostej linii z silnika Frostbite 1, który to był dzieckiem silnika Refractor użytego pierwszy raz w grze Codename Eagle z roku 1999). Czemu więc "przestarzałemu" silnikowi napędzającemu kolejne części Call of Duty obrywa się najbardziej?

Z logicznego punktu widzenia, co roku Activision wywala na produkcję kolejnych części CoDa dziesiątki i setki milionów dolarów, więc gdyby była technologia umożliwiająca stworzenie wydajniejszego/lepszego/dającego ładniejsze rezultaty kodu, to najpewniej zostałaby zaadoptowana. No i chodzi o to, że... tak się właśnie dzieje, a większość "znawców" i tak wie swoje.

Powiem zupełnie szczerze, że gdybym nie wiedział na jakich silnikach działają Gears of War 4 (w sensie GoW4 odpalany w multiplayerze z jego 60 klatkami), Wolfenstein 2 oraz CoD:WW2, to przy całej mojej wiedzy i artystycznej wrażliwości (wspominałem, że przy okazji studiów zrobiłem dyplom z malarstwa? ;)) grając w nie przysiągłbym, że działają na tym samym silniku. Wygląd obiektów, oświetlenia oraz ten bardzo specyficzny antyaliasing nałożony na dynamiczną rozdzielczość... No po prostu te gry wyglądają i działają bardzo, ale to bardzo podobnie na tym samym, architektonicznie zamkniętym sprzęcie (czyli konsolach).


Gears of War 4 to oczywiście Unreal Engine 4 (czyli prawnuk technologii napędzającej pierwszego Unreala czy Deus Ex) a Wolfenstein 2 to Id Tech 6 (czyli prawnuk Id Tech 3 napędzającego Quake 3), a na czym działa Call of Duty WW2?

Silnik WW2 jest zmodyfikowaną wersją tego, na czym działało Advanced Warfare (poprzedni CoD od Sledghammer Games), a to z kolei było mocno zmodyfikowaną wersją silnika IW 5.0 (na którym działało Modern Warfare 3), który był lekko zmodyfikowaną wersją IW 4.0 (Modern Warfare 2), który był lekko zmodyfikowaną wersją IW 3.0 (CoD4), który był mocno zmodyfikowaną wersją silnika z pierwszego Call of Duty, który to był zmodyfikowaną wersją Id Tech 3. Aby sobie uzmysłowić ewolucję tej technologii, można kolejno porównać obrazki z tego posta (jako że Quake 3 bardzo się od CoDa różni w warstwie artystycznej, to u samej góry wkleiłem screena z Return to Castle Wolfenstein działającego na lekko zmodyfikowanym Id Tech 3).

W ten sposób można powiedzieć, że silnik najnowszego CoDa oraz Id Tech 6 to dalecy kuzyni. Co więcej, jako że zarówno WW2 jak i Wolfenstein 2 miały podobne założenia (wyświetlanie grafiki w stałych, 60 klatkach przy dynamicznej rozdzielczości), a przy tym były zbliżone tematycznie (dosłownie, w obu przypadkach strzela się do nazioli), to siłą rzeczy wyszły gry wyglądające bardzo podobnie. Jednak wystarczy, że jakiś "znawca" wie, że Wolfenstein 2 działa na tym samym silniku, co niedawny Doom (gdzie mariaż technologii i warstwy artystycznej zdziałał cuda - zresztą jak zwykle u Id Software), aby zacząć zauważać wyraźne różnice na niekorzyść nowszych części CoDa.


No więc czemu to tak? Myślałem nad tym długo i wytrwale i doszedłem do paru wniosków.

Po pierwsze za ocenianie grafiki biorą się ludzie, którzy nie mają na jej temat pojęcia. Dobra, bo pojechałem... Chodzi o to, że porównują grę działającą w pełnych 60 klatkach do gier z 30fpsami (a różnica w nakładach procesorów graficznych na każdą klatkę wcale nie wzrasta wprost proporcjonalnie do ilości klatek i podobno gry operujące w 30fps mogą wyświetlić nawet 2.5 raza bardziej szczegółową grafikę), albo mylą ograniczenia technologiczne silnika, ze świadomymi założeniami twórców (bo w przypadku kompetytywnej strzelanki nawalenie efektów i przekombinowane oświetlenie wkurwia zamiast zadziwiać - dlatego, zwłaszcza w przypadku multiplayera twórcy celowo ograniczają widoczność efektów, które w kodzie silnika siedzą już od lat).

Po drugie silnik Call of Duty ewoluuje rok w rok, praktycznie na oczach graczy i przez to kolejne gry wydają się być brzydsze, niż w istocie są. Tutaj działa ten mechanizm, według którego poznane rzeczy nie wydają się tak atrakcyjne jak nowe i tajemnicze. Wychowywał się ktoś z siostrą? No to właśnie ludzie generalnie nie ruchają swoich sióstr - jako że wychowywaliśmy stale je widząc, to każda inna dziewczyna wydaje się ładniejsza.

Fakty są takie, że kolejne wersje silnika IW (obecnie oficjalnie rozdzielonego na trzy linie - od Infinity Ward, Treyarch oraz Sledgehammer) są mocno wyspecjalizowane. Ten silnik ma działać wyłącznie z Call of Duty i ma jak najsprawniej przetwarzać te dane, które są w kolejnych grach z serii wymagane. Dlatego też nie ma, pobudzających wyobraźnie mas, prezentacji nowych ficzersów - po prostu wydawane są nowe gry, pełne kolejnych, epickich, filmowych scen przewalających pierdylion nowych shaderów (których i tak nikt nie zauważy) oraz wyważonych pod kątem wodotrysków map multiplayerowych.

Wyobraźnię za to bardzo lubi pobudzać konkurencja...


Można powiedzieć, że w stosunku do Activision i CoDa, po przeciwnej stronie spektrum znajduje się Electronic Arts z ich własnym (autorstwa DICE) silnikiem Frostbite - który to obecnie ma napędzać wszystko od Battlefielda przez Need for Speed przez Mass Effecta, aż po FIFĘ. Problem w tym, że według przecieków praca na Frostbicie jest bardzo ciężka, o ile nie jest się DICE. Ktoś gdzieś powiedział że Mass Effect: Andromeda albo Battlefield: Hardline zachwycają stroną techniczną? Ano właśnie...

Czemu więc EA forsuje Frostbite do każdej produkcji? Po części właśnie dlatego, że silnik ten ma opinię bycia najbardziej zajebistym kodem ostatnich paru lat i samo jego użycie oznacza aprobatę "znawców" co się znają, bo wyczytali na wikipedii (przeczytajcie pierwszy akapit artykułu o IW engine i powiedzcie, że to pisał specjalista...).

Zresztą, gdy faktycznie to DICE zabiera się za robotę, to Frostbite rozkwita. W przypadku Battlefielda i Battlefronta założenia są w sumie bardzo podobne do tych, jakie przyświecają studiom odpowiedzialnym za CoDa - czyli o 60 klatek z dynamiczną rozdzielczością. Różnica jest taka, że o ile w CoDzie "od zawsze" królowało 60 klatek (kosztem szczegółowej grafiki), tak DICE wzięło się za temat od przeciwnej strony. Nikt nie zaprzeczy, że Battlefield 1 graficznie zadziwia(ł), jednak podczas gry na konsolach gra regularnie spada poniżej 60 klatek do poziomów, które w CoDowej rozgrywce byłyby niedopuszczalne...

...ale już w przypadku Battlefronta 2 udało się już uzyskać zadowalającą płynność (nie znaczy to, że gra, jako produkt, jest przez to lepsza!). Ciekawe, że niedługo po jego premierze gruchnęła wiadomość, że Infinity Ward otwiera w Krakowie oddział dedykowany wyłącznie rozwojowi technologii...

Dobra, bo odbiegam. Morał tego posta jest taki: ludzie, gracie w gry, a nie w silniki! Dorośnijcie kurwa, bo za każdym razem gdy piszecie głupi komentarz na necie, czynicie świat bardziej zaśmieconym i po prostu gorszym.

Brak komentarzy:

Prześlij komentarz