Osiągnięcia w świecie retro

Już od wielu lat w świecie gier pecetowych i konsolowych są dostępne osiągnięcia. Dla niewtajemniczonych, jest to lista wyzwań, które oferuje dana gra. Wypełnianie tych wyzwań nie daje nam wymiernej wartości. Możemy się nimi pochwalić przed kolegami, bądź być po prostu dumni z samych siebie. Domeną osiągnięć były nowe generacje konsol. Grając w gry wyprodukowane w ciągu ostatniej dekady możemy mieć sporą pewność, że system osiągnięć w jakiś sposób został w nich zaimplementowany. Gry retro takiego luksusu nie miały, nikt wtedy nie myślał o podobnych cudach…

Aż tu nagle pojawia się http://retroachievements.org będący rozwiązaniem dla „łowców aczików” spoglądających z tęsknotą na stare czasy. Strona oferuje oprogramowanie, które pozwala zdobywać osiągnięcia w starych gier, odpalanych z poziomu emulatora. Potrzebujemy tylko odpalić plik ROM, a system będzie potrafił poprawnie zinterpretować nasze poczynania. Na warsztat weźmiemy kilka stary gier i zobaczymy jak to wszystko sprawdza się w praktyce.

Projekt jest opec source, więc można z niego korzystać na wiele sposób. Najbardziej popularne są dwa:

  • ściągamy emulator ze strony retroachievements pod konkretną platformę i nim odpalamy gry
  • korzystamy z RetroArch, który posiada już zintegrowanym system pod retroachievements

Aby nasze osiągnięcia mogły być śledzone i synchronizowane z serwerem, który będzie trzymał informacje na ich temat, potrzebujemy założyć konto na stronie. Jest to proces szybki i bezpłatny, nie musimy się obawiać żadnych haczyków.

Jeżeli mamy już zainstalowane emulatory i przygotowane gry można spróbować zdobyć nasze pierwsze retro osiągnięcia. Warto zacząć od znalezienia, czy nasza gra posiada osiągnięcia. Możemy to zrobić tutaj: https://retroachievements.org/achievementList.php. Mój wybór padł na Super Mario Land 2: 6 Golden Coins z Gameboy’a.

Do pierwszej gry użyłem emulatora ze strony retroachievements – RAVisualBoyAdvance. Może nie posiada specjalnie dużo opcji konfiguracji, ale wszystkie podstawowe ustawienia (takie jak okna, klawisze czy dźwięk) można odszukać i zmienić bez większego problemu. Nie należę do cierpliwych graczem, szczególnie w grach retro. Lubię korzystać z szybkich zapisów – jest to mój lek na irytację spowodowaną mało zbalansowanym gameplayem i skaczącym poziomem trudności. Czy korzystanie z takich systemów jest czymś złym, łamiącym poczucie imersji – to pozostawiam bez odpowiedzi. Jeżeli ktoś potrzebuje wyzwania i poczucia ‚true experience’ to niech wyciągnie swojego zakurzonego GameBoya z szafy ;). Kiedy zaczniemy bawić się stanami gry, pierwsze co zobaczymy, to komunikat, że używanie ich wyłącza hardcore mode. Zasada prosta: kiedy nie używamy stanów gry, dostajemy podwójne punkty za osiągnięcia. Decyzja zależy od nas.

I już po krótkim czasie, udało się. Wpadło osiągnięcie – ukończenie pierwszego świata. Nie było to wielkie wyzwanie, ale wyskakujący komunikat, ze stylową ikonką cieszy. W momencie wbicia osiągnięcia ląduje ono automatycznie na moje konto, gdzie widnieje na liście wbitych osiągnięć.

Jeżeli potrzebujemy, możemy z poziomu emulatora wyświetlić również listę osiągnięć z opisami, a nawet ze statystykami – ile osób w ostatnim czasie wbiło to osiągnięcie.

Drugim, wspomnianym wcześniej sposobem wbijania osiągnięć jest wykorzystanie RetroArch. Jest to pogram, który w połączanie z odpowiednimi core’ami (’emulatorami’ ściąganymi z poziomu programu) i romami powinien nam zapewnić podobne doświadczenie. Tym razem odpalimy sobie klasycznego Mariana.

Domyślny wygląd pojawiających się powiadomień nie jest zbyt atrakcyjny, jednakże RetroArch słynie z niesłychanych możliwości moderskich i na pewno ktoś już się zajął, projektując o wiele ładniejszy interfejs.

Na koniec pokusiło mnie, aby odpalić coś ‚nowszego’, ponieważ system sięga swoimi możliwościami do PSX i Nintedo 64. Pierwsze osiągnięcie z Mario Kart 64 wjechało, aż miło 🙂

Jak wcześniej wspominałem, wszystkie nasze osiągnięcia zapisują się dla naszego założonego i zalogowanego użytkownika. Każda gra zawiera ich od kilku do kilkunastu, każde wycenione na liczbę punktów adekwatnych do poziomu trudności – czym trudniej, tym więcej punktów. Liczbą punków możemy się ścigać ze znajomymi lub mogą służyć do śledzenia naszego własnego progresu, podobnie jak na konsolach.

Można na koniec zastanowić się jak to w ogóle działa. Przecież kiedyś gry nie były projektowane pod osiągnięcia i w jaki sposób system potrafi rozpoznać kiedy coś uda nam się osiągnąć. Emulator, który wspiera osiągnięcia, na bieżąco obserwuje pamięć gry. Działa to tak, że kiedy odpalamy grę, odpalamy ją z romu, który jest statycznym plikiem. Nic go nie może zmienić, nawet nasze postępy w grze. Tak samo jakbyśmy włożyli kartridż do starej konsoli. żadne dane nie są na nim zapisywane. Wszystko dzieje się w pamięci konsoli. W emulatorze pamięć konsoli jest odwzorowywana i analizowana. I tutaj dzieje się magia. Pamięć ta jest przeszukiwana pod kątem wcześniej zapisanych, specyficznych jej fragmentów, które mogą opisywać pewne stany w grze. Na przykład: liczba pieniążków trzymana w jednym fragmencie pamięci, a informacja, że nasz bohater właśnie skoczył i znajduje się w powietrzu w innym. Osiągnięcia do naszych retro gier tworzone są przez społeczność graczy, która analizuje jak gra oddziałuje na wirtualną pamięć i co jest w niej zapisywane. Niestety projektowanie osiągnięć na podstawie zmian w pamięci nie daje nam całkowicie wolnej ręki na to, jakie osiągnięcia będą znajdować się w grze. Czasami wywnioskowanie pewnych stanów może być zbyt skomplikowane, pracochłonne lub po prostu niemożliwe. Patrząc jednak na listę osiągnięć do kilku przypadkowych gier. Różnorodność jest naprawdę spora.