Autorem niniejszego tekstu jest David D’Angelo
Shovel Knight to gra, która próbuje emulować swoim stylem klasyczne tytuły epoki NES-a. Mimo to, przyglądając się jej wystarczająco uważnie znaleźć można szereg nieścisłości, które zdradzają jej współczesną naturę. Nakreślając style estetyczny i sposób rozgrywki tytułu, mieliśmy w zamyśle kilka celów. Zamiast odtwarzać możliwości tej konsoli, chcieliśmy stworzyć wizję ośmiobitowej gry obserwowanej przez różowe okulary.Co gdyby nigdy nie przestano tworzyć gier na NES-a? Jak wyglądałaby ośmiobitowa gra przygotowana dzisiaj? Doszliśmy do wniosku, że sposób prowadzenia rozgrywki wzbogaciłby się dzięki lekcjom wyciągniętym ze sposobu projektowania współczesnych gier, a technologia byłaby aktualizowana w subtelny, ale znaczący sposób. Podobnie, z pomocą czipów wbudowywanych prosto w kartridże wzbogacano możliwości prawdziwego NES-a.
Kartridże późniejszych gier na ten sprzęt, takich jak Super Mario Bros. 3 wypełnione były elektroniką o dużo wyższym stopniu zaawansowania niż ich poprzedniczki, takie jak oryginalny Super Mario Bros. Różne chipsety udostępniały nowe funkcje – ukośne przewijanie ekranu, większe sprite’y albo (wyłącznie w japońskim Famicomie, o czym troszkę później) dodatkowe kanały odtwarzania dźwięku. W połączeniu ze wzrostem doświadczenia w tworzeniu gier na ten sprzęt i zrozumieniu jego mocnych i słabych stron, różnica między pierwszymi i ostatnimi grami na NES-a potrafiła być uderzająca.
Pomyśleliśmy, że być może dalsze postępy w technologii kartridżów umożliwiłyby nam wykorzystanie technik, które zaaplikowaliśmy w Shovel Knight. Przekroczyliśmy również kilka ograniczeń NES-a z czystej preferencji… zdecydowaliśmy się zignorować wszystkie wady sprzętu, które w jakiś sposób wpłynęłyby negatywnie na rozgrywkę. Jednym z przykładów może być mruganie sprite’ów pojawiające się, gdy NES próbował wyświetlić więcej niż 8 obiektów w jednej poziomej linii. Dla niektórych jest to element nostalgiczny, ale my uznaliśmy, że przeszkadza w zabawie, więc pozbyliśmy się go. Mimo tego, wiele z naszych decyzji w sferze projektowania rozgrywki tworzonych było z uszanowaniem zasad wiążących się z owym mruganiem: próbowaliśmy uniknąć zapychania obrazu obiektami na ekranie i ograniczyliśmy liczbę dodatków pokroju efektów cząsteczkowych. Świadomość reguł pomogła nam w tym przypadku stworzyć grę sprawiającą wrażenie prostej i przejrzystej. A to przecież jedna z największych cech najlepszych gier na NES-a.
Przykładów na naginanie zasad jest wiele więcej. Przyjrzyjmy się więc sposobom, w jakie przymknęliśmy oko na ograniczenia konsoli, na której się wzorowaliśmy.
Jak popsuliśmy NES-a!
Współczesny sprzęt! Wersje konsolowe i PC! Dlaczego nie ma nas na NES-ie?
Shovel Knight uruchamiany jest natywnie na współczesnym sprzęcie i nie odpali się na NES-ie. To zaskoczyło część osób, która wzięła sobie nasze NES-owe pomysły bardzo do serca. Niektórzy gracze mieli nadzieję, że pograją w Shovel Knight na amatorskim kartridżu.
Prawda jest taka, że Shovel Knight to niezwykle skomplikowana gra, zdolna do włączenia się na całym szeregu platform sprzętowych i konfiguracji. Na współczesnych konsolach Nintendo, tytuł wspiera specjalne funkcje sieci bezprzewodowych i internetu z funkcjonalnością Miiverse i Streetpass na czele. Zintegrowaliśmy również obsługę oprogramowania wspomagającego takiego jak FMOD dla audio czy wsparcie dla kontrolera SDL.
Obraz panoramiczny 16:9 (lub 5:3 na 3DSie)
Jednym z udoskonaleń na jakie się zdecydowaliśmy było zwiększenie widocznego obszaru ekranu, unikając w ten sposób czarnych pasów po bokach ekranu widocznych na przykład w NES-owych grach na wirtualnej konsoli. To oznacza, że na większości współczesnych monitorów gra wyświetlana jest w natywnej dla nich rozdzielczości 16:9. Mimo że zmieniliśmy proporcje obrazu, nie zmieniliśmy rozdzielczości postrzeganej, unikając grafik o dużym zagęszczeniu pikseli.
W rzeczywistości każdy piksel Shovel Knight zajmuje 4.5×4.5 pikseli rozdzielczości 1080p tworząc wirtualną rozdzielczość 400×240. NES wyświetla obraz w 256×240, więc otrzymujemy w ten sposób tę samą rozdzielczość pionową. Kafelki z których składają się tła (jak w większości NES-ówek) mają rozmiar 16×16. Mamy więc też taką samą liczbę pionowych kafelków co NES. Utrzymanie rozdzielczości pionowej i rozmiarów kafelków było dla nas niezwykle ważne, by wiernie oddać estetykę tytułów na tę platformę. Jedyną różnicą jest dodatkowa przestrzeń w poziomie, która dała nam więcej miejsca na zaprojektowanie interesujących zagadek i krajobrazów. Plansze wydają się w ten sposób również mniej zapchane.
Efekt paralaksy tła
Przewijanie paralaksowe tła to możliwość przesuwania różnych warstw lub części obrazu w różnym tempie. W ten sposób nadaje się trójwymiarowości ruchu dwuwymiarowym warstwom. Wyobraźcie sobie, że zerkacie przez boczną szybę pędzącego samochodu: góry w oddali nie wydają się ruszać w ogóle, podczas gdy słupki przy autostradzie suną nam przed nosem w ekspresowym tempie. Początek naszego pierwszego zwiastuna pokazuje ten efekt w praktyce. Ta zaawansowana technika jest dużo powszechniejsza na SNES-ie. Na NES-ie dostępna była wyłącznie dzięki wykorzystaniu skomplikowanych sztuczek.
By osiągnąć taki efekt, twórcy mieli kilka opcji:
- Upewnić się, że żadna z części tła nie przecinała się i przewijać je w jednym kierunku: nieprzecinające się tło w Shatterhand
- Stworzyć animowany kafelek przewijającego się tła w różnym tempie: Animowane kafelki w Metal Storm
- Stworzyć nieprzecinające się tło i sprite’y na pierwszym planie w Batmanie
Już we wczesnym stadium tworzenia Shovel Knighta zadecydowaliśmy, że podkręcimy paralaksę tworząc średnio 5-6 warstw przewijanego tła. Wydawało się to nam kolejnym krokiem w rozwoju NES-a, więc nie uważaliśmy go za element niepasujący do naszej wizji. Co więcej, dodanie tej funkcji spowodowało, że na dłuższą metę gra stała się bardziej czytelna. Taka znacząca liczba warstw pomogła nam w jeszcze jednym względzie – mogliśmy je wykorzystać do stworzenia świetnego efektu stereoskopicznego na trójwymiarowym ekranie 3DS-a!
Mruganie obiektów
Mruganie sprite’ów na ekranie NES-a miało miejsce, gdy na ekranie wyświetlało się więcej niż osiem obiektów w tym samym poziomym rzędzie. Staraliśmy się zminimalizować liczbę obiektów na ekranie, ale jak wspominaliśmy wcześniej, nie przejmowaliśmy się dokładnymi liczbami. Niektóre z naszych obiektów wytwarza więcej cząsteczek niż pozwoliłby sobie na to NES… ale uznaliśmy, że warto było to zrobić dla efektu wizualnego.
Niektóre gry takie jak Recca czy Contra obchodziło ograniczenia w wyświetlaniu sprite’ów wyświetlając niektóre z nich co drugą klatkę (w 30fps zamiast standardowego 60fps). Na monitorach CRT wyświetlających niskiej rozdzielczości wideo z przeplotem obiekty wyglądały wówczas jak gdyby były rysowane co klatkę. Co więcej, wiele grafik cząsteczek konsoli było tworzone z myślą o mruganiu przy animowaniu efektów w stylu eksplozji. My wykorzystaliśmy ten efekt, by w niektórych sytuacjach emulować przezroczystość kanału alfa. Na przykład, Shovel Knight mruga w stanie „niezniszczalności”, po otrzymanych obrażeniach. Ogółem rzecz biorąc, nie było to ograniczenie, którego trzymaliśmy się w sposób kurczowy, z wyjątkiem sytuacji w których działało to na niekorzyść typowo NES-owej rozgrywki.
Dodatki do palet kolorów
NES mógł wyświetlać wyłącznie 54 kolory. To niewiele. Nasz problem polegał głównie na stworzeniu gradientów o większej palecie barw. Na przykład, na konsoli brakuje wartościowych żółci czy interesujących reprezentantów ciemniejszej grupie kolorów. Brak również odcieni pasujących do postaci o ciemniejszych karnacji. Trzymanie się NES-owej palety było dla nas jednak priorytetem, bo nadaje ona bardzo rozpoznawalnego tonu. Ostatecznie wykorzystaliśmy więc tylko kilka dodatkowych kolorów.
Więcej informacji o kolorach konsoli Nintendo znajduje się na tej stronie wiki: http://en.wikipedia.org/wiki/List_of_video_game_console_palettes#Famicom.2FNE
Wykorzystany fiolet to #22123B
Jakimi kolorami musieliśmy się więc hańbić? W powyższym ujęciu, w detalach platform znaleźć można ciemny fiolet. Po dodaniu go do palety użyliśmy go również w innych miejscach, głównie jako pomost między czernią, a chłodniejszymi kolorami teł.
Głęboka czerwień to #360900
Podobnie jak w przypadku fioletu, potrzebowaliśmy koloru, który stałby pomiędzy czerną, a cieplejszymi barwami. Ta ciemna czerwień pojawia się głównie w planszy Rycerza Kreta, Zaginionym Mieście. Odcienia tego nie używaliśmy tak często jak fioletu ponieważ paleta kolorów NES-a składa się głównie z barw chłodnych. Znanym faktem jest, że Mega Man wymyślony został jako czerwony robot, ale jego kolor uległ zmianie [na błękitny – przyp. redakcji], gdy twórcy bliżej przyjrzeli się spektrum dostępnych kolorów.
Beżowa peleryna w #9E9E5C
Następnym oszukanym kolorem jest barwa, którą stworzyliśmy jako pierwszą. Potrzebowaliśmy koloru pasującego do owczego runa noszonego przez Rycerza Polarnego. Żaden z kolorów palety nam nie podpasował. Beż wykorzystany został również do pokolorowania jego skóry i dopasowaniu obiektów na jego planszy do ogólnego tematu. Chcieliśmy nawet wrócić i poprawić go na prawidłowy kolor palety, bo jest to jedyne miejsce w grze w którym wykorzystujemy ten odcień, ale żaden z dostępnych kolorów po prostu nie pasował. Ostatecznie zdecydowaliśmy się go zostawić.
Cieniowanie mieszczanina: #824e00
Ostatni oszust pomógł nam zdywersyfikować postaci w Shovel Knight. Podstawowa paleta kolorów NES-a udostępnia bardzo mało kolorów dla postaci o ciemniejszych kolorach skóry. Stało się to dla nas dużym problem przy realizowaniu nagród „Pixel My Face” z Kickstartera (przy pewnym progu wsparcia można było zostać uwiecznionym jako portret w grze), ponieważ brały w nim udział osoby ze wszystkich zakątków świata. Naszym ostatnim oszukanym kolorem jest więc jasny brąz, który cieniuje twarz tego kolesia.
Ciąg dalszy artykułu na stronie drugiej…