Mój folder dokumentów jest zalany podfolderami różnych gier, w tym niektórych najnowszych tytułów AAA. Jako profesjonalny twórca aplikacji bez doświadczenia w branży gier, jest to po prostu błędne, pliki te należą do% APPDATA% lub% LOCALAPDATA%.
Moje pytanie brzmi: czy istnieje świadoma decyzja o umieszczeniu tych plików w folderze% UserProfile% \ Documents w celu uzyskania określonych korzyści, czy jest to tylko starsze zachowanie przeniesione z czasów systemu Windows XP? A może jest jeszcze lepszy powód, np. Steam wymagający lub polecający to, lub popularny silnik domyślnie to robi?
Powiązane: W jakim katalogu pisać pliki / dane do zapisywania gier? (aby uniknąć bezcelowych dyskusji)
Odpowiedzi:
Nie, nie bardzo.
Twórcy gier tradycyjnie nie byli świetni w przestrzeganiu konwencji ustanowionych przez system operacyjny. Chociaż, mówiąc uczciwie, wielu zwykłych twórców aplikacji też tego nie robi.
Te
%AppData%
i dokumenty foldery są do zapisywania danych poszczególnych użytkowników. Różnica między nimi, na potrzeby tego pytania, polega przede wszystkim na tym, w%AppData%
czym idzie to, czego użytkownik nie powinien widzieć ani na co wchodzi w interakcję, a folder dokumentów dotyczy dokumentów użytkownika : rzeczy, z którymi chciałby się zapoznać i z którymi powinien współpracować .Gry czasami przechowują swoje ustawienia i zapisują pliki w folderze dokumentów, ponieważ sprawia, że są widoczne, więc mniej techniczni użytkownicy zobaczą je i zapewnią, że istnieją, lub istnieje większe prawdopodobieństwo, że utworzą kopię zapasową, jeśli ich metoda tworzenia kopii zapasowych jest prymitywne „skopiuj zawartość z mojego folderu użytkownika na inny dysk”.
Gry czasami przechowują tam również pliki, ponieważ nie zmieniły zachowania odpowiedniego kodu ze starszych wersji systemu operacyjnego, jak podejrzewasz, lub po prostu dlatego, że nie dbają o to, aby myśleć o problemie tak bardzo.
To głupie i zwykle złe, ale takie właśnie jest.
źródło
%appdata%
tyłu, kiedy je otrzymałem. Gdy przejrzałem jego folder, wszystkie moje stworzenia zostały zapisane jako obrazy png, co było dość niesamowite, i myślę, że celowo umieszczono je w folderze dokumentów, aby ludzie mogli łatwo udostępniać i pobierać więcej stworzeń i pojazdów. Powiedziawszy to, nie mam pojęcia, dlaczego gry, które wykorzystują tylko prymitywnesave.dat
decyzje, decydują się na umieszczenie tam swoich rzeczy.SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)
domyślnie takiego%UserProfile%\Saved Games
. W ten sposób użytkownik może łatwo znaleźć i wykonać kopię zapasową zapisanych danych gry, ale nie będzie to przeszkodą. Wszelkie dane inne niż postęp i / lub konfiguracja (np. Skompilowane shadery, zoptymalizowane pod kątem platformy lub pobrane zasoby, itp.) Powinny znajdować się w appdata.Patrząc na mój dysk, mam
%APPDATA%
%LOCALAPPDATA%
%APPDATA%
%LOCALAPPDATA%
%UserProfile%\Saved Games
%UserProfile%\Documents
, nie licząc ...%UserProfile%\Documents\My Games
To stosunek 1: 9 z zapisami gry są przechowywane w
%APPDATA%
,%LOCALAPPDATA%
,%UserProfile%\Saved Games
kontra%UserProfile%\Documents\*
. W mojej próbce wszystkie 4 gry, w których nie zapisano zapisanych gier%UserProfile%\Documents\
lub%UserProfile%\Documents\My Games\
pochodzą z niewielkich studiów. Muszę więc założyć, że duże studia z wielomilionowymi kosztami rozwoju mają powód do umieszczenia wszystkich swoich plików - w tym plików tymczasowych%UserProfile%\Documents\*
.Chociaż starsze zachowanie może to wyjaśnić, nie sądzę, aby było to wystarczający powód, aby brać pod uwagę każde duże studio, które umieszcza swoje pliki w niewłaściwym miejscu. Więc musi być lepszy powód.
Najlepszym powodem, dla którego mogę wymyślić, jest obniżenie kosztów obsługi klienta . Problemem jest to, że
%APPDATA%
i%LOCALAPPDATA%
ukryte katalogi, a nikt nie wie o%UserProfile%\Saved Games
. Umieszczając plikiDocuments
, studia mogą zaoszczędzić pieniądze na połączeniach z pomocą techniczną, które pytają, jak wykonać kopię zapasową zapisanych gier lub jak migrować zapisywane gry z jednego komputera na inny. Przykłady użytkowników, którzy nie mogli znaleźć zapisanych gier, ponieważ znajdowali się%APPDATA%
tutaj , tutaj , tutaj i tutaj .Innym powodem może być to, że użytkownicy o to proszą , jak dzieje się w tym przykładzie .
źródło
steam\userdata
i 5 gier z zapisami / danymi w%ProgramData%
. Nie uwzględnia to żadnych gier, które przechowują wszystkie te rzeczy w katalogu instalacyjnym lub nie udało się znaleźć innego miejsca do przechowywania danych lub zapisywania.Nie dbam o to, żeby przypomnieć sobie liczbę gier, które musiałem zacząć od nowa po utworzeniu kopii zapasowej / przywróceniu lub podobnej rzeczy, ponieważ przeniosłem wszystkie ważne pliki z dokumentów, ale całkowicie zapomniałem o danych aplikacji użytkownika, takich jak pliki zapisu, ponieważ są one często w plikach programu lub w innych dziwnych miejscach (np. w ukrytym folderze, takim jak appdata).
Osobiście z tego powodu lubię mieć to w swoich dokumentach, chociaż jestem pewien, że ktoś powie mi, żebym po prostu dostał odpowiedni system tworzenia kopii zapasowych zamiast robić to ręcznie.
Przydałaby się odrobina spójności, a jeszcze lepiej byłoby, gdyby serwisy takie jak Steam zatrzymywały gdzieś kopie plików zapisu w sieci.
źródło
Z własnego doświadczenia postanowiłem zapisać w% UserProfile%, ponieważ użytkownik zawsze miał dostęp do odczytu / zapisu / modyfikacji bez konieczności zmiany któregoś z uprawnień.
Nie było to prawdą w przypadku% APPDATA%. W szczególności podczas korzystania z kont użytkowników z ograniczeniami często nie masz dostępu do zapisu do plików utworzonych przez inne konta w% APPDATA%. Wyobrażam sobie, że tytuły AAA dokonały wyboru z tego samego powodu, co my; nie chcieliśmy bólu głowy.
źródło
Z mojej osobistej perspektywy, jako użytkownika, przede wszystkim rozróżniam między danymi, dla których chcę tworzyć kopie zapasowe, a danymi, w których mnie to nie obchodzi.
Tworzenie przyrostowych kopii zapasowych
%LOCALAPPDATA%
jest bałaganem, ponieważ zaśmieci kopie zapasowe dziesiątkami tysięcy plików tymczasowych, z których wiele jest zablokowanych przez usługi w tle. Powoduje to, że tworzenie kopii zapasowych jest powolne (wysoki narzut z wielu małych plików) i niepotrzebnie duże (często zmieniające się pliki tymczasowe sabotują część „przyrostową”). Zapobieganie temu wymaga ręcznego utrzymywania listy wykluczeń.%APPDATA%
jest nieco lepszy, ponieważ nie powinien zawierać plików tymczasowych , takich jak pamięci podręczne - niestety tak i tak, a wiele ustawień programu naprawdę nie gwarantuje kopii zapasowej.Ostatecznie, zapisywanie gier to rodzaj danych, z którymi chcę wchodzić w interakcje jako użytkownik, i
%UserProfile%\AppData
nie nadaje się do tego.źródło
Dlaczego nie użyć / „folderu instalacji gry” / savegame / tak jak starsze gry? Nigdy nie rozumiałem, dlaczego zapisywać gry w ukrytym folderze, a nawet w moich dokumentach na dysku systemowym?
W dawnych czasach zawsze wiedziałeś, gdzie są zapisywane gry.
źródło
"game installation folder"
jest%ProgramFiles%\<gamename>
.%ProgramFiles%
ma być modyfikowany tylko podczas instalacji / deinstalacji programów. Ponieważ aplikacje Windows XP / Vista piszące do tego katalogu muszą być uruchamiane jako administrator, aby utrudnić, powiedzmy, wirusowi zamianę word.exe na zainfekowaną wersję word.exe. Innym powodem jest to, że Microsoft chciał, aby wielu użytkowników mogło korzystać z tych samych programów bez konieczności udostępniania swoich plików osobistych, w tym przypadku zapisywanych gier. Istnieją inne / lepsze sposoby rozwiązania tych problemów, ale nie zostały one wówczas wybrane.