Game accessibility, czyli krótka historia o otwieraniu drzwi

Zapewnienie dostępnego doświadczenia dla graczy to temat na tyle złożony i istotny, że próba dotknięcia wszystkich zagadnień w ramach jednego artykułu skończyłaby się pewnie napisaniem ogólnie o wszystkim, a na koniec o niczym konkretnie. Spróbujemy zatem podejść do tematu inaczej, przechodząc przez 3 podstawowe opcje dostępności, o które często proszą gracze: napisy dialogowe, uwzględnienie ślepoty barw i rekonfigurację sterowania. Żeby złożone efekty specjalne, animacje i inne wodotryski nie przesłoniły nam istoty sprawy, skupimy uwagę na prostym interaktywnym elemencie, który można spotkać w wielu grach, czyli na drzwiach. Tak, takich zwykłych drzwiach, na które większość graczy nie zwraca uwagi, bo… nie musi.

Accessibility w pełni

Parzyłem właśnie kolejną kawę. Tego wieczora czekało na mnie jeszcze kilka godzin pracy. Gra w preprodukcji, analiza użyteczności, kawa i ja. Uruchomiłem grę, trzymając przed sobą notatki z dnia poprzedniego, aby zweryfikować kilka ze swoich spostrzeżeń. Zacząłem od ściszenia dźwięku w słuchawkach, bo tknęła mnie taka myśl, że wolałbym usłyszeć moją kilkutygodniową córkę śpiącą w pokoju obok. Zwłaszcza, jeśli obudzi się w najmniej spodziewanym przeze mnie momencie. Z wizji poziomu gry, który miałem właśnie ogrywać, wynikało tyle, że stanowi on spokojniejszy łącznik między bardziej intensywnymi sekwencjami fabularnymi. Ot, główna postać włóczy się po jakimś domu w poszukiwaniu wskazówek, które popchną historię do przodu. Skupiony na tym, jak działa mechanika poszukiwania oraz zbieranie tychże wskazówek, przeczesywałem kolejne pokoje, uzupełniając co jakiś czas moje notatki o dodatkowe spostrzeżenia. W pewnym momencie natknąłem się na drzwi. Niby nic nadzwyczajnego. Były podobne do kilku innych, które miałem okazję do tej pory otworzyć. Sprawę trochę skomplikował jednak fakt, że klikanie przycisku wchodzenia w interakcje nie dawało pożądanego rezultatu – drzwi ani drgnęły. Towarzyszyła mi myśl, że albo coś się zepsuło albo czegoś w zasadzie działania tych drzwi nie pojmuję. Gra była w końcu w preprodukcji i wiele z elementów nie osiągnęło jeszcze docelowego poziomu jakości, a bugi były czymś spodziewanym. Wróciłem zatem do dokumentacji projektu, aby sprawdzić wizję i założone doświadczenie gracza dla tego poziomu gry. Sprawa okazała się bardziej prozaiczna niż zakładałem. Otóż: gracz miał przekonywać się o tym, że niektóre drzwi są zamknięte dopiero po wejściu z nimi w interakcje, co gra sygnalizowała dźwiękiem trzeszczącej klamki. Miało to w założeniu wspierać poczucie eksplorowania nieznanej przestrzeni oraz ukierunkowywać poszukiwania gracza. Nie mnie było oceniać wizję kreatywną, w końcu gra to między innymi „dobrowolna próba pokonywania niepotrzebnych trudności” (B. Suits). Jednak założone w tej wizji doświadczenie okazało się dla mnie niesprawdzalne, bo było najzwyczajniej niedostępne z powodu wyciszonego dźwięku.

Spoglądając na to szerzej, moje ograniczenie wynikało z czynników sytuacyjnych (chciałem w razie potrzeby usłyszeć dziecko), dla innego gracza mogłoby ono wynikać z czynników działających tymczasowo (np. ograniczenie słuchu wynikające z zapalenia ucha), a dla jeszcze innego – z czynników działających trwale (np. ktoś może mieć trwały ubytek słuchu albo być głuchy). O ile o dostępności myśli się często w kategoriach różnych niepełnosprawności, o tyle warto pamiętać, że utrzymanie jej na odpowiednim poziomie może pozwolić w pełni cieszyć się doświadczeniem znacznie szerszej grupie graczy niż mogłoby się początkowo wydawać (jest to tzw. curb cut effect i warto o nim pamiętać podczas rozmów z decydentami, którzy niekoniecznie jeszcze zaprzyjaźnili się z tematem). Kolejnym elementem tej historii jest to, że zajmowanie się dostępnością w grach wymaga podążania za przyjętą wizją kreatywną, co może od niektórych wymagać porzucenia poczucia zawodowej omnipotencji. Choć UX Designer i User Researcher mogą mieć kluczowy wpływ na pewne elementy produkcji, to nie oni odpowiadają za wysokopoziomową wizję gry. Od tego mamy dyrektora kreatywnego, a także całą grupę projektantów o zróżnicowanych specjalizacjach. Znaczy to tyle, że niektóre pomysły podnoszące dostępność, ale sprzeczne z ustaloną wizją, mogą nie przeżyć starcia z zespołem kreatywnym. Jeżeli gracz ma wchodzić w interakcje z zamkniętymi drzwiami, to warto zawczasu porzucić rozwiązania, które podnoszą dostępność, ale miałyby to na siłę zmieniać, np. popularne „wyszarzanie” ikon interakcji czy odróżnienie zamkniętych drzwi przez dodanie wskazówek wizualnych w postaci łańcuchów, przybijanych desek czy innych taśm. Warto na to spojrzeć również z perspektywy producenta, który weźmie pod uwagę koszt naszej propozycji. Zastosowanie rozwiązania, które poprawi doświadczenie graczy i sprawdzi się również przy innych elementach gry, będzie zapewne milej widziane. Wszystko fajnie, ale co z tymi nieszczęsnymi drzwiami zrobić?

Dźwięki zapisane tekstem

Możemy zacząć od wprowadzenia napisów dialogowych (ang. subtitles). Napisy są kluczowe dla dostępności gry z wielu powodów. Podobnie jak w filmach, gra może nie posiadać dubbingu w ojczystym języku gracza, a więc napisy ułatwiają zrozumienie treści wypowiadanych słów. Nawet jeśli gracz zna język oryginału, to napisy ułatwiają zrozumienie wypowiedzi postaci, które mają nietypowy akcent lub głos. Mało tego, jeśli wypowiedzi są w ojczystym języku gracza, to napisy mogą umożliwić zrozumienie postaci, która mówi cicho lub mamrocze. Zatem po interakcji z zamkniętymi drzwiami moglibyśmy wyświetlić napis dla wypowiedzi postaci:

„Do diaska! Zamknięte”.

Żeby samo wprowadzenie napisów dialogowych nie sprawiło, że gra dalej pozostanie niedostępna dla części graczy (np. niedowidzących lub grających przy słabym oświetleniu), to podobnie jak w wypadku aplikacji użytkowych kluczowe będą dla nas: odpowiednia wielkość pisma (optymalnie – regulowana), właściwy kontrast między tekstem a tłem (w wypadku napisów dialogowych stosuje się najczęściej czarne nieprzezroczyste lub półprzezroczyste tło), wykorzystanie bezszeryfowego kroju pisma, korzystanie z wielkich i małych liter. Drobną różnicą względem statycznego tekstu jest to, że napisy będziemy wyświetlać wyśrodkowane na ekranie zamiast wyrównane do lewej. Załóżmy też, że spełnimy dodatkowe zasady dotyczące miejsca, czasu i tempa wyświetlania napisów, a także liczby i sposobu łamania linii tekstu. Zatem, po drobnych korektach, napis mógłby wyglądać tak:

Do diaska! Zamknięte.

Warto jednak nie stosować tych wszystkich wytycznych bezwiednie. Wizja artystyczna może zakładać przykładowo, że wypowiedzi niektórych postaci będą zapisywane wyłącznie wielkimi literami po to, aby nadać im indywidualnego charakteru (np. w grze „Undertale” postaci Papyrus I Mettaton zawsze mówią WIELKIMI LITERAMI). W wypadku gier przygodowych, częściej niż w innych gatunkach, można spotkać też kroje szeryfowe czy pisanki. I nie ma powodu, aby z tego rezygnować, o ile zapewnimy graczowi alternatywę w postaci wyboru kroju bezszeryfowego. Ponadto rolą napisów nie jest cenzurowanie czy poprawnie treści. Napisy powinny oddawać jak najlepiej warstwę dźwiękową. Z tego powodu zostawiamy błędy gramatyczne, przekleństwa czy fragmenty niezrozumiałej mowy, aby zapewnić doświadczenie jak najbardziej zbliżone do słuchania. Zatem wypowiedź postaci, próbującej otworzyć zamknięte drzwi, mogłaby brzmieć tak:

Niech to szlag! Zamknięte.

Co istotnie podniosłoby dostępność naszego napisu, to zapewnienie graczom odpowiedniego kontekstu dla wypowiedzi. W tym celu możemy wykorzystać napisy dla dźwięków (ang. closed captions). O ile nazwa jest samowyjaśniająca, to warto pamiętać, że powinny one nazywać jedynie dźwięk, a nie być jego interpretacją (np. zamiast [strzelają do siebie] napisalibyśmy [wystrzały z broni]). Zatem:

[Drzwi trzeszczą] Niech to szlag! Zamknięte.

Warto dodać jeszcze informację, kto jest nadawcą tego komunikatu. O ile w wypadku naszego napisu nie jest to najistotniejsze, to dobrze sprawdzi się w dialogach, kiedy praca kamery może sprawić, że nie zawsze będzie widać postaci w trakcie mówienia (np. w grach wykorzystujących widok z trzeciej osoby). W przeciwnym wypadku gracz może nie mieć jasności, co do przebiegu dialogu, i w efekcie w ogóle nie zrozumieć, co się dzieje. Czasem można spotkać się z zapisem imion postaci wielkimi literami, aby odróżnić je od reszty wypowiedzi:

KLARA: [Drzwi trzeszczą] Niech to szlag! Zamknięte.

Warto również wspomnieć o napisach kierunkowych, które wskazują, skąd dochodzi dźwięk, np. jeżeli w niewidocznej części ekranu byłoby słychać kroki, na ekranie moglibyśmy wyświetlać odpowiedni napis ze strzałką, wskazującą kierunek, z którego dochodzi dźwięk … i tyle nam na razie wystarczy.

Kodowanie nie zawsze kolorem

Teraz czas na uwzględnienie ślepoty barw. Sprawa okazuje się istotna, bo ślepota barw dotyka globalnie około 8% mężczyzn i około 0,5% kobiet. Dwa najbardziej rozpowszechnione typy ślepoty barw dotyczą nierozpoznawania kolorów zielonego lub czerwonego – są one postrzegane jako różne odcienie żółtego. Warto jeszcze zwrócić uwagę na rzadziej występujące typy: niepostrzeganie barwy niebieskiej oraz całkowitą niezdolność do rozpoznawania barw (monochromatyzm). Jednym ze sposobów uwzględnienia ślepoty barw jest udostępnienie predefiniowanych palet barw dla kluczowych elementów gry (np. wskaźników zdrowia i wytrzymałości postaci, podświetlenia interaktywnych elementów czy rozróżnienia wrogów i sojuszników). Niektóre gry idą o krok dalej, pozwalając graczowi na swobodny dobór kolorów dla kluczowych elementów. Informacje kodowaną kolorem możemy też zakomunikować w alternatywny sposób – znajdziemy tu zastosowanie dla szeregu rozwiązań, które sprawdzają się w oprogramowaniu użytkowym, takie jak chociażby wykorzystanie symboli i ikon, różnych kształtów czy etykiet. Dobrym przykładem ze świata gier jest łamigłówka „ChromaGun”, w której gracz strzela farbami, aby kolorować ściany i poruszające się po poziomach roboty. Roboty są przyciągane przez ściany tego samego koloru, a zadaniem gracza jest takie pokolorowanie fragmentów ścian, aby nakierować roboty na elementy otoczenia (np. przełączniki), które odblokowują przejście do następnego poziomu. Dla odróżnienia różnych kolorów zastosowano proste symbole i – co ciekawe – aby zachować logikę łączenia kolorów, symbole kolorów podstawowych łączą się, tworząc symbole kolorów drugorzędnych (np. symbol fioletu jest kombinacją symboli czerwonego i niebieskiego). Moglibyśmy też podejść do sprawy, tworząc różne elementy świata gry z myślą o dostępności od samego początku (ang. „accessible by design”), np. w „Horizon Zero Down” trawa, w której może się ukryć Aloy jest co prawda czerwona, ale odróżnia się wizualnie od innych traw i latają nad nią świetliki. Sprawia to, że jest ona łatwo dostrzegalna, niezależnie od tego, czy gracz rozróżnia kolory, czy nie. Na tym przykładzie można też dostrzec, że warto komunikować tę samą informację na możliwie wiele sposobów, bo tworzenie gry dostępnej dla osób ze ślepotą barw nie musi oznaczać pozbywania się zieleni i czerwieni. W wypadku naszych drzwi moglibyśmy rozważyć dodanie dodatkowej informacji zwrotnej w postaci wibracji kontrolera. Z czym raczej warto byłoby się wstrzymać, to z kolorowaniem wybranych słów w napisach dialogowych (np. słowa „Zamknięte”), gdyż zaryzykowalibyśmy obniżeniem ich czytelności. Jeżeli już potrzebujemy nadać jakieś kolory napisom, to róbmy to dla całej wypowiedzi postaci. Zaplanujmy też wcześniej paletę dostępną dla osób z różnymi typami ślepoty barw, a optymalnie dajmy graczowi wybór w kwestii tego, jakie kolory chce nadać wypowiedziom postaci i kolejnych uczestników ewentualnych dialogów.

Sterowanie wedle potrzeb

Pozostaje nam udostępnienie rekonfiguracji sterowania. Jest to opcja oczekiwana przez wielu graczy, bo umożliwia dostosowanie sterowania w grze do własnych potrzeb, a o to w końcu nam chodzi. Sposób sterowania definiuje to, jak gracz wchodzi w interakcje z grą – nie tylko w trakcie rozgrywki, ale także w różnego rodzaju menu. Źle dostosowane sterowanie może sprawić, że rozgrywka stanie się zbyt trudna, bolesna, a nawet niemożliwa, np. dla graczy z dystrofiami mięśniowymi czy z chorobą Parkinsona. Jednak dowolność to nie wszystko. Aby sama rekonfiguracja sterowania nie była zajęciem żmudnym, dobrze jest udostępnić graczom wcześniej zdefiniowane presety i możliwość ich samodzielnego tworzenia (np. preset do gry jedną ręką będzie doceniony zarówno przez gracza, który nie ma jednej dłoni, jak i takiego, który ma rękę w gipsie). Innym sposobem jest uproszczenie samego sterowania przez wprowadzenie akcji kontekstowych, czyli przypisania różnym akcjom tego samego przycisku w zależności od kontekstu, w jakim znalazł się gracz, np. wykorzystanie tego samego przycisku do otwierania drzwi, szafek i okien, a także do włączania/wyłączania światła czy przestawiania dźwigni. Warto pamiętać też o dodatkowych opcjach, takich jak wspomaganie różnych czynności, np. celowania (ang. aim-assist) czy podążanie widoku kamery za przeciwnikiem (ang. lock-on target), które wymagają od gracza mniejszej precyzji ruchów i koordynacji. A gdyby się jednak okazało, że te zamknięte drzwi można wyważyć za pomocą szybkiego i częstego wciskania tego samego przycisku (ang. „button mashing”), to dobrze zapewnić graczowi możliwość zmiany tego na przytrzymanie lub jednorazowe kliknięcie przycisku. Warto uwzględnić również dostosowanie czułości różnych kontrolerów, a w wypadku siły wibracji kontrolera, którą zastosowaliśmy wcześniej, istotne dla nas będzie, aby gracz mógł zarówno regulować jej siłę, jak i całkowicie ją wyłączyć.

I tym sposobem przeszliśmy przez 3 podstawowe opcje dostępności na przykładzie prostych drzwi. Wykorzystaliśmy rozwiązania relatywnie proste i skalowalne na inne elementy gry oraz nie musieliśmy po drodze ingerować w wizję kreatywną czy warstwę artystyczną gry, aby zaproponować bardziej dostępne doświadczenie dla wielu graczy. Jednak to nie wszystko – jak to mawiają, „nothing about us without us”, dlatego warto abyśmy jeszcze skonsultowali proponowane zmiany z samymi graczami, zarówno przed, jak i po wdrożeniu.