Polecamy Recenzje Przed premierą Publicystyka Warto zagrać Artykuły PREMIUM
Publicystyka 20 kwietnia 2005, 08:27

autor: Paweł Oramus

KOTOR2: Planeta Droidów M4-78

Planety Droidów M4-78 w drugiej części „Knights of the Old Republic” nie ma. A przynajmniej nie ma jej oficjalnie, gdyż z pomocą zaawansowanych narzędzi oraz analitycznego umysłu da się po niej odbyć spacer. Oto z tego spaceru garść wrażeń.

Knights of the Old Republic

Może nie wszystkim spodoba się to, co powiem, ale prawda jest taka, że cała moja przygoda z grą Knights of the Old Republic (zwaną KotOR-em) zaczęła się z potrzeby osiągnięcia spokoju ducha i spokoju jako takiego w ogóle. Dlaczego? Dlatego, że w owym czasie, gdy zakupiłem grę, marzyłem tylko o jednym – by wszystko, co się wiąże z Gwiezdnymi Wojnami znikło z mojego życia, choć na chwilę. A wszystko przez mojego młodszego synka lat 9, naładowanego kolejnymi Epizodami oraz grami JK: Jedi Outcast i Academy. Jak wiadomo, dzieci w tym wieku nie ograniczają swoich filmowych wrażeń do dyskusji z rówieśnikami, więc dom stał się polem bitwy zwolenników Jasnej i Ciemnej strony Mocy. Bitwy co prawda bezkrwawej, ale nie pozbawionej efektów specjalnych w rodzaju różnych eksplozji, strzałów i ogólnego chaosu, gdzie każda część wyposażenia mieszkania staje się istotnym elementem działań wojennych.

Doprowadzony do szaleństwa codziennym życiem w warunkach kosmicznego poligonu, ledwo przyjąłem do wiadomości komunikat mojego dziecięcia: „Tatusiu, jest taka nowa gierka. Może kupimy?” No tak, kolejny powód do zabawy w Jedi, ale z drugiej strony kilka tygodni ciszy. Silnej woli to ja nigdy nie miałem, więc wybrałem środek doraźny, czyli grę kupiłem. Oczywiście wycieczka do sklepu jest dobrym pretekstem, by i własne zainteresowania zrealizować. W efekcie powróciłem z dwoma pudełkami: KotOR-em dla dzieci i Silent Stormem 2 dla siebie, zagorzałego fana Jagged Aliance. Niestety szanse, by już pierwszego wieczora odpalić SS2 okazały się znikome. Po wyperswadowaniu starszemu synowi „sam na sam” z FIFĄ 2004 albo 2005, przystąpiłem do instalacji KotOR-a otoczony przez dwóch podekscytowanych adeptów Mocy, niczym krowi placek przez muchy. Była to niezapomniana noc. Przechodziłem przez kolejne lokacje, rozwiązywałem kolejne zagadki i wycinałem w pień kolejnych wrogów przy akompaniamencie okrzyków i porad moich latorośli, aż doprowadzona do furii żona nazwała mnie „starym kretynem” i zakończyła naszą misję ocalenia galaktyki gdzieś o czwartej nad ranem. Następnych kilka dni wyglądało podobnie, aż któregoś wieczora nasz bohater zniszczył Gwiezdną Kuźnię pozostawiając w nas spory niedosyt. Nie zaspokoiło go nawet ponowne rozegranie całości na Dark Side i dokładne wykonanie wcześniej pominiętych questów. I tak rozpoczął się drugi etap przygody – modowanie.

Project Yavin 4th

Właściwie cel postawiłem sobie od razu ambitny, czyli stworzenie przynajmniej jednej a jeszcze lepiej kilku nowych lokacji, najlepiej z questami, przeciwnikami, i nowym wyposażeniem. Obiekt narzucał się sam – Yavin IV. W normalnej grze na PC można odwiedzić tylko stację orbitalną i aż prosi się, by dać graczowi możliwość wylądowania na powierzchni księżyca. I tu spotkała mnie pierwsza przykra niespodzianka – gra zupełnie do modowania się nie nadaje. Owszem, modów w sieci kupa, ale raczej skromnych, modyfikujących parametry gry, dodających nowe szatki, pancerze, miecze a nawet moce, ale nowych lokacji jak na lekarstwo. Właściwie nowych lokacji zupełnie nie można tworzyć, można jedynie na podstawie istniejących map stworzyć własny projekt. Narzędzi zresztą też zbyt dużo nie ma. Połowa z nich jest autorstwa fanów KotOR-a a połowa to narzędzia Bioware’u stworzone do modyfikacji NeverWinter Nights. Zdziwiło mnie to, gdyż KotOR oparty został o ten sam silnik co NWN, którego możliwości modyfikowania są ogromne, a narzędzi, w tym firmowych, nie brakuje. Ale przecież tak łatwo się poddać nie można, w końcu informatyk-analityk nie takie problemy na co dzień rozwiązuje.

Podszedłem do dzieła systematycznie. Po pierwsze sojusznicy. Ktoś przecież w tym kraju musiał spróbować pisania modyfikacji do tej gry. Tak trafiłem na stronę Gwiezdnej Kuźni i Forum Revana. Po burzliwej dyskusji i wielokrotnej weryfikacji scenariusza wykluł się zespół o nazwie MotOR (Mod of the Old Republic), który przystąpił do realizacji „Project Yavin 4th”. Z różnych przyczyn stało się tak, że techniczna część projektu w zdecydowanej części wylądowała na moich barkach, ale nie zmienia to faktu że wszyscy członkowie zespołu wnieśli w projekt tyle, ile byli w stanie, za co im serdecznie dziękuję. A droga była ciężka. Większość czasu pochłonęło rozgryzienie całego mechanizmu działania gry.

Czytałem oficjalne specyfikacje plików Bioware’u dla NWN, dyskusje i porady na forum Lucas Arts, analizowałem cudze mody i przeróżne narzędzia do edycji zasobów gry. Własnej desperacji zawdzięczam, że modyfikacja ujrzała światło dzienne. By zobrazować zakres pracy, wystarczy podkreślić liczbę 1543 plików tworzących mod. Wszystkie edytowane ręcznie – graficzne (2D i 3D), skrypty, dialogi, właściwości, parametry itp. Chyba największą satysfakcję sprawił mi fakt, że mod pobierany jest przez ludzi z całego świata, najczęściej nie znających języka polskiego. Prawie codziennie dostaję pytania o wersję angielską (jest w przygotowaniu). Czasami myślę, że to nawet dobrze, że inni odczują to, co muszą znosić polscy gracze dowiadując się że KotOR 2: TSL nie zostanie wydany po polsku.

Właśnie, KotOR 2, bo do niego ciągle w tym artykule zmierzamy. Jeszcze przed ukończeniem „Project Yavin 4th” przyrzekłem sobie: żadnych modyfikacji do KotOR 2. W ogóle koniec z modowaniem! Ale jak to z przyrzeczeniami tego typu bywa, długo na próbę silnej woli nie czekałem. Wręcz oburzyła mnie informacja że Lucas Arts nie jest zainteresowany lokalizacją KotOR-a na rynek polski. Natychmiast przystąpiłem do przeanalizowania problemu – i tu porażka. TSL zawiera ponad 136 000 komórek dialogowych, a każda komórka, słowo lub zdanie w języku angielskim, czyli dla jednego tłumacza ponad 2 lata pracy. Próba z automatycznym tłumaczeniem odniosła jeszcze gorszy skutek, bo efektem działania translatora było coś, co wymagało kolejnego tłumaczenia, tyle że przez psychiatrę. Ku mej radości nagle w sieci pojawiła się informacja, że za całą sprawę wzięła się ekipa, która wcześniej pracowała na spolszczeniem Half-Life’a 2. Zaoferowałem im swoje techniczne wsparcie, a oni je przyjęli, tym samym wszedłem w nowy etap – rozgryzienia KotOR:TSL.

Knights of the Old Republic II: The Sith Lords

Sieć pełna jest bardziej lub mniej potwierdzonych informacji na temat TSL (The Sith Lords), dotyczących pośpiechu przy końcowych pracach nad grą, niedokończonych lub obciętych wątkach, zmienionym finale, usuniętych lokacjach. Jako potencjalnego konstruktora modów najbardziej zainteresował mnie ten ostatni wątek, czyli usunięta planeta droidów M4-78 i fabryka HK-50 na Telos. Nauczony przykładem z KotOR-a 1, gdzie usunięty z gry trzeci poziom Bazy Vulkarów znajdował się w bibliotekach gry, przystąpiłem do przeglądania zasobów KotOR:TSL. Niestety żadne z tych lokacji nie zostały zdefiniowane. Owszem, był pełny zestaw tekstur dla planety M4-78 ale żadnych plików właściwości lokacji i śladów połączeń. Ale skoro są tekstury, to może znajdę moduły 3D, na które są one nakładane. Sporządziłem kompletny spis ID wszystkich lokacji i przystąpiłem do porównania z ID wszystkich modułów zawartych w zasobach gry. No i znalazłem – od kilku do kilkudziesięciu modułów 3D dla 7 map planety M4-78 i 2 map fabryki droidów HK-50. Tym samym uzyskałem identyfikatory map, a według nich odnalazłem pozostałe pliki związane z nimi, jak np. dźwięki, pliki obszarów ruchu postaci, modele droidów, itp. Jedyne, czego nie było, to elementów scenariusza, czyli dialogów, skryptów, postaci, wewnętrznych obiektów, przełączników obszarowych i punktowych, drzwi, itp.

Drugim poważnym problemem do odtworzenia lokacji był brak danych statycznych i dynamicznych obszaru. Bez nich wejście do lokacji i obejrzenie ich było niemożliwe. Pierwszym krokiem do odbudowy planety było wyedytowanie tych plików. Początkowo wydawało mi się to nierealne, ponieważ pliki te zwierają spore ilości danych, których nie można wziąć, ot tak „z księżyca”. Na szczęście sporą ilość potrzebnych parametrów udało się wydedukować z plików layouts (definicje dostępnych obszarów ruchu postaci). I tak po kilku godzinach od rozpoczęcia poszukiwań, mogłem wejść kolejno do wszystkich lokacji, obejrzeć je i wykonać screeny. Oczywiście lokacje były zupełnie puste.

W następnych dniach z pomocą Rafała „reatiVE” Grzelki, przystąpiliśmy do poszukiwania w sieci wszystkich informacji, mogących nam pomóc w odtworzeniu scenariusza. Jedną z ciekawszych danych, na jakie natknął się Rafał, był save z KotOR:TSL na XBoxa, świadczący o tym, że niektóre pliki związane z M4-78 i HK Factory zostały usunięte tylko z wersji PC, a wersji XBox je pozostawiono. Oczywiście posunęło to bardzo całą sprawę do przodu, ale i wywołało kolejne podejrzenia co do intencji autorów. Panowie z Obsidian wyraźnie nie chcieli, by ktoś grzebał w zasobach gry i postanowili to utrudnić, zwłaszcza PC-towcom. Czyżby jednak mieli zamiar to wszystko w przyszłości wykorzystać? Mimo tych podejrzeń, podjęliśmy decyzję o uruchomieniu „Project M4-78” i odtworzeniu Fabryki HK-50, co do której jeszcze nie podjęliśmy decyzji, czy przywrócimy ją na Telos, czy dołączymy jako element M4-78. W momencie, gdy piszę te słowa mamy w 70% gotową Fabrykę HK-50 i rozpoczęty mod „Project M4-78”. Piszę mod, gdyż w przypadku Planety Droidów nie będzie możliwe całkowite przywrócenie jej scenariusza, gdyż takowy nigdy nie został dokończony. Część elementów scenariusza musimy wymyślić i napisać sami. Ciągle jeszcze zastanawiamy się, jak daleko możemy odejść od oryginału i ile własnych pomysłów zaimplementować dla M4-78.

Modowanie

KotOR zbudowany jest na silniku NWN (Aurora). Podstawą silnika graficznego są trójwymiarowe obiekty w formacie mdl/mdx. W przeciwieństwie do NWN lokacje w KotOR-e nie składają się z dużej ilości obiektów-klocków możliwych do parametryzowania edytorem, ale stanowią połączenie większych części obszarów stworzonych przez grafika wyłącznie dla jednej konkretnej mapy. To praktycznie uniemożliwia samodzielną budowę map w KotOR-e.

GMax – moduły tworzące lądowisko na M-478.

Z pozostałymi elementami już jest łatwiej, ale wymaga to wielu operacji na różnych plikach, różnymi narzędziami, po uprzednim ich wypakowaniu z bibliotek. Do ich przeglądania i rozpakowywania, a także do edycji niektórych rodzajów plików najlepiej nadaje się KotOR Tool – narzędzie autorstwa Freda Tetry.

KotOR Tool – przeglądarka zasobów, pod spodem edytor dialogów.

Tekstury wypakowuje się w formacie tga, który łatwo daje się obrabiać praktycznie w każdym programie graficznym. W przypadku obiektów typu postacie, szafki, drzwi, bronie itp. stanowiących zawartość lokacji, najczęściej jedna tekstura pokrywa jeden model trójwymiarowy, przy czym część postaci składa się z dwóch modułów: głowy i torsu. Torsów może być dla jednych postaci tyle, ile klas pancerzy, a dla innych tylko jeden. Inaczej sprawa ma się z modułami tworzącymi lokacje – jeden moduł może mieć nawet kilkadziesiąt tekstur. Każdy obiekt 3D może też zawierać różne animacje. Najlepiej obrazuje to przykład postaci, w której modelu zapisane są animacje ruchu, walki, rozmowy, ziewania, upadania itp. Część z tych animacji aktywna jest cały czas lub w sekwencjach czasowych (rozglądanie się, ziewanie), a inne uruchamiane są przez skrypty (walka, rozmowa). Nie każda postać zawiera każdą animację – np. droid, gdyby nawet wyposażyć go w miecz, nie będzie nim wymachiwał, bo w jego modelu nie zawarto takiej animacji.

Kolejnym elementem są właśnie skrypty, czyli język programowania zdarzeń. Jest on identyczny jak w przypadku NWN. Zainteresowani mogą w prosty sposób poznać składnię języka z dołączonego do bibliotek gry pliku nwscript.nss. Możliwe jest też posługiwanie się różnego typu generatorami skryptów dla NeverWinter Nights, w tym firmowym, wchodzącym w skład pakietu narzędzi dołączonych do NWN. Aby skrypt nss był możliwy do użycia, musi zostać wcześniej skompilowany do postaci ncs. Umożliwia to program nwnnsscomp.exe dostępny na stronie Bioware’u. Skrypty podłącza się bezpośrednio do obiektów, z których są wywoływane. Należą do nich dialogi, pliki właściwości obiektów, przełączniki obszarowe, drzwi, postacie itp. Pliki te są w formacie Bioware GFF, opartym na języku rozszerzalnych znaczników. Można je edytować bezpośrednio w KotOR Tool, lub poprzez firmowe narzędzia Bioware’u, jak NWN Editor i GFF Editor.

Cały ten mechanizm spajany jest przez wewnętrzną relacyjną bazę danych w formacie 2da, zgodnie ze specyfikacją Bioware’u. W tych bazach zawarte są wszystkie relacje i połączenia między obiektami, parametry klas postaci, broni, obrażeń, poziomów, awansów, atrybutów, umiejętności, premii i tego wszystkiego, co musi być określone dla gry i jej mechanizmu D&D. Łącznie tabel wchodzących w skład bazy danych jest kilkadziesiąt. Czasami zakres modowania wymaga zmiany lub dodania parametrów do niektórych z nich.

Skrypt w formacie nss (przed kompilacją).
GFF Editor:

Istnieje oczywiście dużo więcej rodzajów plików decydujących o właściwościach graficznych i mechanicznych gry, ale mają one rolę drugoplanową, stanowiąc dodatkowe informacje i parametry do omówionych wyżej elementów. Osobom zainteresowanym modowaniem KotOR-a polecam lekcje modowania dla początkujących na Forum Revana, oraz topic Holowan Lab. na Forum Lucas Arts. Tym, którzy chcą obejrzeć filmy z KotOR-a polecam zajrzeć do katalogu Movies gry, po wcześniejszym pobraniu z sieci programu „Bink Video”, a amatorom muzyki katalog StreamMusic, gdzie co prawda znajdują się pliki wav, ale w istocie są to pliki mp3 – wystarczy zmienić rozszerzenie i uruchomić w WinAmpie.

Pozdrawiam wszystkich genoharadan i sympatyków KotOR-a,

Paweł „Hulas” Oramus

LINKI:

Forum Revana (lekcje modowania KotOR-a):

http://members.lycos.co.uk/jabusan/drizzt/phpbb2/viewtopic.php?t=179

Strona spolszczenia KotOR-a II:

http://www.zolwik.info/kotor2pl/

Forum Lucas Arts (Holowan Lab.):

http://www.lucasforums.com/showthread.php?s=&threadid=124284

Narzędzia do modowania KotOR-a:

http://www.starwarsknights.com/tools.php

Screeny z M4-78 (do pobrania):

http://www.pcgamemods.com/11018

Screeny z Project Yavin 4th:

http://www.pcgamemods.com/10127/a

Project Yavin 4th:

http://www.pcgamemods.com/10127

Star Wars: Knights of the Old Republic II - The Sith Lords

Star Wars: Knights of the Old Republic II - The Sith Lords