W pogoni za kinem

W ciągu ostatnich lat jakość obrazu w grach komputerowych znacznie się poprawiła, wciąż jednak daleko jej do fotorealizmu oglądanego w kinie. Najprawdopodobniej wkrótce się to zmieni.

W ciągu ostatnich lat jakość obrazu w grach komputerowych znacznie się poprawiła, wciąż jednak daleko jej do fotorealizmu oglądanego w kinie. Najprawdopodobniej wkrótce się to zmieni.

Obecnie granice między tradycyjnymi i nowymi mediami zacierają się. Serwisy internetowe oraz elektroniczne wersje czasopism, których papierowe pierwowzory są dystrybuowane z płytami CD i DVD, łączą elementy zarezerwowane dotychczas oddzielnie dla prasy, radia, telewizji i kina. Nie inaczej jest z grami komputerowymi: w ciągu ostatnich kilku lat urosły do roli kolejnego środka przekazu, coraz lepiej łączącego interaktywność wirtualnej rzeczywistości z książką, kinem i telewizją. Średni wiek amerykańskiego gracza to prawie 30 lat, a obroty całej branży gier wideo od kilku lat przekraczają wyniki osiągane przez przemysł filmowy, charakteryzując się przy tym wciąż niezłą dynamiką wzrostu. Nikt już nie traktuje graczy z przymrużeniem oka, a grania jako rozrywki dla małolatów. Gry stanowią obecnie duży i atrakcyjny rynek dla producentów zarówno sprzętu, jak i oprogramowania.

Przez długi czas postaci w grach były przedstawione jako dwuwymiarowe sprajty. Grafika z gry "Duke Nukem 3D".

Przez długi czas postaci w grach były przedstawione jako dwuwymiarowe sprajty. Grafika z gry "Duke Nukem 3D".

Niewiele produktów starzeje się szybciej od komputerów domowych i gier, ale też niewiele szybciej się rozwija. Lepszy sprzęt prowokuje do tworzenia coraz bardziej złożonych światów, te zaś wymagają coraz lepszego sprzętu - koło się zamyka ku uciesze producentów gier i podzespołów komputerowych. Gracze także nie sprawiają wrażenia zmartwionych. Dynamika rynku stawia jednak twórców gier przed nowymi wyzwaniami. Niezwykle ciężko pracuje się nad coraz bardziej złożonymi projektami, gdy zewnętrzne środowisko gry podlega intensywnym zmianom, a z taką sytuacją mamy do czynienia zwłaszcza w przypadku układów graficznych klasy podstawowej oraz technologii sieciowych. Dodatkowo równolegle ze złożonością wirtualnych światów rośnie liczebność zespołów pracujących nad grami. W połowie lat osiemdziesiątych wiele tytułów miało jednego twórcę, który był odpowiedzialny za programowanie, grafikę, dźwięk i projekt. Obecnie sam zespół grafików liczy od kilku do kilkunastu osób. Adrian Chmielarz, szef polskiej firmy People Can Fly, której dziełem jest popularna strzelanka 3D "Painkiller", szacuje, że w przedsięwzięcie zaangażowanych jest około czterdziestu osób, a mówimy przecież o grze stosunkowo prostej pod względem fabularnym. Wzrastająca złożoność kreowanych światów automatycznie zmusza do powiększania zespołów autorskich. Jest to dość prosta reakcja na stopień skomplikowania problemu, która jednak bardzo zwiększa koszty - wystarczy pamiętać, że przeciętną grę przygotowuje się obecnie dwa-trzy lata. Budżet wspomnianego "Painkillera" wynosił około 1,5 miliona dolarów, ale sporo tytułów (zwłaszcza gier internetowych nastawionych na miesięczny abonament i przewidzianych na lata, jak np. "Star War Galaxies") ma wielokrotnie większy.

Przy tej skali złożoności opieranie się na powszechnie dostępnych narzędziach w rodzaju bibliotek DirectX czy OpenGL nie wystarcza. Już w pierwszej połowie lat 90. pojawiły się pierwsze tzw. silniki gier. Termin ten oznacza zwykle zespół wyspecjalizowanych funkcji, bibliotek i narzędzi niezbędnych do zbudowania świata gry, a tworzących w istocie interfejs programowy znajdujący się ponad poziomem popularnych bibliotek w rodzaju DirectX czy OpenGL.

Pierwsza popularna gra 3D na pecety, "Wolfenstein 3D", zdecydowanie nie miała nic wspólnego z fotorealizmem.

Pierwsza popularna gra 3D na pecety, "Wolfenstein 3D", zdecydowanie nie miała nic wspólnego z fotorealizmem.

Termin "silnik gry" upowszechnił się wraz z ekspansją pierwszych gier 3D, którymi z uwagi na względną prostotę świata były początkowo strzelanki w rodzaju "Wolfensteina", "Dooma" (DOOM Engine) i "Duke Nukem 3D" (Build Engine). Przed rokiem 1996 na rynku nie było kart graficznych ze wspomaganiem grafiki 3D, dlatego silniki wykorzystywały renderowanie programowe, a postaci i mobilne obiekty w grze były przedstawiane zazwyczaj za pomocą dwuwymiarowych tzw. sprajtów (sprite). Przełom nastąpił właśnie w 1996 roku, kiedy na rynek trafiły karty z procesorem 3D ViRGE. W ciągu kilku lat pojawiły się dwie przebojowe gry wykorzystujące sprzętowe wspomaganie 3D: "Quake" i "Unreal". Silniki do nich opracowane szybko zostały wykorzystane w kolejnych produktach. Dobrym przykładem jest tu silnik gry "Half Life", będący w rzeczywistości zmodyfikowaną wersją silnika "Quake'a". Pod względem możliwości graficznych silniki te obecnie nie zachwycają: w zasadzie oferowały jedynie możliwość operowania na teksturowanych ściankach. Kolejny etap ewolucji związany był z rozbudową o takie efekty, jak mgła, cząsteczki, efekty oświetleniowe, fizyczne podstawy ruchu postaci i pojazdów. W tej grupie podkreślić należy znaczenie silników Torque (mapy przedstawiające nieograniczone przestrzennie tereny zewnętrzne, znakomita fizyka pojazdów), Max Payne (m.in. znane z kinowego Matriksa efekty zwolnienia czasu, tzw. time slice lub flowmotion) oraz nową wersję silnika Unreal 2 Engine, wprowadzającą po raz pierwszy interaktywne łańcuchy kinematyki odwrotnej, pozwalające przeliczać zachowanie szkieletów animacyjnych postaci w czasie rzeczywistym ("Unreal Tournament 2003"). W 2004 roku pojawił się na razie tylko jeden silnik godny uwagi: CryENGINE napędzający strzelankę "Far Cry". Jest zwiastunem nowej generacji silników, pod względem graficznym intensywnie korzystających z szaderów pikselowych i wierzchołkowych, map wgłębień i stosunkowo zaawansowanego oświetlenia. Ich charakterystyczną cechą jest coraz lepsze odwzorowanie świata zewnętrznego: rozległych przestrzeni obficie porośniętych roślinnością, zawierających jeziora i morza oraz pozwalających na płynne przejście do wnętrz budynków. Rok 2004 zapowiada się przy tym całkiem nieźle, gdyż będziemy (prawdopodobnie...) świadkami premier przynajmniej kilku tytułów, których silniki można nazwać rewolucyjnymi. Mowa, naturalnie, o "Doom 3", "Half Life 2" i "S.T.A.L.K.E.R".

Współcześnie termin "silnik gry" daleko wykracza poza zagadnienia graficzne. Nowoczesny silnik gry oferuje możliwość implementacji na wielu platformach sprzętowych pracujących pod kontrolą różnych systemów operacyjnych. Wbudowany język skryptowy z kompilatorem ułatwia pracę nad grą, pozwala także samym graczom na łatwe tworzenie rozszerzeń i modyfikacji, tzw. modów. W obszarze zastosowań graficznych musi zapewniać możliwość wymiany danych ze standardowymi pakietami graficznymi w rodzaju 3ds max czy Maya, często zawiera oprogramowanie animacyjne. Specjalistyczne, narzędzia edycyjne wysokiego poziomu pozwalają na szybkie konstruowanie map (zarówno obszarów zewnętrznych, jak i wnętrz). Za ostateczną formę wizualną odpowiada moduł renderujący, często mylnie utożsamiany z całym silnikiem, podczas gdy w rzeczywistości stanowi jedynie jego część. Coraz częściej w silniku można wyróżnić odrębne moduły odpowiedzialne za poszczególne efekty, np. systemy cząsteczkowe, symulowanie wody, generowanie roślinności czy relatywnie zaawansowane zjawiska fizyczne.

Edytor GUI ułatwia prace nad wyglądem interfejsu graficznego gry. W przypadku gier sieciowych nieodzownym elementem silnika jest kod sieciowy, zapewniający stabilną wymianę danych o wydarzeniach w świecie gry między serwerem a klientami podczas transmisji internetowej. Jest to szczególnie istotne w aspekcie detekcji kolizji, gdyż dyskretny charakter transmisji internetowej może prowadzić do tzw. tunelowania: różnica położenia szybko przemieszczającego się obiektu (pojazdu, pocisku) w dwóch kolejnych pakietach może być tak duża, że oprogramowanie nie zauważy innej bryły znajdującej się na drodze obiektu, np. ściany lub postaci, niezbędne są więc odpowiednie narzędzia interpolacyjne. Odrębną grupę stanowią funkcje i narzędzia odpowiedzialne za tzw. sztuczną inteligencję postaci kierowanych przez komputer (Non-Player Characters, NPC).

Naturalnie nie każdy silnik musi zawierać wszystkie wymienione wyżej elementy. Te, które koncentrują się głównie na zagadnieniach związanych z generowaniem scen 3D, takie jak Genesis3D ( http://www.genesis3d.com/ ) czy Irrlicht ( http://irrlicht.sourceforge.net/ ), nazywane są silnikami 3D. Natomiast w związku z coraz większą złożonością zagadnień, z jakimi musi uporać się silnik współczesnej gry, powstają nowego typu wyspecjalizowane silniki, niekiedy określane mianem middleware. Przykładami tego typu pakietów są omówiony dalej SpeedTree, odpowiedzialny za generowanie roślinności, oraz Havok, zajmujący się symulacjami fizycznymi. Przyjrzyjmy się zatem silnikom, które są lub wkrótce zostaną wprowadzone na rynek.

Torque

Torque w akcji - grafika z gry "Tribes 2". Obok przedstawiono niektóre z możliwości Torque Shader Engine: refrakcję liczoną dla pikseli, animowanie proceduralnych tekstur, odbicia i poświatę w czasie rzeczywistym.

Torque w akcji - grafika z gry "Tribes 2". Obok przedstawiono niektóre z możliwości Torque Shader Engine: refrakcję liczoną dla pikseli, animowanie proceduralnych tekstur, odbicia i poświatę w czasie rzeczywistym.

Torque zasłynął z chwilą wprowadzenia przez Sierrę na rynek strzelanki internetowej "Tribes 2". Obecnie jest oferowany przez niezależną firmę Garage Games ( http://www.garagegames.com/ ) w cenie zaledwie 100 dolarów. Licencja na nowszą wersję silnika, Torque Shader Engine (TSE), kosztuje 999 dolarów, a przy pewnych ograniczeniach licencyjnych możliwe jest nabycie TSE za 250 dolarów.

Cechą charakterystyczną TSE jest możliwość generowania nieskończonych map, budowanych metodą powielania modułu zdefiniowanego przez grafika. Wersja TSE ma w stosunku do pierwowzoru całkowicie przerobiony moduł graficzny, obecnie zgodny z DirectX 9 oraz przygotowany do implementacji mających niebawem nastąpić zmian w OpenGL. Szadery są generowane proceduralnie, współpracując z takimi efektami, jak dynamiczne oświetlenie, mapy głębień, poświata, mgła, odblaski, refrakcja, animowane tekstury UV. System materiałów, pracujący z obiektami o dowolnym typie (teren, budynek, postać), dopasowuje szadery do sprzętu, pozwalając uzyskiwać materiały wieloprzebiegowe także na słabszych komputerach.


Zobacz również