Czy istnieje praktyczny powód zapisywania danych gry w% UserProfile% \ Documents zamiast% AppData%?

33

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)

Piotr
źródło
4
@Loren Nie, zapisywana gra to plik / dane specyficzne dla aplikacji = APPDATA. Dokumenty użytkownika są dokumentami zapisanymi świadomie przez użytkownika. Tak definiowane są te miejsca.
Peter
1
Tak czy inaczej można się kłócić. Spodziewałbym się znaleźć zapisy w dokumentach, konfigurację w AppData.
Loren Pechtel,
2
W jaki sposób kampanie w grze nie są „dokumentami zapisywanymi świadomie”? A w jaki sposób dokumenty Photoshop (PSD) nie są „specyficzne dla aplikacji”?
Damian Yerrick
4
To mnie podglądało od dawna. Folder Dokumenty jest kiepskim miejscem do automatycznego umieszczania plików, niezależnie od tego, czy jest to dla nich odpowiednia lokalizacja, czy nie. Folder „Moje dokumenty” powinien być zarezerwowany dla MOICH dokumentów, które wyraźnie postanowiłem tam umieścić, aby móc śledzić moje osobiste rzeczy. Brak fragmentów danych związanych z połową oprogramowania w moim systemie. Co za bezbożny bałagan! Nawet nie używam już folderu Dokumenty. Używam własnego, na osobnym dysku, a następnie mam ten katalog w bibliotece dokumentów i usuwam domyślny.
Fuzzy Logic,

Odpowiedzi:

35

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.

Josh
źródło
2
Kolejną zaletą jest to, że użytkownicy mogą instalować światy, pakiety tekstur itp. Bez konieczności kopania w% APPDATA%.
Bardi Harbourow
14
Pamiętam, że SPORE zapisywał swoje dane w folderze moich dokumentów zamiast z %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 prymitywne save.datdecyzje, decydują się na umieszczenie tam swoich rzeczy.
Gustavo Maciel
Jest gdzieś dobry napis o tym, jak Spore się ściągnął, chciałbym go znaleźć.
TankorSmash,
2
Ktoś zapytał o to na tej stronie tutaj ; jedna z odpowiedzi dotyczy pisma, o którym być może myślisz (który znajduje się tutaj ).
Josh
6
Teoretycznie najlepszym sposobem działania w systemie Vista lub nowszym jest użycie 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.
bcrist
18

Patrząc na mój dysk, mam

  • 1 gra, w której zapisywane są zapisywane gry %APPDATA%
  • 1 gra, w której zapisywane są zapisywane gry %LOCALAPPDATA%
  • 2 gry, w których zapisywane są „inne rzeczy” %APPDATA%
  • 3 gry, w których zapisujesz „inne rzeczy” %LOCALAPPDATA%
  • 2 gry, w których zapisywane są zapisywane gry %UserProfile%\Saved Games
  • 21 Gry, w których zapisywane są zapisywane gry i mnóstwo innych rzeczy %UserProfile%\Documents, nie licząc ...
  • 15 gier, w których zapisywane są zapisywane gry i mnóstwo innych rzeczy %UserProfile%\Documents\My Games

To stosunek 1: 9 z zapisami gry są przechowywane w %APPDATA%, %LOCALAPPDATA%, %UserProfile%\Saved Gameskontra %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 pliki Documents, 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 .

Piotr
źródło
1
Aby dodać kolejny punkt danych (a ponieważ byłem ciekawy), liczby na moim komputerze wynoszą 19, 10, 10, 17, 6, 45 i 31. Istnieje również 50 gier z zapisanymi grami i / lub innymi danymi w steam\userdatai 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.
Ross Ridge
@RossRidge Dzięki, to przydatne. Czy w twojej próbce widzisz tendencję do gier niezależnych w porównaniu do dużych gier studyjnych?
Peter,
Wydaje się, że bardziej prawdopodobne jest, że gry niezależne będą należeć do jednej z czterech pierwszych kategorii, choćby dlatego, że tam właśnie środowisko wykonawcze umieszcza różne elementy (np. Flash).
Ross Ridge,
4

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.

Patrick
źródło
1
Steam ma pamięć masową w chmurze od 2009 roku. Jednak programiści muszą jednak z niej korzystać i działa tylko wtedy, gdy użytkownik ją włączył. Większość nowszych gier obsługuje teraz tę funkcję, ale wiele starszych nie.
bcrist
Wykorzystam każdą wymówkę, aby powiedzieć ludziom, że muszą tworzyć kopie zapasowe, i lubię też spójność, ale katalog danych aplikacji nie jest „dziwnym miejscem” do przechowywania danych aplikacji, folder dokumentów to. Przechowywanie plików, do których nie należą, znacznie utrudnia mi zarządzanie kopiami zapasowymi.
Marcks Thomas
0

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.

David
źródło
3
Jestem prawie pewien, że otrzymujesz APPDATA (C: \ Users \ Nazwa użytkownika \ AppData), która jest zapisywalna przez użytkownika, pomieszana z PROGRAMDATA (C: \ ProgramData), która często nie jest zapisywalna przez użytkownika. windows.microsoft.com/en-us/windows-8/what-appdata-folder
Patrick M
1
Chodzi o to, że% APPDATA% jest do zapisu przez użytkownika. Jest to szczególnie ważne, ponieważ C: \ Program Files nie jest zapisywalny przez użytkownika.
Bardi Harbourow
@PatrickM Masz rację, mówiłem o ProgramData. Przepraszam. Jaki jest najlepszy sposób na usunięcie odpowiedzi?
David
0

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%\AppDatanie nadaje się do tego.

kdb
źródło
-3

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.

Sektor
źródło
3
Ten folder jest chroniony przed zapisem. Musisz zacząć grę jako admirator. Jest to denerwujące i nie jest dostępne dla wszystkich użytkowników (na przykład rodzic, który chce chronić swój komputer przed dziećmi instalującymi cokolwiek).
Vaillancourt
1
"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.
Peter,