¿Hay alguna razón práctica para guardar los datos del juego en% UserProfile% \ Documents en lugar de% AppData%?

33

Mi carpeta de documentos está inundada de subcarpetas de varios juegos, incluidos los de algunos títulos AAA muy recientes. Como desarrollador de aplicaciones profesional sin experiencia en la industria del juego, esto es simplemente incorrecto, estos archivos pertenecen a% APPDATA% o% LOCALAPDATA%.

Mi pregunta es, ¿hay una decisión consciente de poner estos archivos en% UserProfile% \ Documents para obtener algunos beneficios específicos, o es solo un comportamiento heredado que se trasladó desde los días de Windows XP? ¿O hay una razón aún mejor como, por ejemplo, Steam que requiere o recomienda esto, o un motor popular que lo hace por defecto?

Relacionado: ¿ En qué directorio escribir juegos guardar archivos / datos? (para evitar discusiones sin sentido)

Peter
fuente
44
@Loren No, un juego guardado es un archivo / dato específico de la aplicación = APPDATA. Los documentos de usuario son documentos guardados conscientemente por el usuario. Así se definen estos lugares.
Peter
1
Uno podría argumentar esto de cualquier manera. Esperaría encontrar guardados en documentos, configuración en AppData.
Loren Pechtel
2
¿Cómo son las campañas en un juego no "documentos guardados conscientemente"? ¿Y cómo los documentos de Photoshop (PSD) no son "específicos de la aplicación"?
Damian Yerrick el
44
Esto me ha molestado por mucho tiempo. La carpeta Documentos es un lugar pobre para colocar archivos automáticamente, ya sea que sea una ubicación adecuada para ellos o no. La carpeta 'Mis documentos' debe reservarse para MIS documentos que he elegido explícitamente poner allí, para que pueda realizar un seguimiento de mis cosas personales. No piezas de datos relacionados con la mitad del software en mi sistema. ¡Qué desastre tan impío! Ya ni siquiera uso la carpeta Documentos. Utilizo el mío, en una unidad separada, luego tengo ese directorio en mi biblioteca de Documentos y elimino el predeterminado.
Fuzzy Logic

Respuestas:

35

No en realidad no.

Los desarrolladores de juegos no han sido tradicionalmente buenos en respetar las convenciones establecidas por un sistema operativo. Aunque para ser justos, muchos desarrolladores de aplicaciones regulares tampoco lo hacen.

Las %AppData%carpetas y documentos son para guardar datos por usuario. La diferencia entre ellos, a los fines de esta pregunta, es principalmente %AppData%donde las cosas que el usuario no debería necesitar para ver o interactuar van, y la carpeta de documentos es para los documentos del usuario : cosas que les gustaría ver e interactuar .

Los juegos a veces almacenan sus configuraciones y guardan archivos en la carpeta de documentos porque los hace visibles, por lo que los usuarios menos técnicos los verán y se sentirán seguros de que existen, o será más probable que los respalden correctamente si su método de respaldo es un crudo, "copiar las cosas en mi carpeta de usuario a otra unidad".

Los juegos también a veces almacenan archivos allí porque no han cambiado el comportamiento del código relevante de las versiones anteriores del sistema operativo, como sospechas, o simplemente porque no les importa pensar demasiado en el problema.

Es tonto y generalmente está mal, pero es lo que es.

Josh
fuente
2
Otra ventaja es que los usuarios pueden instalar mundos, paquetes de texturas, etc. sin tener que cavar en% APPDATA%.
Bardi Harborow
14
Recuerdo que SPORE guardó sus datos en mi carpeta de documentos en lugar de la parte %appdata%posterior cuando los obtuve. Cuando busqué en su carpeta, todas mis criaturas se guardaron como imágenes png, eso fue bastante sorprendente, y creo que se colocó en la carpeta de documentos a propósito, para que las personas puedan compartir y descargar fácilmente más criaturas y vehículos. Dicho esto, no tengo idea de por qué los juegos que solo usan un crudo save.datdeciden poner sus cosas allí.
Gustavo Maciel
Hay un buen artículo en algún lugar sobre cómo Spore logró, ojalá pudiera encontrarlo.
TankorSmash
2
Alguien preguntó sobre esto en este sitio aquí ; una de las respuestas hace referencia a una reseña en la que podría estar pensando (que se encuentra aquí ).
Josh
66
Teóricamente, el mejor curso de acción en Vista o más reciente es usar el SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)que por defecto es %UserProfile%\Saved Games. De esa forma, el usuario puede encontrar y hacer una copia de seguridad de sus datos guardados fácilmente, pero no se interpondrá en el camino. Cualquier información que no sea progreso y / o configuración (por ejemplo, sombreadores compilados, activos optimizados o descargados de la plataforma, etc.) debe ir en los datos de aplicación.
bcrist
18

Mirando mi disco, tengo

  • 1 juego que salva partidas guardadas en %APPDATA%
  • 1 juego que salva partidas guardadas en %LOCALAPPDATA%
  • 2 juegos que guardan "otras cosas" en %APPDATA%
  • 3 juegos que guardan "otras cosas" en %LOCALAPPDATA%
  • 2 juegos que guardan partidas guardadas en %UserProfile%\Saved Games
  • 21 juegos que guardan partidas guardadas y un montón de otras cosas %UserProfile%\Documents, sin contar ...
  • 15 juegos que guardan partidas guardadas y muchas otras cosas en %UserProfile%\Documents\My Games

Eso es una relación de 1: 9 para partidas guardadas de ser almacenados en %APPDATA%, %LOCALAPPDATA%, %UserProfile%\Saved Gamesfrente %UserProfile%\Documents\*. En mi muestra, los 4 juegos que no guardan partidas guardadas %UserProfile%\Documents\o %UserProfile%\Documents\My Games\son de pequeños estudios. Así que debo asumir que los grandes estudios con costos de desarrollo multimillonarios tienen una razón para poner todos sus archivos, incluidos los archivos temporales %UserProfile%\Documents\*.

Si bien el comportamiento heredado puede explicar algo de esto, no creo que sea una razón lo suficientemente sólida como para dar cuenta de que cada estudio importante coloca sus archivos en el lugar incorrecto. Entonces tiene que haber una mejor razón.

La mejor razón por la que puedo pensar es para reducir el costo de la atención al cliente . El problema es eso %APPDATA%y %LOCALAPPDATA%son directorios ocultos, y nadie parece saberlo %UserProfile%\Saved Games. Al colocar los archivos Documents, los estudios pueden ahorrar dinero en llamadas de soporte que preguntan cómo hacer una copia de seguridad de los juegos guardados, o cómo migrar los juegos guardados de una máquina a otra. Ejemplos de usuarios que no pudieron encontrar juegos guardados porque estaban ubicados %APPDATA% aquí , aquí , aquí y aquí .

Otra razón podría ser porque los usuarios lo solicitan , como sucede en este ejemplo .

Peter
fuente
1
Solo para agregar otro punto de datos (y porque tenía curiosidad) los recuentos para mi PC son 19, 10, 10, 17, 6, 45 y 31. También hay 50 juegos con juegos guardados y / u otros datos en steam\userdatay 5 juegos con guardar / datos en %ProgramData%. Esto no cuenta ningún juego que mantenga todo esto en su directorio de instalación o que haya logrado encontrar otro lugar para almacenar datos o guardarlos.
Ross Ridge,
@RossRidge Gracias, eso es útil. En su muestra, ¿ve alguna tendencia con respecto a los juegos independientes vs los juegos de grandes estudios?
Peter
Parece más probable que los juegos independientes estén en una de las primeras cuatro categorías, aunque solo sea porque allí es donde su entorno de ejecución pone cosas (por ejemplo, Flash).
Ross Ridge
4

No me importa recordar la cantidad de juegos que tuve que volver a comenzar después de una copia de seguridad / restauración o algo similar porque moví todos mis archivos importantes de mis documentos, pero olvidé por completo los datos de las aplicaciones de usuario, como guardar archivos porque a menudo en los archivos de programa u otros lugares extraños (como en una carpeta oculta como appdata).

Personalmente, por este motivo, me gusta tenerlo en mis documentos, aunque estoy seguro de que alguien me dirá que solo obtenga un sistema de respaldo adecuado en lugar de hacerlo manualmente.

Sería bueno tener un poco de consistencia, e incluso mejor sería que servicios como Steam guarden copias de los archivos guardados en una red en algún lugar.

Patricio
fuente
1
Steam ha tenido almacenamiento en la nube desde 2009. Sin embargo, requiere que los desarrolladores elijan usarlo, y solo funciona si el usuario lo tiene habilitado. La mayoría de los juegos más nuevos ahora lo admiten, pero muchos de los más antiguos todavía no.
bcrist
Usaré cualquier excusa para decirle a la gente que necesitan hacer copias de seguridad, y también me gusta la coherencia, pero el directorio de datos de la aplicación no es un "lugar extraño" para almacenar datos de la aplicación, la carpeta de documentos sí lo es. Almacenar archivos donde no pertenecen hace que sea mucho más difícil para mí administrar mis copias de seguridad.
Marca Thomas el
0

Desde mi propia experiencia personal, elegí guardar en% UserProfile% porque el usuario siempre tenía acceso de lectura / escritura / modificación sin tener que cambiar ninguno de los permisos.

Esto no era cierto con% APPDATA%. Particularmente cuando usa cuentas de usuario restringidas, a menudo no tiene acceso de escritura a los archivos creados por otras cuentas dentro de% APPDATA%. Me imagino que los títulos de AAA hicieron la elección por la misma razón que nosotros; No queríamos el dolor de cabeza.

David
fuente
3
Estoy bastante seguro de que está obteniendo APPDATA (C: \ Users \ Username \ AppData) que puede escribir el usuario, mezclado con PROGRAMDATA (C: \ ProgramData) que a menudo no puede escribir el usuario. windows.microsoft.com/en-us/windows-8/what-appdata-folder
Patrick M
1
El punto completo de% APPDATA% es que es escribible por el usuario. Está específicamente allí porque C: \ Program Files no puede ser escrito por el usuario.
Bardi Harborow
@PatrickM Tienes razón, estaba hablando de ProgramData. Lo siento. ¿Cuál es la mejor manera de eliminar la respuesta?
David
0

Desde mi perspectiva personal como usuario, distingo principalmente entre los datos de los que quiero copias de seguridad y los datos que no me importan.

Crear copias de seguridad incrementales de %LOCALAPPDATA%es un desastre, ya que saturará la copia de seguridad con decenas de miles de archivos temporales, muchos de los cuales están bloqueados por servicios en segundo plano. Esto hace que las copias de seguridad sean lentas (sobrecarga de muchos archivos pequeños) e innecesariamente grandes (los archivos temporales que cambian con frecuencia sabotean la parte "incremental"). Prevenir esto requiere mantener manualmente una lista de exclusión.

%APPDATA%es un poco mejor, ya que no se supone que contenga archivos temporales como cachés, lamentablemente lo hace de todos modos, y muchas de las configuraciones del programa realmente no garantizan una copia de seguridad.

En última instancia, los juegos guardados son un tipo de datos con los que quiero interactuar como usuario, y %UserProfile%\AppDataeso no se presta a eso.

kdb
fuente
-3

¿Por qué no usar / "carpeta de instalación del juego" / savegame / como lo hicieron los juegos más antiguos? Nunca entendí por qué poner juegos guardados en una carpeta oculta o incluso en mis documentos en la unidad del sistema.

En los viejos tiempos siempre sabías dónde estaban los juegos guardados.

Sektor
fuente
3
Esta carpeta está protegida contra escritura. Tendrías que comenzar tu juego como administrador. Esto es molesto y no está disponible para todos los usuarios (un padre que quiere proteger su computadora de sus hijos que instalen lo que sea, por ejemplo).
Vaillancourt
1
"game installation folder"es %ProgramFiles%\<gamename>. %ProgramFiles%está destinado a ser modificado solo durante la instalación / desinstalación de programas. Dado que las aplicaciones de Windows XP / Vista que escriben en ese directorio deben ejecutarse como administrador, para que sea más difícil, por ejemplo, que un virus reemplace word.exe con una versión infectada de word.exe. Otra razón es que Microsoft quería que varios usuarios pudieran usar los mismos programas sin tener que compartir sus archivos personales, en este caso los juegos guardados. Hay otras / mejores formas de abordar estos problemas, pero no se eligieron en ese momento.
Peter