Esiste un motivo pratico per salvare i dati di gioco in% UserProfile% \ Documents anziché in% AppData%?


33

La mia cartella documenti è piena di sottocartelle di vari giochi, inclusi quelli di alcuni titoli AAA molto recenti. Come sviluppatore di applicazioni professionali senza esperienza nel settore dei giochi, questo è semplicemente sbagliato, questi file appartengono a% APPDATA% o% LOCALAPDATA%.

La mia domanda è: c'è una decisione consapevole di mettere questi file in% UserProfile% \ Documents per ottenere alcuni vantaggi specifici, o è solo un comportamento legacy che si ripercorre dai tempi di Windows XP? Oppure c'è un motivo ancora migliore come, ad esempio, Steam che richiede o raccomanda questo, o un motore popolare che lo fa per impostazione predefinita?

Correlati: in quale directory scrivere i file / i dati di salvataggio del gioco? (per evitare discussioni inutili)



4
@Loren No, un salvataggio è un file / dati specifico dell'applicazione = APPDATA. I documenti dell'utente sono documenti salvati consapevolmente dall'utente. Ecco come vengono definiti questi luoghi.
Peter,

1
Si potrebbe obiettare in entrambi i modi. Mi aspetterei di trovare salvataggi nei documenti, configurazione in AppData.
Loren Pechtel,

2
In che modo le campagne in un gioco non sono "documenti salvati consapevolmente"? E in che modo i documenti Photoshop (PSD) non sono "specifici per l'applicazione"?
Damian Yerrick,

4
Questo mi ha infastidito per molto tempo. La cartella Documenti è un posto difficile in cui inserire automaticamente i file, indipendentemente dal fatto che si tratti di una posizione adatta per loro. La cartella "I miei documenti" dovrebbe essere riservata ai MIEI documenti che ho scelto esplicitamente di mettere lì, in modo da poter tenere traccia delle mie cose personali. Non pezzi di dati relativi alla metà del software sul mio sistema. Che disordine empio! Non uso più nemmeno la cartella Documenti. Uso il mio, su un'unità separata, quindi ho quella directory nella mia raccolta Documenti e ho rimosso l'impostazione predefinita.
Fuzzy Logic,

Risposte:


35

No, non proprio.

Gli sviluppatori di giochi non sono stati tradizionalmente bravi a rispettare le convenzioni stabilite da un sistema operativo. Anche se per essere onesti, molti sviluppatori di applicazioni regolari non lo fanno neanche.

Le %AppData%cartelle dei documenti e sono per il salvataggio dei dati per utente. La differenza tra loro, ai fini di questa domanda, è principalmente che %AppData%è dove vanno le cose che l'utente non dovrebbe vedere o interagire, e la cartella dei documenti è per i documenti dell'utente : cose che vorrebbero vedere e interagire con .

I giochi a volte memorizzano le loro impostazioni e salvano i file nella cartella documenti perché li rende visibili, quindi meno utenti tecnici li vedranno e saranno rassicurati della loro esistenza, o avranno maggiori probabilità di eseguirne correttamente il backup se il loro metodo di backup è un greggio, "copia le cose nella mia cartella utente su un'altra unità".

I giochi a volte memorizzano anche i file lì perché non hanno modificato il comportamento del codice pertinente rispetto alle versioni precedenti del sistema operativo, come sospetti, o semplicemente perché non si preoccupano di pensare al problema così tanto.

È sciocco e di solito sbagliato, ma è quello che è.


2
Un altro vantaggio è che gli utenti possono installare mondi, pacchetti di texture, ecc. Senza dover scavare in% APPDATA%.
Bardi Harborow,

14
Ricordo che SPORE ha salvato i suoi dati nella mia cartella documenti anziché sul %appdata%retro quando l'ho ricevuto. Quando ho guardato nella sua cartella, le mie creature sono state tutte salvate come immagini png, è stato davvero sorprendente, e penso che sia stato messo apposta nella cartella documenti, in modo che le persone potessero facilmente condividere e scaricare più creature e veicoli. Detto questo, non ho idea del perché i giochi che usano solo un greggio save.datdecidano di mettere le loro cose lì.
Gustavo Maciel,

C'è un buon articolo da qualche parte su come Spore si è lanciato, vorrei poterlo trovare.
TankorSmash,

2
Qualcuno l'ha chiesto su questo sito qui ; una delle risposte fa riferimento a un commento a cui potresti pensare (che si trova qui ).
Josh

6
Teoricamente, la migliore linea di condotta su Vista o più recente è quella di usare quella SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)di default %UserProfile%\Saved Games. In questo modo l'utente può trovare e eseguire il backup dei dati di gioco salvati facilmente, ma non sarà di ostacolo. Tutti i dati diversi dall'avanzamento e / o dalla configurazione (ad es. Shader compilati, risorse ottimizzate per la piattaforma o scaricate, ecc.) Devono essere inclusi in appdata.
Bcrist,

18

Guardando il mio disco, l'ho fatto

  • 1 gioco che salva i savegames %APPDATA%
  • 1 gioco che salva i savegames %LOCALAPPDATA%
  • 2 giochi che salvano "altre cose" in %APPDATA%
  • 3 giochi che salvano "altre cose" in %LOCALAPPDATA%
  • 2 giochi in cui salvare i salvataggi %UserProfile%\Saved Games
  • 21 Giochi che salvano savegame e un sacco di altre cose %UserProfile%\Documents, senza contare ...
  • 15 giochi che salvano savegame e un sacco di altre cose %UserProfile%\Documents\My Games

Questo è un rapporto di 1: 9 per i salvataggi essere memorizzati in %APPDATA%, %LOCALAPPDATA%, %UserProfile%\Saved Gamesrispetto %UserProfile%\Documents\*. Nel mio esempio, tutti e 4 i giochi che non inseriscono savegame %UserProfile%\Documents\o %UserProfile%\Documents\My Games\provengono da piccoli studi. Quindi devo presumere che i grandi studi con milioni di costi di sviluppo abbiano una ragione per mettere tutti i loro file - compresi i file temporanei - dentro %UserProfile%\Documents\*.

Mentre il comportamento legacy può spiegare un po 'di tutto ciò, non penso che sia una ragione abbastanza forte per tenere conto di tutti i principali studi che mettono i loro file nel posto sbagliato. Quindi ci deve essere una ragione migliore.

Il miglior motivo a cui riesco a pensare è quello di ridurre i costi dell'assistenza clienti . Il problema è che %APPDATA%e %LOCALAPPDATA%sono nascosti directory, e nessuno sembra sapere %UserProfile%\Saved Games. Inserendo i file Documents, Studios può risparmiare denaro sulle chiamate di supporto che chiedono come eseguire il backup di savegame o come migrare i savegame da un computer all'altro. Esempi di utenti che non sono riusciti a trovare i savegame perché si trovavano %APPDATA% qui , qui , qui e qui .

Un altro motivo potrebbe essere perché gli utenti lo richiedono , come accade in questo esempio .


1
Solo per aggiungere un altro punto dati (e poiché ero curioso) i conteggi per il mio PC sono 19, 10, 10, 17, 6, 45 e 31. Ci sono anche 50 giochi con salvataggi e / o altri dati in steam\userdatae 5 giochi con salvataggio / dati in %ProgramData%. Questo non conta i giochi che mantengono tutto questo nella loro directory di installazione o sono riusciti a trovare un altro posto dove archiviare dati o salvarli.
Ross Ridge,

@RossRidge Grazie, è utile. Nel tuo campione, vedi qualche tendenza per quanto riguarda i giochi indie contro i grandi giochi in studio?
Peter,

Sembra più probabile che i giochi indie si trovino in una delle prime quattro categorie, anche solo perché è lì che il loro ambiente di runtime mette cose (ad es. Flash).
Ross Ridge,

4

Non mi interessa ricordare il numero di giochi che ho dovuto ricominciare dopo un backup / ripristino o cose simili perché ho spostato tutti i miei file importanti dai miei documenti, ma ho completamente dimenticato i dati delle applicazioni utente come i file di salvataggio perché è spesso dentro con i file di programma o altri posti strani (come in una cartella nascosta come appdata).

Personalmente per questo motivo mi piace averlo nei miei documenti, anche se sono sicuro che qualcuno mi dirà di ottenere un sistema di backup adeguato invece di farlo manualmente.

Un po 'di coerenza sarebbe piacevole, e ancora più bello sarebbe per servizi come Steam mantenere da qualche parte copie di file di salvataggio su una rete.


1
Steam ha il cloud storage dal 2009. Richiede tuttavia agli sviluppatori di scegliere di usarlo e funziona solo se l'utente lo ha abilitato. La maggior parte dei giochi più recenti ora lo supporta, ma molti di quelli più vecchi ancora non lo supportano.
bcrist

Userò qualsiasi scusa per dire alle persone che devono fare i backup, e mi piace anche la coerenza, ma la directory dei dati dell'applicazione non è un "posto strano" per archiviare i dati dell'applicazione, la cartella documenti lo è. La memorizzazione di file a cui non appartengono rende molto più difficile la gestione dei miei backup.
Marcks Thomas,

0

Dalla mia esperienza personale, ho scelto di salvare in% UserProfile% perché l'utente ha sempre avuto accesso in lettura / scrittura / modifica ad esso senza dover modificare alcuna delle autorizzazioni.

Questo non era vero con% APPDATA%. In particolare quando si utilizzano account utente con restrizioni, spesso non si ha accesso in scrittura ai file creati da altri account all'interno di% APPDATA%. Immagino che i titoli AAA abbiano fatto la scelta per lo stesso motivo per noi; non volevamo il mal di testa.


3
Sono abbastanza sicuro che stai ottenendo APPDATA (C: \ Users \ Username \ AppData) che è scrivibile dall'utente, mescolato con PROGRAMDATA (C: \ ProgramData) che spesso non è scrivibile dall'utente. windows.microsoft.com/en-us/windows-8/what-appdata-folder
Patrick M

1
Il punto centrale di% APPDATA% è che è scrivibile dall'utente. È proprio lì perché C: \ Programmi non è scrivibile dall'utente.
Bardi Harborow,

@PatrickM Hai ragione, stavo parlando di ProgramData. Scusate. Qual è il modo migliore per ottenere la risposta cancellata?
David,

0

Dal mio punto di vista personale come utente, distingue principalmente tra i dati di cui voglio eseguire il backup e quelli di cui non mi interessa.

La creazione di backup incrementali di %LOCALAPPDATA%è un casino, perché ingombra il backup con decine di migliaia di file temporanei, molti dei quali sono bloccati dai servizi in background. Ciò rende i backup lenti (sovraccarico elevato da molti file di piccole dimensioni) e inutilmente grandi (i file temporanei che cambiano frequentemente sabotano la parte "incrementale"). Prevenire ciò richiede la gestione manuale di un elenco di esclusioni.

%APPDATA%è leggermente migliore, poiché non dovrebbe contenere file temporanei come le cache - purtroppo lo fa comunque, e molte impostazioni del programma in realtà non garantiscono un backup.

In definitiva, il salvataggio dei giochi è un tipo di dati con cui voglio interagire come utente e %UserProfile%\AppDatanon si presta a questo.


-3

Perché non usare / "cartella di installazione del gioco" / savegame / come i giochi più vecchi? Non ho mai capito perché mettere i savegame nella cartella nascosta o addirittura nei miei documenti sull'unità di sistema?

Ai vecchi tempi sapevi sempre dove erano i salvataggi.


3
Questa cartella è protetta da scrittura. Dovresti iniziare il tuo gioco come amministratore. Questo è fastidioso e non disponibile per tutti gli utenti (un genitore che vuole proteggere il proprio computer dai propri figli installando qualunque cosa, per esempio).
Vaillancourt

1
"game installation folder"lo è %ProgramFiles%\<gamename>. %ProgramFiles%è pensato per essere modificato solo durante l'installazione / disinstallazione di programmi. Poiché le applicazioni Windows XP / Vista che scrivono in quella directory devono essere eseguite come amministratore, per rendere più difficile, per esempio, un virus per sostituire word.exe con una versione infetta di word.exe. Un altro motivo è che Microsoft voleva che più utenti fossero in grado di utilizzare gli stessi programmi senza dover condividere i propri file personali, in questo caso savegames. Esistono altri modi migliori per affrontare questi problemi, ma al momento non sono stati scelti.
Peter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.