Game Pass na PC, a migracja i kopie zapisów gier

Niedawno zdecydowałem się na kupno gry Final Fantasy XV w promocji na Steamie. Wcześniej miałem okazję grać w nią dzięki Game Passowi na komputerze, ale nie wyrobiłem się z jej przejściem zanim zniknęła z usługi. Teraz chciałem więc zaimportować stan gry, żeby nie zaczynać zabawy od początku. To uświadomiło kolejną ułomność usługi Microsoftu (prócz problemów z niezawodnością instalacji / pobierania i kłopotami z dostępem do plików gier).

Otóż gry z Game Passa w większości nie trzymają swoich danych w typowych folderach jak Dokumenty czy „luzem” w ukrytym AppData. Zamiast tego używają specjalnego katalogu %LOCALAPPDATA%\Packages\. Specjalnego, ponieważ jego dane wyjątkowo są zawsze usuwane wraz odinstalowaniem gry (podczas gdy ze wspomnianych wcześniej folderów dane, jeśli w ogóle są usuwane, to dopiero po ręcznym zaznaczeniu stosownej opcji przy deinstalacji).

Pierwszym problemem z zapisami gier z Game Passa, jest więc konieczność pamiętania o zrobieniu kopii danych zanim odinstalujemy grę lub zniknie ona z usługi. Dane nie znikają zupełnie – są nadal w chmurze Microsoftu. Ale nie da się ich z niej pobrać bez ponownej instalacji gry (co jest niemożliwe, gdy zniknie ona z Game Passa).

Drugim problemem, jest struktura danych owego specjalnego katalogu. Nie ma w nim bowiem plików i folderów ze zwykłymi nazwami, które po prostu wystarczy skopiować do standardowej lokalizacji. Są one zakodowane i trzeba się domyślać co jest czym po rozmiarach plików i dacie modyfikacji. To może być sporym problemem, jeśli gra (tak jak FF XV w moim wypadku) sprawdza chociażby sloty zapisów (np. po rozmiarze domyślimy się, że 3 pliki to zapisy, ale już nie które sloty).

Mnie uratował tutaj skrypt od użytkownika Z1ni, który potrafił rozkodować całą strukturę danych (zmieniłem jedynie nazwę pakietu na właściwą dla FF XV – to może jednak nie zadziałać dla każdej gry, bowiem bardziej rozbudowana wersja skryptu ma już wyjątki dla niektórych gier z nieco innym układem plików i folderów).

Trzeba też pamiętać, że bywają gry zapisujące w swoich plikach identyfikator użytkownika z powiązanej usługi (np. Steama). W ich wypadku do migracji zapisanych gier może być więc konieczna edycja samych plików w celu podmiany identyfikatora (było to konieczne między innymi w grze Nier Automata).

Podsumowując więc, użytkownikom Game Passa radzę pamiętać o robieniu kopii zapasowych stanów gier jeśli mają w planach kupować je kiedyś na innych platformach i importować do nich zapisy. Ja używam w tym celu programu GameSave Manager, który można skonfigurować tak, aby automatycznie wykonywał kopie, np. raz na tydzień. Aplikacja ma też stale aktualizowaną bazę danych o grach, więc sama automatycznie wykrywa większość katalogów.

revanmj's tech blog