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.5x4.5 pikseli rozdzielczości 1080p tworząc wirtualną rozdzielczość 400x240. NES wyświetla obraz w 256x240, 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 16x16. 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
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
Głęboka czerwień to #360900
Beżowa peleryna w #9E9E5C
Cieniowanie mieszczanina: #824e00
Sprite'y NES-a limitowane były do czterech kolorów (lub 3 kolorów i przezroczystości). Widać to dokładnie na postaciach w poniższym kadrze z gry The Legend of Zelda.
Niektórzy developerzy tworzyli wielokolorowe obiekty używając pewnej sztuczki. Postaci takie jak Mega Man zbudowane były z dwóch sprite'ów. Jednego dla ciała (niebieski, błękitny i czarny) i drugiego dla twarzy (beż, biel i czerń). Następnie nakładano je na siebie. Dlatego czasami twarz Mega Mana mruga osobno od jego ciała. W Shovel Knight potraktowaliśmy nasze obiekty jak w Mega Manie dając im 4-5 kolorów plus dodatkową przezroczystość.
Odpowiednie zbalansowanie barw było dość problematyczne, bo bohaterowie o zbyt dużej liczbie kolorów wybijali się na tle otoczenia. Bawiliśmy się poziomem szczegółów, aż znaleźliśmy balans, który wyglądał świetnie.
Postacie zbyt szczegółowe są bardzo trudne do zanimowania!

Naszym zdaniem czarne tło i wielcy bossowie nadawali grom na NES-a bardzo imponującej, wzniosłej atmosfery, gdzie nacisk kładziony był wyłącznie na starcie bohatera z wrogiem. Zdecydowaliśmy więc, że jest to ważny aspekt do zachowania. Jednak bez ograniczeń w liczbie sprite'ów nie musieliśmy bawić się warstwami tła, ani innymi sposobami na obejście problemu powiększania obiektów. Wykorzystaliśmy po prostu nasz kod animowanych postaci, podeszliśmy bardzo ostrożnie do tworzonych projektów, by upewnić się, że sprite pojawiał się na czarnym (lub bardzo ciemnym) tle.
Wstrząsy kamery
Potrząsanie kamerą sygnalizujące potężny wstrząs to w grach wideo efekt niemal prehistoryczny. Na NES-ie wstrząsy kamery mogły występować tylko na jednej osi. Warto zwrócić uwagę na Bowsera rozbijającego podłoże podczas ostatecznego starcia w Super Mario Bros. 3. NES ma problemy z przewijaniem po skosie. Złamaliśmy to ograniczenie, bo nie znaleźliśmy żadnego sensownego powodu, żeby z niego nie rezygnować.
Interfejs jako warstwa
Ciekawostką w grach na NES-a jest fakt, że obiekty rysowane są zazwyczaj przed interfejsem. Większość NES-owskich interfejsów rysowanych było na warstwie tła. To dlatego, że istniała tylko jedna warstwa więc tło i interfejs musiały dzielić się miejscem. W wielu przypadkach mappery pamięci, które zwiększały pojemność kartridżów zawierały również specjalne moduły licznika, który pozwalał na paski statusu na "podzielonym ekranie", ale warstwa tła zawsze pozostawała tłem, a obiekty rysowane były na pierwszym planie. Jeżeli więc gracz mógł dotrzeć do szczytu ekranu, intefejs zostawał zasłonięty przez bohatera. Czasami zachowanie to wykorzystywane było jako dodatkowa mechanika kryjąca sekretne ścieżki do znalezienia w tych "niedostępnych" miejscach ekranu. Bardzo podoba nam się ta ciekawostka więc postanowiliśmy w miarę możliwości przy niej trwać, ale czasami warstwy mieszały się tak bardzo, że w paru miejscach musieliśmy trochę je pozmieniać.
Ograniczenia dźwięku
Muzyka jest prawdopodobnie najbardziej autentycznym aspektem Shovel Knight chociaż może wydawać się trochę bardziej kwiecista i pełna niż mógłby oferować NES. To dlatego, że napisana została pod specjalny mapper pamięci/układ dźwiękowy nazywany VRC6, który wykorzystywany był przez Konami pod koniec ery NES-a. Czip ten pozwalał na wykorzystanie zaawansowanych technik graficznych, ale jego najbardziej znanym zastosowaniem było dodanie dodatkowych trzech kanałów dźwiękowych nadających muzyce dodatkowego bogactwa i głębi. Niestety, zewnętrzne moduły dźwiękowe takie jak VRC6 działały wyłącznie na japońskim Famicomie ponieważ zachodnim NES-om brakowało odpowiednich połączeń na kartridżu przez co dla większości zachodnich graczy brzmią one bardzo obco. Wystarczy porównać muzykę amerykańskiej wersji Castlevanii III z jej japońskim odpowiednikiem, Akumajou Densetsu, by przekonać się, że różnica jest uderzająca.
Kompozytor Jake Kaufman stworzył muzykę i efekty dźwiękowe dla Shovel Knight z pomocą darmowego programu o nazwie Famitracker. Famitracker zapisuje muzykę w formacie kodu maszynowego NES-a, który da się uruchomić na prawdziwej konsoli NES lub Famicom obsługując przy tym wszystkie ograniczenia sprzętu. Audio sfinalizowane zostało za pomocą narzędzi do masteringu (EQ i kompresja), by nadać mu trochę więcej mięsistości podczas odtwarzania na współczesnym sprzęcie audio. Unikaliśmy przy tym miksowania stereo i pogłosu, który popsułby surowy charakter dźwięków. Wszelkie echa i efekty specjalne słyszalne w grze zaprogramowane zostały nuta po nucie w taki sam sposób jak tworzono je na NES-ie. Oto wideo w którym Jake demonstruje zawiłości kilku ścieżek przygotowanych w Famitrackerze z myślą o Shovel Knight.
Kolejnym ograniczeniem NES-a był fakt, że efekty dźwiękowe często przejmowały jeden z kanałów audio. NES dzielił swoje 5 kanałów między muzykę i dźwięk więc efekty dźwiękowe musiały tymczasowo podkradać jeden lub więcej z kanałów dźwiękowych, by mogły się odtwarzać. Efekt ten nie istnieje w Shovel Knight - efekty dźwiękowe nakładane są na muzykę co jest całkowicie nieautentyczne, ale dużo przyjemniejsze w odbiorze.
Następnym razem, gdy uruchomicie swoje NES-y, przysłuchajcie się dobrze, a bez problemu zauważycie jak większość gier tymczasowo wycisza bas, perkusję czy harmonię, by zmieścić trochę więcej efektów dźwiękowych.
Popsuliśmy NES-a!
Sumując wszystkie zmiany dochodzimy do gigantycznej przepaści między Shovel Knight, a technologią NES-a. Naszym zdaniem jednak udało nam się zachować, a może nawet i wzbogacić rdzeń estetyki ośmiobitowej ery.
Shovel Knight był projektem marzeń, który umożliwił nam eksplorowanie stylu rozgrywki, który nie jest już dziś zbyt powszechny. Próby rozwiązania problemów technologii ubiegłych dekad przy jednoczesnym ominięciu przeszkód, które eksponowałyby współczesność produkcji były dla nas niezwykle fascynujące. Mamy nadzieję, że wiernie naśladując NES-a w sposób nie tylko powierzchowny stworzyliśmy podstawę dla gry twardą niczym skała!
