Menu zapisu / wczytywania gry z wielu plików Unreal Engine 4

projektowanie-gier
gamedev
gry

#1

Witajcie.

jak w tytule mam problem ze zrobieniem menu wczytywania postępu gry z wielu plików, zamysł jest taki że każdy ‘zapis’, jest wykonywany w osobnym pliku co umożliwia łatwe kasowanie poprzednich zapisów i powrót do wcześniejszego zapisu, w wypadku chęci podjęci innej decyzji, np. dialogowej, czy uszkodzeniu pliku zapisu, system podobny zastosował

CDPR we Wiedźminie 3

, na którym chciałbym się wzorować. Zaznaczę że korzystam z Blueprints’ów i Widgetów, chciałbym aby całe to menu opierało się na właśnie widget’cie.

Nie proszę o rozwiązanie mojego problemu tylko rady :slight_smile:
Pozdrawiam QbSss


#2

Musisz do pliku zapisać cały istotny stan.
I potem tak zaprojektować całą grę żeby ustawić ten wczytane z pliku stan.

To będzie inne dla każdej gry i nie bez powodu gry lubią zapisywać np po opuszczeniu planszy albo tylko na save pointach. Bo save pointy umieszczasz w bezpiecznych lokacjach i wtedy nie ma problemu z zapisywanie przeciwników w losowych miejscach, którzy zabiją gracza chwilę po wczytaniu itp.

W ogóle odtwarzanie całego stanu świat jest bardzo trudne, zwykle chcesz zapamiętać tylko najważniejsze rzeczy. Ale bardzo łątwo zrobić game breaking bugi, np zapisałeś że już zużyłeś klucz ale nie zapisałeś że drzwi są otwarte i po wczytaniu nie da się przejść przez drzwi i klucza też się nie da zdobyć… im mniej takich rzeczy trzeba zapisać tym lepiej, przyciski resetujące level pomogą w niektórych bugach, dobrze zaprojektowany stan gdzie nie da się mieć popsutej wersji też pomaga.
Np jak masz stan Questa jako enum na którym jesteś etapie, to nie da się tego zablokować. Jak pamiętasz wszystko oddzielnie to łatwo coś zapamiętać bez sensu.

Silnik czasami może trochę pomóc - serializacja oznacza zapisanie stanu obiektu do pliku. Deserializacja wczytanie tego z pliku. Ale to gra musi określić co właściwie powinno byc zapisane a co nie. I musi umieć po wczytaniu pliku pozmieniać stan wszystkich obiektów w grze tak zeby pasował.