HamburGIER: Historia Crasha Bandicoot pełna ciekawostek

Wielu z was, czytelników, chciałoby powrotu Crasha pod skrzydłami starej ekipy z Naughty Dog z Jasonem Rubinem i Andy Gavinem na pokładzie. Niestety, szanse na to są minimalne, jednak zamiast tego proponuję wam malutką podróż wehikułem czasu do roku 1996 gdy na rynku ukazała się pierwsza część Crasha. Przypadkiem trafiłem na stronę Andy Gavina, który zamieścił ciekawy wpis na temat Crash Bandicoot i wszystkiego co z nim związane. Dlatego też ja, jako ogromny fan serii postanowiłem przedstawić i przetłumaczyć cały wpis...
Wielu z was, czytelników, chciałoby powrotu Crasha pod skrzydłami starej ekipy z Naughty Dog z Jasonem Rubinem i Andy Gavinem na pokładzie. Niestety, szanse na to są minimalne, jednak zamiast tego proponuję wam malutką podróż wehikułem czasu do roku 1996 gdy na rynku ukazała się pierwsza część Crasha. Przypadkiem trafiłem na stronę Andy Gavina, który zamieścił ciekawy wpis na temat Crash Bandicoot i wszystkiego co z nim związane. Dlatego też ja, jako ogromny fan serii postanowiłem przedstawić i przetłumaczyć cały wpis...
Może zanim zacznę, warto przedstawić sylwetkę pana Gavina, który jest ojcem Naughty Dog, Crasha i przygód Jak & Daxter. Andy był współzałożycielem studia razem z Jasonem Rubinem, ojciec i pomysłodawca postaci Crasha oraz Jaka i Daxtera. Po 2004 roku opuścił firmę zostawiając ją w rękach Evana Wellsa i Christophe'a Balestry by skupić się na pisaniu książek. Dwie najpopularniejsze i jedyne napisane jak na razie to The Darkening Dream oraz Untimed . Aktualnie wraz z Jasonem Rubinem tworzą grę na iPhone'a w studiu Monkey Gods.
Po tym krótkim wstępie, czas na artykuł właściwy. Panie i panowie, usiądźcie wygodnie, zaparzcie herbatę i zapraszam do czytania.
W drugiej połowie lat '90, PlayStation było podzielone na 3 „regiony”, SCUS, SCEE i SCEJ, będące przełożeniem na wersje NTSC US, europejskie PAL i Japońskie NTSC.
Amerykańska wersja na rynek trafiła na początku września 1996 roku. Skończyliśmy ją na początku sierpnia (tłoczenie i podobne sprawy zajęły miesiąc). Z mojej perspektywy – i to nie jest za dużo warte, gdyż na etapie Crash Bandicoot osobiście zająłem się prawie całym tłumaczeniem i aspektami lokalizacyjnymi – europejska wersja została ukończona w tym samym czasie. Zabiłbym siebie żeby to ukończyć w lipcu, ale Europa jak wiadomo, lubi przeciągać pewne sprawy, zwłaszcza te dotyczące testów. Chciałem to skończyć, bo dopóki tym się zajmowałem, nie mogłem robić nic innego.
W Naughty Dog, byliśmy pionierami jednoczesnych premier na całym świecie. Przy Crashu 2 i Crashu 3, identyczny kod, lekko różniący się napędził wszystkie trzy wersje. Jak & Daxter był pierwszą grą w której wersja na USA zawierała wszystkie języki europejskie. W Jaku II mogliście zmienić język gry w menu kiedy tylko chcieliście. Wszystko to po to, by była jedna baza kodu, artystyczna i jedna rzecz do debugowania. Chcieliśmy wydać grę jednocześnie na całym świecie, chcieliśmy jednego „gold mastera”.
Ten cel i narzędzia do jego osiągnięcia zaczęły być tworzone już przy okazji pierwszego Crasha i dobrze sprawdziły się przy Crash Bandicoot 2: Cortex Strikes Back. Międzynarodowa grupa nie bardzo była zadowolona z rok rocznego testowania wersji na Europę i Japonię. Śmiało mogę powiedzieć, że od początku była to zasługa mentalności i podejścia do pracy: „robimy to tak, bo robimy to od zawsze”. Jason [Rubin, dop. Musiol] i ja nigdy nie byliśmy fanami tego stwierdzenia. Ale odkładając na bok osobiste odczucia i przekonania, już od Crasha 1 wszystkie zespoły Sony wkładały niesamowite ilości sił i serca by produkt końcowy był jak najlepszej jakości na każdym rynku.
Mimo to, każda wersja miała swoje problemiki i ciekawostki. Europejska wersja cierpiała ze starego formatu wyświetlania obrazu – PAL. Ta wersja miała oczywiście ciut większą rozdzielczość i lepsze kolory w porównaniu do standardu NTSC, ale działała w 50Hz, nie 60Hz. W stosunku do gry przekładało się na to, że działała ona w 25 klatkach na sekundę, nie 30.
Sama rozdzielczość nie była znaczącym problemem. Crash w większości był grą 3D i nie było problemów dostosować grę do wyświetlania w różnych rozdzielczościach. Ale stosunek pikseli w standardzie PAL także różnił się od wersji NTSC, co odbiło się na bitmapach, głównie czcionce i ikonach dopałek. W wersji PAL, bufor ramki był dużo większy, a PSX miał niezależnie od kontynentu taką samą ilość pamięci VRAM, więc zwiększenie rozdzielczości sprite'ów nie wchodziło w rachubę. Pozostało więc nam porozciągać lub pokurczyć bitmapy bez zbędnego marudzenia. Dopisałem notację do oryginalnych danych po to by różne sprite'y mogły dopasować się zależnie od wersji.




Największym problemem była płynność gry. Jednym z powodów dlaczego animacja Crasha była dużo lepsza niż w innych grach leżała w tym, że dołożyliśmy vertexa do każdej ramki – pozwoliło nam to cholernie skompresować dane. Wynikiem tego, każdy segment animacji był importowany z Alias PowerAnimator w 30 FPS-ach. Zmodyfikowałem narzędzia by wspierały tworzenie kopię każdej klatki animacji i krok po kroku dostosowaliśmy ją pod 25 FPS-ów. Sprawdzało się to w 80% czasu przenoszenia gry. Czasami musieliśmy poprawiać poszczególne animacje krok po kroku, a czasami nawet kodować je na nowo używając własnego języka (GOOL) który automatyzował każdą rzecz jaką dało się tak zrobić.
Ale także fizyka i system kolizji musiały zostać dostosowane do 25 FPS-ów. Przenosiłem na system PAL tytuły takie jak Rings of Power i Way of the Warrior i właśnie wtedy nabyłem gigantycznej nienawiści do tego typu zadań. Wszystko musiało zostać dopasowane do miejsca i czasu i nie pasowało do standardowego pojęcia w grach „przesuwaniu X pikseli o klatkę”. Dlatego też Crash działał w oparciu o metry i sekundy, co wbudowane było w GOOL. Kompilator miał za zadanie w locie skonwertować to na piksele na ramkę.
Taki sposób miał mnóstwo zalet. Po pierwsze, nawet z problemami odnośnie wersji PAL, pozwalało to na poruszanie się przeciwników i używanie fizyki na niezależne od klatek ruchy. Specjalne funkcje których użyliśmy by uporać się z ruchami i przyspieszeniem, które zaimplementowane zostały do przewidywania aktualnych ramek (zazwyczaj polegaliśmy na tym jak długo renderowała się poprzednia i ile trzeba było czasu na jej obliczenie). Najprościej mówiąc, kod który odpowiadał za to, że Crash skacze łukiem parabolicznym przesunąłby postać nawet jeśli ilość klatek na sekundę spadłaby do przedziału 20-15 (co niestety się zdarzało czasami). Nie było to rozwiązanie idealne, ale lepsze to niż nic, chociaż 15 i tak jest gorsze od 30.
I to właśnie opłaciło się przy konwersji na PAL. To co wydawało się z początku bardzo ciężką pracą, zajęło tak naprawdę tylko 5 dni. Po uruchomieniu wszystkich automatycznych konwertorów i debuggerów przez całą grę, sprawdzając każdy poziom, każdego stwora, każde zachowanie stwora i Crasha wraz z obiektami, a później upewnieniu się, że wszystko gra tak jak ma byliśmy pewni. Jeśli coś nie działało, ręcznie zmieniałem dane lub dodawałem opcję „jeśli to PAL, zrób to trochę inaczej” do kodu GOOL.
Ale to było w świecie w którym większość gier NTSC działało o 16% wolniej niż europejskie odpowiedniki, a gry z Europy działały o 16% szybciej.
Crash w obu przypadkach działał świetnie i wyglądał świetnie. Wersja na Europę wyglądała nawet lepiej niż inne – większa rozdzielczość i lepsze kolory robią swoje, ale z powodu 25 FPS-ów można było odczuć, ze jest to wersja gorsza. Ale to nie my wymyślaliśmy standardy wyświetlania obrazu.
Ostatnią, lekko zaskakującą rzeczą była lokalizacja i języki. Crash 1 nie miał tak naprawdę żadnych użytych głosów (co w późniejszych grach było bardzo ważnym elementem). Ale mieliśmy dosyć tekstu.
W standardowych kanonach programowania, wymyśliliśmy inny system do tego. Cały tekst był generowany w postaci łańcuchów w kodzie GOOL i od kiedy odpowiadałem za kompilator, dodałem opcję pozwalający stworzyć mapowany plik dla każdego z języków. Teksty po angielsku i odpowiednikami w danym języku (każdy z pięciu: angielski, francuski, hiszpański, niemiecki i włoski). Zmieniałem sposób w jaki łańcuchy obsługiwały dane do indeksów, oraz indeksy do tablic i na samym końcu do pięciu plików na dysku. Teraz to jest norma, ale wtedy było to coś niespotykanego. Nawet w przypadku Crasha 1 mogłeś zmienić język kiedy tylko chciałeś. Ale wersja europejska zmusiła mnie do dodania opcji wyboru języka w menu by ograniczyć dodatkowe testy wynikające z możliwości pojawienia się niespotykanych błędów, gdybyś przełączył język w trakcie gry.
Usystematyzowałem wszystkie rzeczy używając narzędzi i gry w następujących rzeczach oddzielając je od siebie: proporcje obrazu (NTSC, PAL), kraj (z którego kraju pochodziła płyta) i język. To rozdzielało koncept języka na danych terytoriach otwierając możliwości implementowania innych języków w wersji USA (co nie miało miejsca aż do Jak 1 z powodów logistycznych i legalnych).
Jako prośby przychodzące z rynków europejskich i specyficznych krajów, na przykład „uczyńcie grę trudniejszą, gdyż europejscy gracze lubią wyzwania” (po Crashu 1 porzuciliśmy ten truizm). Zmodyfikowałem narzędzia po to by pozwalały na zmiany zależne od kraju wydania gry. Na przykład, "CONTINUE_POINT_64_32" w planszy Dżungla, zrobiłem dopiskę “ukryj w Europie”. Nie jestem pewien czy to przełożyło się na frustracje graczy w Europie, ale pozwoliło to na dokonywanie zmian płynących od niektórych osób.
Trzeba zaznaczyć, że europejska wersja Crasha była tak samo dopieszczona w szczegóły jak wszystko czym się zajmowaliśmy. Podobnie uczyniło Sony Europe. To był jeden z pierwszych (o ile nie pierwszy) produkt, który był nadzorowany przez międzynarodową korporację w każdym aspekcie. Każde z terytorium Sony zaangażowało się w reklamowanie i marketing produktu na zasadzie „zrobiono to tutaj”. Gra była lokalizowana bardzo dobrze, nie tylko sama gra, ale także każdy kraj miał swój udział w specjalnych kampaniach reklamowych. Nawet Irlandczycy nakręcili swoje reklamy z ichniejszym akcentem. Wiadomo, że gry kierowane wprost na dany rynek lepiej się sprzedają. Francuskie wersje sprzedają się dużo lepiej we Francji niż wersje tylko angielskie. Uwaga jaką poświeciliśmy razem z Sony naszemu produktowi na każdym etapie produkcji naprawdę się opłaciła.
Gra sprzedawała się jak szalona w każdym kraju. Mieliśmy oczywiście poszczególnych liderów jak Francja czy też Australia (wirtualne miejsce narodzin Crasha), które naprawdę pokochały tego rudzielca.
Opracowano na podstawie wpisu Andy Gavina na jego stronie: http://all-things-andy-gavin.com/2012/01/06/parlez-vous-crash/