Папка с моими документами заполнена подпапками различных игр, в том числе некоторых самых последних игр AAA. Как профессиональный разработчик приложений, не имеющий опыта работы в игровой индустрии, это просто неправильно, эти файлы принадлежат% APPDATA% или% LOCALAPDATA%.
У меня вопрос: есть ли сознательное решение поместить эти файлы в% UserProfile% \ Documents, чтобы получить некоторые конкретные преимущества, или это просто устаревшее поведение, перенесенное со времен Windows XP? Или есть еще лучшая причина, например, Steam, требующий или рекомендующий это, или популярный движок, делающий это по умолчанию?
Связанный: В какой директории записать игру, сохранить файлы / данные? (чтобы избежать бессмысленных дискуссий)
Ответы:
Нет, не совсем.
Разработчики игр традиционно не были в состоянии соблюдать соглашения, установленные операционной системой. Хотя, честно говоря, многие обычные разработчики приложений тоже этого не делают.
В
%AppData%
и документах папки для сохранения каждого пользователя данных. Различие между ними для целей этого вопроса заключается, главным образом, в том, что%AppData%
туда, куда пользователь не должен видеть или взаимодействовать, а папка документов предназначена для документов пользователя : вещи, которые он хотел бы видеть и взаимодействовать с ними. ,Игры иногда сохраняют свои настройки и сохраняют файлы в папке документов, потому что это делает их видимыми, поэтому менее технические пользователи увидят их и будут уверены, что они существуют, или с большей вероятностью правильно их создадут, если их метод резервного копирования является сырой, "скопировать вещи из моей пользовательской папки на другой диск".
Игры также иногда хранят файлы там, потому что они не изменили поведение соответствующего кода по сравнению с более старыми версиями ОС, как вы подозреваете, или просто потому, что им не нужно слишком много думать о проблеме.
Это глупо и обычно неправильно, но это то, что есть.
источник
%appdata%
обратной стороне, когда я их получил. Когда я посмотрел в его папку, все мои существа были сохранены в виде изображений в формате png, это было довольно удивительно, и я думаю, что это было специально помещено в папку документов, чтобы люди могли легко делиться и загружать больше существ и транспортных средств. С учетом вышесказанного, я понятия не имею, почему игры, которые используют только сырую,save.dat
решают поместить свои вещи туда.SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)
по умолчанию%UserProfile%\Saved Games
. Таким образом, пользователь может легко найти и сохранить свои сохраненные игровые данные, но это не помешает. Любые данные, кроме хода выполнения и / или конфигурации (например, скомпилированные шейдеры, оптимизированные для платформы или загруженные ресурсы и т. Д.), Должны помещаться в appdata.Глядя на мой диск, у меня есть
%APPDATA%
%LOCALAPPDATA%
%APPDATA%
%LOCALAPPDATA%
%UserProfile%\Saved Games
%UserProfile%\Documents
, не считая ...%UserProfile%\Documents\My Games
Это соотношение 1: 9 для сохранений хранятся в
%APPDATA%
,%LOCALAPPDATA%
, по%UserProfile%\Saved Games
сравнению с%UserProfile%\Documents\*
. В моем примере все 4 игры, в которых нет сохраненных игр,%UserProfile%\Documents\
или%UserProfile%\Documents\My Games\
из крошечных студий. Поэтому я должен предположить, что большие студии с многомиллионными затратами на разработку имеют причину для размещения всех своих файлов, включая временные файлы%UserProfile%\Documents\*
.Хотя устаревшее поведение может объяснить это, я не думаю, что это достаточно веская причина для учета того, что каждая крупная студия помещает свои файлы в неправильное место. Так что должна быть лучшая причина.
Лучшая причина, которую я могу придумать, - это снизить стоимость поддержки клиентов . Проблема в том, что
%APPDATA%
и%LOCALAPPDATA%
скрытые каталоги, и никто, кажется, не знает%UserProfile%\Saved Games
. Размещая файлыDocuments
, студии могут сэкономить деньги на звонках в службу поддержки, которые спрашивают, как сделать резервную копию сохраненных игр или как перенести сохраненные игры с одного компьютера на другой. Примеры пользователей, которые не смогли найти сохраненные игры, потому что они находились%APPDATA%
здесь , здесь , здесь и здесь .Другая причина может быть в том, что пользователи просят об этом , как это происходит в этом примере .
источник
steam\userdata
5 играх. с сохранениями / данными в%ProgramData%
. Это не относится к играм, которые хранят все эти вещи в своем каталоге установки или сумели найти какое-то другое место для хранения данных или сохранений.Я не хочу вспоминать количество игр, которые мне пришлось запустить заново после резервного копирования / восстановления или тому подобного, потому что я переместил все свои важные файлы из своих документов, но совершенно забыл о данных пользовательских приложений, таких как файлы сохранения, потому что это часто в файлах программы или других странных местах (например, в скрытой папке, такой как appdata).
Лично по этой причине мне нравится иметь это в моих документах, хотя я уверен, что кто-то скажет мне просто получить надлежащую систему резервного копирования вместо того, чтобы делать это вручную.
Было бы неплохо немного согласоваться, и еще лучше было бы, чтобы такие сервисы, как Steam, хранили где-то копии сохраненных файлов в сети.
источник
Исходя из моего личного опыта, я решил сохранить в% UserProfile%, потому что пользователь всегда имел к нему доступ для чтения / записи / изменения без необходимости изменения каких-либо разрешений.
Это было не так с% APPDATA%. В частности, при использовании учетных записей с ограниченным доступом у вас часто нет прав на запись в файлы, созданные другими учетными записями в% APPDATA%. Я предполагаю, что названия AAA сделали выбор по той же причине, что и мы; мы не хотели головной боли.
источник
С моей личной точки зрения как пользователя, я в первую очередь различаю данные, для которых я хочу создать резервную копию, и данные, которые меня не волнуют.
Создание инкрементных резервных копий
%LOCALAPPDATA%
является беспорядком, поскольку оно будет загромождать резервные копии десятками тысяч временных файлов, многие из которых заблокированы фоновыми службами. Это делает резервное копирование медленным (большие издержки из-за большого количества маленьких файлов) и излишне большими (часто меняющиеся временные файлы саботируют «инкрементную» часть). Для предотвращения этого необходимо вручную вести список исключений.%APPDATA%
немного лучше, так как он не должен содержать временные файлы, такие как кэши - к сожалению, в любом случае, и многие настройки программы действительно не требуют резервного копирования.В конечном счете, сохраненные игры - это тип данных, с которыми я хочу взаимодействовать как пользователь, и
%UserProfile%\AppData
это не поддается этому.источник
Почему бы не использовать / "папку установки игры" / savegame /, как это было в старых играх? Я никогда не понимал, зачем помещать savegames в скрытую папку или даже в мои документы на системный диск?
В старые времена вы всегда знали, где находятся игры.
источник
"game installation folder"
есть%ProgramFiles%\<gamename>
.%ProgramFiles%
предполагается изменять только во время установки / удаления программ. Поскольку приложения Windows XP / Vista, выполняющие запись в этот каталог, необходимо запускать с правами администратора, скажем, вирусу трудно заменить word.exe на зараженную версию word.exe. Другая причина заключается в том, что Microsoft хотела, чтобы несколько пользователей могли использовать одни и те же программы без необходимости делиться своими личными файлами, в данном случае - с играми. Есть и другие / лучшие способы решения этих проблем, но они не были выбраны в то время.