Tydzień z grą Grand Theft Auto IV - RAGE: furia nowego silnika

mastermind
2008/12/04 19:15

Pionierskie czasy silników

Pionierskie czasy silników

Pionierskie czasy silników, Tydzień z grą Grand Theft Auto IV - RAGE: furia nowego silnika

Pierwsze części GTA nie zachwycały grafiką, choć mogły się podobać ze względu na otwartość dostępnego świata. Ekipie stojącej za GTA i GTA 2 wraz z dodatkami zależało przede wszystkim na tym, aby dać graczom możliwość eksploracji terenu oraz dowolnego wykonywania zadań. Nie bez znaczenia było również urządzanie demolki na ulicach kolejnych miast czy beztroskie pozbawianie kierowców ich aut. Jednak nie ma się co oszukiwać – rzut z góry, plus ciekawe, ale w gruncie rzeczy prosto zrealizowane automatyczne zbliżenia kamery nijak się miały do realizmu (chyba że mowa o realistycznym spojrzeniu gołębia na miasto z góry). Całość hulała w oparciu o technologię Glide i biblioteki Direct X 5 (lub 6.1 w wypadku "dwójki"), które były wprawdzie wówczas na topie, ale z dzisiejszej perspektywy wywołują jedynie uśmiech politowania. Nie dziwi więc, że kiedy programiści przystępowali do prac nad trzecią odsłoną cyklu, pomyśleli o innym narzędziu, które całkowicie odmieniłoby postrzeganie rzeczywistości przez użytkowników gry.

Ponieważ w zasadzie od późnych lat '70, kiedy to mieliśmy do czynienia z grafiką wektorową, a więc od czasów niemal pionierskich dla komputerów osobistych, pojęcie silników graficznych (graphics engines) funkcjonowało już i było silnie obecne w branży, nie dziwi również inna praktyka. Otóż kiedy gry zaczęły zyskiwać z czasem na popularności, a terminy ich produkcji ulegały z roku na rok skróceniu, pojawiały się wyspecjalizowane firmy lub studia, które projektowały owe silniki. Jednym z pierwszych tego typu projektów był silnik Freescape stworzony w 1986 roku przez Incentive Software (co ciekawe, na PC i... ośmiobitową maszynę ZX Spectrum, wielce kiedyś w Polsce popularną). To na nim powstało kilka tytułów, których dziś pewnie nikt już nie pamięta (m.in. Driller, Dark Side, Total Eclipse czy Total Eclipse II: The Sphinx Jinx). No dobrze, ale czym w gruncie rzeczy jest taki "silnik"? Bardzo rzecz upraszczając (a w zasadzie kompletnie trywializując), silnik to jakby szkielet gry i jej podstawa. Jest to zestaw procedur i programistycznych funkcji albo – opisując szerzej – podsystemów, które w przypadku silnika graficznego są odpowiedzialne za generowanie obrazu. Przekładając techniczne sformułowania na bardziej praktyczny wymiar, można powiedzieć, że dzięki takim, a nie innym założeniom i zaimplementowanym w silnik funkcjom świat gry zostaje przedstawiony w jakiś konkretny sposób (np. widok z oczu bohatera albo zza pleców).

Wróćmy jednak do samego faktu coraz szerszej dystrybucji silników graficznych. Skupiając się tylko na tych komercyjnych (a warto wiedzieć, że istnieje cała grupa silników rozpowszechnianych darmowo, które również służą do produkcji gier), trzeba powiedzieć, że programistom o wiele łatwiej jest implementować założenia swojej produkcji do takiego szkieletu (choć ma to oczywiście i swoje złe strony), niż od podstaw programować cały kod gry. Dlatego też nie zdziwi Was zapewne fakt, że przystępując do prac nad kultowym pod wieloma względami GTA 3, szefostwo firmy Rockstar North zdecydowało się zakupić dostępną na rynku technologię. Wybór padł na RenderWare (RW) studia Criterion Software, podówczas części koncernu kojarzonego głównie z fotografią, a mianowicie – Canon. RenderWare (RW) i GTA 3

Żeby było zabawniej, silnik powstał około 1996 roku, a pierwsza produkcja, jaką napędzał, nosiła dumne miano Scorched Planet. Wśród tych, którzy znają tę grę i pamiętają, fakt ten może budzić zdziwienie, wszak porównania jej z serią GTA 3 byłyby raczej nie na miejscu. Jak w takim razie udało się Rockstar North zbudować tak realistyczny świat na silniku napędzającym pierwotnie grę futurystyczną o grafice kolorowej jak tęcza? Ano wszystko za sprawą kolejnych implementacji i zmian, jakim Criterion Software poddawało przez lata swoje dzieło. W ich efekcie w 2001 roku RenderWare (RW) było już narzędziem bardzo kompleksowym i zarazem przyjaznym twórcom gier. Świadczy o tym chociażby fakt, że do roku 2001 zostało użyte w zaledwie kilku produkcjach (np. Burnout), a po premierze GTA 3, który pokazał, co można z niego wycisnąć, w niemal niezliczonej liczbie hitów (np. Manhunt, serii Tony Hawk's Pro Skater od trzeciej części w górę, The Sims 3, The Movies, The Settlers: Rise of an Empire, Total Overdose i wielu innych).

Środowisko sygnowane logiem Criterion Software na skutek rozwoju było już w XXI wieku na tyle elastyczne, że oferowało m.in. zaawansowane przekształcenia geometryczne obiektów oraz kontrolowaną pracę kamery, różnorodne oświetlenie scen (punktowe, kierunkowe itp.), efektowne rozmycia, dyfuzje oraz spektakularny system odbić świetlnych, który programiści mogli wykorzystywać do budowania nastroju swoich scen. Wszystkie te atrakcje można było podziwiać właśnie w GTA 3, która to gra pod względem graficznym stała w dniu swej premiery na wysokim poziomie.

GTA 4 wpada w FURIĘ

Jednakże wraz z rozpoczęciem prac nad GTA IV przesądzone było, że Rockstar Games musi sięgnąć po coś innego i znacznie bardziej zaawansowanego. Wszak czas mija nieubłaganie. Wówczas na rynku silników istniała już bardzo mocna i uznana konkurencja z takimi potężnymi graczami, jak Unreal Engine 3 (napędzał m.in. Gears of War, BioShock czy Unreal Tournament 3), CryEngine 2 (m.in. FarCry) czy Source (Half Life 2). Zresztą wykorzystanie RenderWare (RW) i tak nie wchodziło w grę, bowiem Criterion Software zostało wykupione przez Electronic Arts w 2004 roku, a prace nad rozwojem RenderWare (RW) zostały wstrzymane. Z potrzeby chwili narodził się silnik RAGE (Furia), jedno z najbardziej zaawansowanych obecnie narzędzi technologicznych wykorzystywanych przy produkcji gier. Wcześniej – niejako testowo – został on użyty w grze Rockstar Games Presents Table Tennis, gdzie wiernie oddawał zachowanie graczy przy pingpongowym stole. W sumie na RAGE składa się kilka rozbudowanych elementów, których podstawę stanowi opracowany w Rockstar San Diego system AGE. Na niego składają się z kolei: system odpowiadający za renderowanie ramek, silniki fizyczny gry oraz ten odpowiedzialny za animację postaci (tu akurat programiści posłużyli się zewnętrznym silnikiem wspierającym animację zwanym Euphoria). Osobnym elementem jest jeszcze dodatkowo silnik audio, który generuje wartości dla kart muzycznych. Jak ocenia jeden z dyrektorów technicznych Rockstar North, Adam Fowler, zastosowanie przygotowanego od pierwszej linijki kodu silnika przekłada się na większą wydajność pracy oraz o wiele lepsze funkcjonowanie całości.

Jako przykład Fowler podaje ciągłe ładowanie i opróżnianie pamięci z dynamicznie zmieniających się na ekranie elementów. W GTA IV sytuacja taka ma miejsce w każdym ułamku sekundy, podróżujemy przecież przez pełen szczegółów świat. Dlatego właśnie pamięć peceta musi wykonać niewyobrażalną wręcz pracę, aby bez przestojów podać do karty graficznej wymagane dane. Przy słabej implementacji kodu mogłoby się to odbywać z widocznymi i psującymi przyjemność z zabawy "zaciachami", a to za sprawą dużej fragmentacji tejże pamięci. Tymczasem "rysowanie ramek" i poziom animacji miały być w GTA IV płynne niczym bezołowiowa na stacji paliw (rzeczywistość, przynajmniej ta pecetowa, zweryfikowała te przechwałki – aby GTA IV hulało jak należy, potrzebna jest prawdziwa rakieta).

Zastosowanie własnego silnika miało dla programistów jeszcze ten atut, że dawało się z nim zrobić dosłownie wszystko. W przypadku gotowego produktu producent zapewnia oczywiście jego wsparcie techniczne, ale wiadomo, że w epoce, w której na produkcję skomplikowanych gier jest stosunkowo mało czasu, liczą się sekundy. Na implementację wszystkich własnych rozwiązań w gotowym silniku może również nie zezwalać licencja lub po prostu... może to być niemożliwe. Tymczasem w przypadku RAGE jego twórcy, zatrudnieni przez Rockstar Games, byli zawsze pod ręką i jako współautorzy gry na bieżąco wprowadzali poprawki i usprawnienia do jej szkieletu. Jak wspomina Fowler, było to ważne na każdym etapie produkcji, ale zwłaszcza pod koniec, gdy odkrywa się całą masę drobnych błędów, które można poprawiać niemal od ręki.

GramTV przedstawia:

Furię wspiera Euforia

RAGE to narzędzie zapewniające bardzo duży stopień realizmu. Programiści mogli w nim "poustawiać" dosłownie wszystko. Począwszy od zgodnego z rzeczywistością systemu prowadzenia pojazdów, który uwzględnia wagę auta, przyczepność oraz trakcję kół, aż po realistyczne odwzorowanie zmiennych warunków pogodowych. Niesamowicie prezentuje się również w GTA IV woda, a także zachowanie na niej łodzi, które otrzymały własną wyporność i poruszają się zmiennie w zależności od ilości osób, które się na nich znajdą, a także miejsca, w jakim w danym momencie stoją.

Kolejny element, który z pewnością zachwyci każdego gracza, a na który kolosalny wpływ ma oczywiście jakość i elastyczność silnika RAGE, to wybuchy. Trzeba sobie bowiem uświadomić, że eksplozja to bardzo złożony proces. Najpierw w jakiś element (dajmy na to samochód) uderza pocisk. Już to może powodować określone skutki, jeśli będzie to np. pocisk dużego kalibru. Jeśli na skutek strzału dochodzi do eksplozji, do akcji włączają się prawa fizyki – chociażby takie jak trajektoria lotu. Eksplodujący pojazd rozpada się na mniejsze kawałki, które zachowują się różnie w zależności od wagi, a także kierunku opadania. Ale to przecież nie koniec. Niektóre elementy mogą bowiem upaść na inne, odbić się od nich, rozbić je (np. szybę) lub wręcz spowodować kolejną minieksplozję. I za ten cały złożony teatr działań odpowiadają właśnie kolejne procedury silnika RAGE.

Wspomnieliśmy o animacjach i wykorzystanym do ich realizacji silniku Euphoria. Istotnie – ten element został zintegrowany z narzędziami wyprodukowanymi przez Rockstar. W tym wypadku autorzy gry woleli posłużyć się gotowym rozwiązaniem, a jego implementacja okazała się jedną z najlepszych decyzji, jakie powzięli na etapie produkcji. Animacje w GTA 4 są bowiem RE-WE-LA-CYJ-NE! Wyprodukowane przez firmę NaturalMotion oprogramowanie do tworzenia zaawansowanych animacji opiera się na technologii Dynamic Motion Synthesis. Oznacza to, że w odróżnieniu od innych, konkurencyjnych silników dokonuje obliczeń potrzebnych do wygenerowania animacji w locie, a nie z wcześniej predefiniowanych danych. Euphoria generuje ruch postaci na podstawie pełnowymiarowych obiektów 3D (ludzie), dokonując przekształceń uwzględniających wagę wirtualnego ciała, wzrost oraz rozłożenie mięśni.

A jaki ma to skutek praktyczny? Ano taki, że animacje nie są do końca ustandaryzowane! Inaczej pisząc, wykonując tę samą czynność, możemy ujrzeć bohatera robiącego różne ruchy! Powiemy Wam, uchylając nieco rąbka tajemnicy ze zbliżającej się recenzji, że ta technologia rzeczywiście robi wrażenie. Ruchy postaci są zbliżone do naturalnych, Nico chodząc rusza głową i szyją (!), mówiące postaci pokazują język i żywo gestykulują. Na resztę wrażeń będziecie jednak musieli poczekać do recenzji. Warto jednak zapamiętać, że RAGE i Euphoria sprawdzają się w nowej produkcji ze znaczkiem R* znakomicie, mimo że aby oglądać grę w pełnej krasie, potrzebne są jednak bardzo wydajne maszyny. Ale do tego jeszcze wrócimy.

Komentarze
43
Usunięty
Usunięty
14/12/2008 23:46

Wystarczyłoby że wzieliby silnik z CoDa 4 lub Unreal Engine 3,które są wręcz doskonałe,dobra optymilizacja itd.,Cry Engine 2 nie pasowałby bo ten silnik jest do gier dziejących się w afryce(ogień,promienie słońca,a nawet jungla) po prostu by nie pasował ;P,a oni jeszcze wymyślili jakiś RAGE który nie ma optymilizacji na PCtach

Usunięty
Usunięty
10/12/2008 12:18

artykuł bardzo ciekawy chociaż szczerze mówiąc mógłbym go jeszcze poczytać i poczytać... przeczytać ze 4 strony więcej :D

Usunięty
Usunięty
10/12/2008 11:18

Seria GTA nigdy nie miała kto wie jakiej grafiki, ale to nie grafika się liczy. Kurczę, nie mogę się doczekać, dzisiaj ma przyjść paczka z GTA 4...




Trwa Wczytywanie