Zapisy w grach - z punktu widzenia gracza i programisty.

in #pl-publicystyka6 years ago (edited)

Zapisy, punkty kontrolne - Czym są każdy z nas intuicyjnie wie, pozwalają na zapamiętanie postępu, powrót, jeśli coś nam nie wyjdzie lub będziemy chcieli zrobić to inaczej. Czym są jednak w ujęciu technicznym? W jaki sposób gra zapamiętuje to, co wydarzyło się podczas rozgrywki? Cóż, w uproszczeniu są to po prostu dane o umiejscowieniu przedmiotów, stanie postaci, wykonaniu zadań. Nie zawsze jest to takie proste i czasami twórcy muszą stosować pewne sztuczki.

Zacznijmy jednak od początku. Historycznie pierwszą formą zapisu gry jest... Brak zapisu. Tak, właśnie brak zapisu. No dobrze, ale w takim razie, w jaki sposób gracz będzie miał uczucie postępu? Cóż, tutaj przychodzą pierwsze sztuczki twórców gier.

  • Portale, skróty i rozdroża. Mechanizm prosty w implementacji, w takim Mario, mogliśmy znając odpowiedni sekret już z drugiej planszy dostać się do 4 świata, przeskakując kilkanaście etapów do przodu, z niego zaś mogliśmy pominąć kolejne etapy i wylądować prawie przed komnatą z Księżniczką. Innym sposobem było wybranie odpowiedniej ścieżki w labiryncie poziomów - tutaj przydawały się mapy często rysowane przez graczy.

  • Kody i hasła. Nieco bardziej sprawiedliwa forma zapisu postępu. W poprzednim przypadku gracz mógł wcale nie dowiedzieć się o sekrecie, lub wiedza ta wcale nie odzwierciedlała jego zaangażowania w rozgrywkę. Sami zresztą pamiętacie, że o ukrytej ścieżce szybko wiedziało całe osiedle, a osoba, która ją znalazła była królem przez dobry tydzień. Hasła natomiast pojawiały się po zakończeniu etapu i pozwalały na rozpoczęcie gry z pominięciem poprzednich. Miało to sens przy długich i rozbudowanych tytułach, jednak szybko okazało się niewystarczające.

Twórcy, zwłaszcza konsol borykali się z problemem braku zewnętrznej pamięci, nie było po prostu gdzie zapisywać stanów, ratowano się, więc takimi rozwiązaniami. Brak zapisu miał też swoje zalety. Znacznie podnosił poziom trudności i nadawał rozgrywce charakter tej znanej z salonów z automatami. Gry mogły być, więc faktycznie krótsze, bo zakładano kilkaset podejść zanim nauczymy się bezbłędnego przejścia. W pewnej formie te rozwiązania przetrwały do dziś znajomość gry pozwala na osiągnięcie przewagi na etapie nieprzewidzianym przez twórców - Przykładem jest chociażby seria Dark Souls. Powszechnie korzystają z niej też Speedrunerzy.


Źródło

Historycznie pierwszą grą, która korzystała z systemu zapisu był Zork I - Przygodówka tekstowa wydana w 1980 roku na większości dostępnych wtedy komputerów. Obecny w niej system zapisów był krytykowany, jako oszustwo. Ostatecznie jednak nikt się tym nie przejął i opcje zaznaczenia postępu pojawiały się w kolejnych produkcjach, pozwalając na rozgrywkę przez dłuższy czas, bez sprowadzania mechaniki do czystej zręczności. Pojawiły się gry takie jak The Legend of Zelda czy Final Fantasy.

O ile jednak z grami komputerowymi nie było problemu, bo posiadały pamięć, na której można było zapisywać dane, lub były wydawane na dyskietkach, które można nadpisywać, tak w przypadku konsol nie było tak prosto. NES czy popularna u nas jego kopia Pegasus nie posiadały pamięci, po wyłączeniu konsoli, wszystko zaczynaliśmy od nowa. Problem ten jednak dało się obejść poprzez umieszczenie dodatkowego RAM w nośniku gry. Wymagało to dodatkowej baterii i podnosiło dwukrotnie cenę produkcji każdej kopii. Było jednak warto. Gracze czekali na bardziej rozbudowane tytuły, a gry odniosły sukces trwający do dziś. Później pojawiły się konsole z kartami pamięci, dyskami twardymi aż doszliśmy do przechowywania zapisów w chmurze. Technologiczne bariery zostały zniesione, a forma zapisu stała się ciekawym aspektem budowy gameplayu

Wraz z upowszechnieniem się idei zapisu postępów pojawiło się kilka możliwych opcji. Pozwoliły one zarządzać stopniem trudności gry, wywierać presję na graczu. I tak, jedna z opcji jest zwykły punkt kontrolny częsty w grach akcji, strzelankach. Zabij wrogów na tym korytarzu, przebiegnij 200 metrów i przeskocz przez płot. Brawo, masz ciasteczko, to znaczy możliwość zapisu. Przez to trudność rośnie wraz z odległością, a my z utęsknieniem czekamy na kolejną okazję do zaznaczenia progresu. Jest to też swoistego rodzaju punkt bez powrotu, jeśli podejmiemy decyzję, której będziemy żałować, lub coś nam nie pójdzie - Trudno klamka zapadła. Z tego rozwiązania czerpią chociażby gry studia Telltale czy This war of mine. Oczywiście te rozwiązania są słabe grach z otwartym światem jednak i tam mogą istnieć w zmienionej formie.

Budki telefoniczne, łazienki, kasety, łóżka, ogniska i tym podobne elementy w świecie gry. Mogą służyć, jako miejsca zapisu postępu, wymagają one od gracza wykonania konkretnej czynności czasami związanej z odpuszczeniem, jeśli sytuacja jest zbyt ciężka. Nie ryzykujemy dla lepszego sprzętu, tylko zabieramy to, co mamy i idziemy zapisać. Wrócimy tutaj, kiedy indziej. Takie rozwiązanie pozwala na większy poziom trudności w grach z otwartym światem. Przykładem jest tutaj Dark Souls, (który zasadniczo korzysta z 2 rodzajów zapisów), seria GTA czy najnowszy Kingdom Come. Przy tym ostatnim jest jeszcze drugi sposób traktowania zapisu. Jeśli możliwość ta jest cenna dla gracze - Pozwólmy mu, ale niech go to trochę kosztuje. Przedmioty potrzebne do zapisu z jednej strony pozwalają dać graczowi nieco swobody i stopniowania trudności na jego zasadach, z drugiej zaś zapis coś znaczy - nie jest darmowy, więc będzie wykorzystywany tylko w ważnych momentach.


Źródło Oczywiście nie mogło zabraknąć Gothica.

Ostatnim sposobem zapisu jest zapis w dowolnym momencie, czy to manualnie czy quicksave. Tutaj mechanika zapisu nie wpływa na poziom trudności, nie jest też powiązana z gameplayem. Często korzysta się z niej w strategiach, grach z otwartym światem. Jeśli gra pozwala na kilka zapisów - możemy wracać do ważniejszych momentów i niejako cofać czas, tak, aby rozgrywka potoczyła się po naszej myśli. Inaczej jest jednak w przypadku gry gra zapisuje w sposób ciągły. Tak jak ma to miejsce w grach z systemem permadeath. W takim Darkest Dungeon, gra nadpisuje się po każdym wydarzeniu, a jeśli nawet wyłączymy komputer z zasilania w trakcie walki - i tak do niej wrócimy a nasze postaci pozostaną martwe.

Tak wyglądają zapisy z perspektywy gracza, jednak jest to tylko wierzchołek góry lodowej. Z punktu widzenia programisty jest to o wiele bardziej skomplikowane, zwłaszcza, jeśli chcemy, aby nasze rozwiązanie było optymalne, bo wiecie, KISS. Tutaj znów musimy cofnąć się do początku i zastanowić się nad tym, co w takiego save'a powinno wchodzić?

Załóżmy, że mamy wielki otwarty świat. Jest on w pewien sposób zbudowany, postacie mają znajdować się w konkretnych miejscach, przedmioty w danych skrzyniach itp. Ten świat jest piękny, wszystko jest idealnie na swoim miejscu i działa w harmonii. Aż przychodzi gracz i swoją obecnością wszystko niszczy. Zmienia położenia przedmiotów, usuwa je, zabija postacie, zmienia statystyki i wprowadza trwałe zmiany w świecie przedstawionym. No masakra jakaś totalna. Po tym wszystkim wychodzi, a gra musi zadbać o to, aby gdy usiądzie do gry kolejny raz - wszystko było tak samo. Tworzy, więc plik zapisu, który zawiera zmiany, jakie gracz naniósł, i które będą potrzebne do odtworzenia w jak najlepszy sposób tego, co zrobił poprzednim razem. Przedmioty są przesuwane na odpowiednie pozycje, ciała zabitych postaci znikają lub pozostają w danym miejscu, nanoszone są zmiany trwałe, a wszystko to, o czym plik zapisu nie mówi pozostaje po staremu.


Źródło

Ciekawą kwestią jest chociażby kwestia zadań w takim Skyrim, tutaj każdy quest ma swój poziom, określa on stopień wykonania, według wzoru: 0 - zadanie nierozpoczęte, 1 - star zadania: znajdź 5 ziółek, 2 - zanieś ziółka do kowala, 3 - odbierz nagrodę, 4 - zadanie wykonane. W ten sposób możemy w łatwy sposób zaznaczyć, co gracz już zrobił, a co nie i jakie są tego konsekwencje.

Intuicyjnie, więc czujemy, że plik będzie rósł wraz z postępami i często tak właśnie jest. Optymalizacja Save nie zawsze jest priorytetem, czego przykładem jest chociażby Wiedźmin, który tworzył masę zapisów, każdy po około 20 mega. Ostatecznie były tam nie do końca potrzebne informacje, a wszystko mogło być znacznie lepiej zrobione. Pytanie tylko czy dla graczy problemem okazało się to, że kończyli grę z folderem zapisów grubym na kilka giga, raczej nie, więc nie było powodu, aby tracić na to czas i pieniądze. Inaczej było w przypadku konsol, zwłaszcza PS2, tutaj każdy kilobajt na 8 megowej karcie pamięci był na wagę złota. Developerzy starali się, więc ograniczać niezbędne dane do minimum.


Źródło

Najłatwiej było w grach akcji, tam każdy etap jest niejako oddzielnym światem, plik musiał zawierać więc informacje o tym gdzie znajduje się gracz, co posiada, jakie ma statystyki, jakie decyzje podjął w kluczowych punktach i w zasadzie tyle. Gorzej we wszelkiej maści RPG, te gry są prawdziwą kopalnią zmiennych, jednak i na to znaleziono sposób. Zapisywany jest stan gracza i ważnych postaci, w takim GTA stan zwykłych przechodniów nie ulega zapisowi, jest to podyktowane nie tylko kwestią wagi takiego save'a, ale też strukturą gry, jako takiej. Gracz jest tam w bańce, Świat powstaje tylko wokół niego, a znika zaraz za nim, Dzięki temu gra może oszczędzać zasoby komputera. Rozwiązanie to doprowadza jednak do takich sytuacji jak pościg w GTA: San Andreas gdzie po wejściu do domu i zapisaniu gry - policja automatycznie traciła nami zainteresowanie, a my widzieliśmy po wyjściu odjeżdżające radiowozy. Innym przykładem są chociażby wrogie posterunki, które jeśli nie mają osobnego systemu zdobywania - będą ponownie zaludniać się wrogami.


Źródło

Na zakończenie jeszcze kwestia powtórek z gier, zwłaszcza strategicznych. Nie zastanawialiście się jak gry zapisują powtórki? Gdyby robiły to w taki sam sposób jak tradycyjne zapisy - każda z takich gier byłaby ogromnym plikiem, gra musiałaby zapamiętać, każde poruszenie, każdy strzał pojedynczej jednostki. Tragedia dla systemu. Robi się to jednak inaczej. Zapisywane jest każde działanie gracze, każde klikniecie, akcja, wszystko. Potem komputer po prostu czyta tą listę i odtwarza wydarzenia. Strzały, zniszczenia są generowane w sposób pseudolosowy, więc za każdym razem są takie same. Jeśli jest to pełna losowość, wtedy, co akcje są zaznaczane, jednak nie wpływa to mocno na wagę takiej powtórki.


Źródło Z wszystkich 3 części Wiedźmin 3 jest najlepszy.

Uff 2 tysiące słów na wydawałoby się prosty temat, a jednak nie. Pozostało coś, co trzeba jeszcze powiedzieć. Mianowicie: Zapis przechodzący na kolejne części sagi. Jest to o tyle ciekawe rozwiązanie, że pozwala graczowi wcielić się w drugiej czy trzeciej części w tą samą postać, którą grał przez poprzednie odsłony cyklu. Jest z nią zżyty, on ją ukształtował i sprawił, że ma takie a nie inne umiejętności. Z oczywistych względów jest to wykorzystywane w różnych stopniach. Przykładowo w Wiedźminie, możemy importować postać z pierwszej części do drugiej i z drugiej do trzeciej. Przy importach możemy przenieść część złota i przedmiotów, a także, co najważniejsze wybory dokonane w poprzednich grach. Wraz z tym rodzi się jednak kłopot związany z potęgą gracza pod koniec gry. Jest ona zarówno materialna jak i obecna w statystykach. Postać, która mogła pokonać każdego, nagle staje się byle, kim i znów musi zaczynać wszystko od nowa. Z punktu widzenia fabularnego jest to rozwiązywane na różne sposoby, W Gothic 2 bohater leżał przygnieciony głazami, zaś w Gothic 3 - już gorzej, ukradziono mu sprzęt, a ogólny poziom trudności jest znacznie niższy niż w poprzednich częściach, no za wyjątkiem wilków.

Redakcja Gameeit wspierana jest przez DGameMarket - Pierwszy zdecentralizowany market dla graczy- kupuj i sprzedawaj bezpiecznie i natychmiastowo dzięki technologii Blockchain

Źródła:

https://forum.quartertothree.com/t/save-games-how-do-they-work/65695/42
https://www.quora.com/How-does-game-save-work
https://www.reddit.com/r/explainlikeimfive/comments/12wsq1/eli5_how_do_video_game_save_files_work/
http://en.uesp.net/wiki/Skyrim:The_Fallen#Quest_Stages
https://stackoverflow.com/questions/844133/how-do-games-handle-saved-content
https://en.wikipedia.org/wiki/Saved_game



Artykuł autorstwa: @barbarossastudio, dodany za pomocą serwisu GameeIT

Sort:  

Dobry artykuł. Nigdy głębiej nie zastanawiałem się jak robione są savey. Można się dużo na ten temat dowiedzieć.

Congratulations @gameeit! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Notifications have been disabled. Sorry if I bothered you.
To reactivate notifications, drop me a comment with the word NOTIFY

Jestem pewny że mam gdzieś jeszcze kartkę z kodami do pierwszego bandicoota i do pandemonium na psx'a

Świetny tekst! Czytało mi się to naprawdę z dużą przyjemnością :)

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63402.76
ETH 2554.52
USDT 1.00
SBD 2.66