Minha pasta de documentos está cheia de subpastas de vários jogos, incluindo os de alguns títulos AAA muito recentes. Como desenvolvedor de aplicativos profissional, sem experiência no setor de jogos, isso está totalmente errado, esses arquivos pertencem a% APPDATA% ou% LOCALAPDATA%.
Minha pergunta é: existe uma decisão consciente de colocar esses arquivos em% UserProfile% \ Documents para obter alguns benefícios específicos ou esse é apenas um comportamento herdado herdado dos dias do Windows XP? Ou existe uma razão ainda melhor como, por exemplo, o Steam exigindo ou recomendando isso ou um mecanismo popular fazendo isso por padrão?
Relacionado: Em qual diretório escrever o jogo, salvar arquivos / dados? (para evitar discussões inúteis)
Respostas:
Não, não mesmo.
Tradicionalmente, os desenvolvedores de jogos não são bons em respeitar as convenções estabelecidas por um sistema operacional. Embora seja justo, muitos desenvolvedores de aplicativos regulares também não.
As
%AppData%
pastas e documents são para salvar dados por usuário. A diferença entre eles, para os fins desta pergunta, é principalmente o local%AppData%
onde o usuário não precisa ver ou interagir, e a pasta de documentos é o documento do usuário : o material com o qual eles gostariam de ver e interagir. .Às vezes, os jogos armazenam suas configurações e salvam arquivos na pasta de documentos, porque os tornam visíveis, para que menos usuários técnicos os vejam e tenham a certeza de que eles existem, ou terão maior probabilidade de fazer backup deles corretamente se o método de backup for um bruto ", copie as coisas na minha pasta de usuário para outra unidade."
Às vezes, os jogos também armazenam arquivos lá porque eles não alteraram o comportamento do código relevante das versões mais antigas do sistema operacional, como você suspeita, ou simplesmente porque eles não se importam em pensar muito no problema.
É bobagem e geralmente errada, mas é o que é.
fonte
%appdata%
parte de trás quando o recebi. Quando olhei para a pasta, todas as minhas criaturas foram salvas como imagens png, o que foi incrível, e acho que foi colocado na pasta de documentos de propósito, para que as pessoas pudessem compartilhar e baixar mais criaturas e veículos com facilidade. Com isso dito, não tenho idéia de por que os jogos que usam apenas um produto brutosave.dat
decidem colocar suas coisas lá.SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)
que por padrão é%UserProfile%\Saved Games
. Dessa forma, o usuário pode encontrar e fazer backup de seus dados de jogos salvos facilmente, mas eles não atrapalham. Quaisquer outros dados que não sejam progresso e / ou configuração (por exemplo, sombreadores compilados, ativos baixados ou otimizados por plataforma, etc.) devem entrar em appdata.Olhando para o meu disco, eu tenho
%APPDATA%
%LOCALAPPDATA%
%APPDATA%
%LOCALAPPDATA%
%UserProfile%\Saved Games
%UserProfile%\Documents
, sem contar ...%UserProfile%\Documents\My Games
Essa é uma proporção de 1: 9 para savegames sendo armazenados em
%APPDATA%
,%LOCALAPPDATA%
,%UserProfile%\Saved Games
contra%UserProfile%\Documents\*
. Na minha amostra, todos os 4 jogos que não colocam savegames%UserProfile%\Documents\
ou%UserProfile%\Documents\My Games\
são de pequenos estúdios. Portanto, devo presumir que os grandes estúdios com milhões de custos de desenvolvimento têm uma razão para colocar todos os seus arquivos - incluindo arquivos temporários -%UserProfile%\Documents\*
.Embora o comportamento herdado possa explicar um pouco disso, não acho que seja uma razão suficientemente forte para explicar todos os grandes estúdios colocam seus arquivos no lugar errado. Então, tem que haver uma razão melhor.
A melhor razão pela qual consigo pensar é reduzir o custo do suporte ao cliente . O problema é que
%APPDATA%
e%LOCALAPPDATA%
são diretórios ocultos, e ninguém parece saber%UserProfile%\Saved Games
. Ao colocar os arquivosDocuments
, os estúdios podem economizar dinheiro em chamadas de suporte que perguntam como fazer backup de jogos de saves ou como migrar os jogos de uma máquina para outra. Exemplos de usuários que não conseguiram encontrar savegames porque estavam localizados%APPDATA%
aqui , aqui , aqui e aqui .Outro motivo pode ser porque os usuários solicitam , como acontece neste exemplo .
fonte
steam\userdata
e 5 jogos com salva / dados em%ProgramData%
. Isso não conta com nenhum jogo que mantenha tudo isso em seu diretório de instalação ou tenha conseguido encontrar outro local para armazenar dados ou salvar.Não lembro o número de jogos que tive que recomeçar após um backup / restauração ou algo semelhante, porque movi todos os meus arquivos importantes dos meus documentos, mas esqueci completamente os dados de aplicativos do usuário, como salvar arquivos, porque geralmente com arquivos de programa ou outros lugares estranhos (como em uma pasta oculta, como appdata).
Pessoalmente, por esse motivo, gosto de tê-lo em meus documentos, embora tenha certeza de que alguém me dirá para obter um sistema de backup adequado em vez de fazê-lo manualmente.
Um pouco de consistência seria bom e ainda melhor para serviços como o Steam manter cópias de arquivos salvos em uma rede em algum lugar.
fonte
De minha própria experiência pessoal, escolhi salvar no% UserProfile% porque o usuário sempre teve acesso de leitura / gravação / modificação a ele, sem precisar alterar nenhuma das permissões.
Isso não era verdade com% APPDATA%. Principalmente ao usar contas de usuário restritas, geralmente você não tem acesso de gravação a arquivos criados por outras contas dentro de% APPDATA%. Eu imagino que os títulos AAA fizeram a escolha pelo mesmo motivo que nós; nós não queremos a dor de cabeça.
fonte
Da minha perspectiva pessoal como usuário, eu distingo principalmente entre os dados dos quais eu quero backups e os que não me interessam.
Criando backups incrementais de
%LOCALAPPDATA%
é uma bagunça, porque sobrecarregará o backup com dezenas de milhares de arquivos temporários, muitos dos quais são bloqueados por serviços em segundo plano. Isso faz com que os backups sejam lentos (sobrecarga alta de muitos arquivos pequenos) e desnecessariamente grandes (os arquivos temporários que mudam frequentemente sabotam a parte "incremental"). Para evitar isso, é necessário manter manualmente uma lista de exclusão.%APPDATA%
é um pouco melhor, pois não deve conter arquivos temporários , como caches - infelizmente, de qualquer maneira, e muitas das configurações do programa realmente não justificam um backup.Por fim, os jogos salvos são um tipo de dados com o qual quero interagir como usuário, e eles
%UserProfile%\AppData
não se prestam a isso.fonte
Por que não usar / "pasta de instalação do jogo" / savegame / como os jogos mais antigos? Eu nunca entendi por que colocar savegames na pasta oculta ou mesmo nos meus documentos na unidade do sistema?
Antigamente, você sempre sabia onde estavam os jogos de saves.
fonte
"game installation folder"
is%ProgramFiles%\<gamename>
.%ProgramFiles%
is meant to be modified only during installation/deinstallation of programs. Since Windows XP/Vista applications writing to that directory need to be run as administrator, to make it harder for say, a virus to replace word.exe with an infected version of word.exe. Another reason is that Microsoft wanted multiple users to be able to use the same programs without having to share their personal files, in this case savegames. There are other/better ways to address these issues, but they were not chosen at the time.