Apakah ada alasan praktis untuk menyimpan data game di% UserProfile% \ Documents alih-alih% AppData%?

33

Folder dokumen saya dipenuhi oleh subfolder dari berbagai gim, termasuk beberapa judul AAA yang sangat baru. Sebagai pengembang aplikasi profesional tanpa pengalaman dalam industri game, ini jelas-jelas salah, file-file ini termasuk dalam% APPDATA% atau% LOCALAPDATA%.

Pertanyaan saya adalah, adakah keputusan sadar untuk meletakkan file-file ini di% UserProfile% \ Documents untuk mendapatkan beberapa manfaat spesifik, atau apakah ini hanya perilaku warisan yang dibawa sejak zaman Windows XP? Atau apakah ada alasan yang lebih baik seperti, misalnya Steam membutuhkan atau merekomendasikan ini, atau mesin populer melakukan ini secara default?

Terkait: Di direktori mana untuk menulis game menyimpan file / data? (untuk menghindari diskusi sia-sia)

Peter
sumber
4
@ Loren Tidak, save game adalah file / data aplikasi khusus = APPDATA. Dokumen pengguna adalah dokumen yang disimpan secara sadar oleh pengguna. Begitulah cara tempat-tempat ini didefinisikan.
Peter
1
Orang bisa berdebat dengan cara ini. Saya berharap menemukan penyelamatan dalam dokumen, konfigurasi di AppData.
Loren Pechtel
2
Bagaimana kampanye dalam game bukan "dokumen disimpan secara sadar"? Dan bagaimana dokumen Photoshop (PSD) tidak "spesifik aplikasi"?
Damian Yerrick
4
Ini membuatku kesal sejak lama. Folder Dokumen adalah tempat yang buruk untuk secara otomatis meletakkan file apakah itu lokasi yang cocok untuk mereka atau tidak. Folder 'My Documents' harus dicadangkan untuk dokumen MY yang telah saya pilih secara eksplisit untuk diletakkan di sana, sehingga saya dapat melacak barang-barang pribadi saya sendiri. Bukan potongan data yang terkait dengan setengah perangkat lunak di sistem saya. Benar-benar kekacauan yang fasik! Saya bahkan tidak menggunakan folder Dokumen lagi. Saya menggunakan saya sendiri, pada drive terpisah maka saya memiliki direktori itu di perpustakaan Dokumen saya dan memiliki default dihapus.
Fuzzy Logic

Jawaban:

35

Tidak terlalu.

Pengembang game secara tradisional tidak hebat dalam menghormati konvensi yang dibuat oleh sistem operasi. Meskipun adil, banyak pengembang aplikasi reguler juga tidak.

The %AppData%dan dokumen folder adalah untuk menyimpan data per-user. Perbedaan di antara mereka, untuk keperluan pertanyaan ini, adalah terutama di %AppData%mana hal-hal yang tidak perlu dilihat atau berinteraksi dengan pengguna, dan folder dokumen adalah untuk dokumen pengguna : hal-hal yang ingin mereka lihat dan berinteraksi dengan .

Game terkadang akan menyimpan pengaturannya dan menyimpan file di folder dokumen karena membuatnya terlihat, sehingga pengguna yang kurang teknis akan melihatnya dan diyakinkan bahwa mereka memang ada, atau akan lebih mungkin untuk mencadangkannya dengan benar jika metode cadangan mereka adalah kasar, "salin barang di folder pengguna saya ke drive lain."

Gim juga terkadang akan menyimpan file di sana karena mereka belum mengubah perilaku kode yang relevan dari versi OS yang lebih lama, seperti yang Anda duga, atau hanya karena mereka tidak terlalu peduli dengan masalah itu.

Ini konyol dan biasanya salah, tetapi memang demikianlah adanya.

Josh
sumber
2
Keuntungan lain adalah bahwa pengguna dapat menginstal dunia, paket tekstur, dll. Tanpa harus menggali dalam% APPDATA%.
Bardi Harborow
14
Saya ingat SPORE menyimpan datanya ke folder dokumen saya, bukannya di %appdata%belakang ketika saya mendapatkannya. Ketika saya melihat ke foldernya, semua makhluk saya disimpan sebagai gambar png, itu sangat menakjubkan, dan saya pikir itu diletakkan di folder dokumen dengan sengaja, sehingga orang dapat dengan mudah berbagi dan mengunduh lebih banyak makhluk dan kendaraan. Dengan itu, saya tidak tahu mengapa game yang hanya menggunakan minyak mentah save.datmemutuskan untuk menaruh barang-barang mereka di sana.
Gustavo Maciel
Ada artikel yang bagus di suatu tempat tentang bagaimana Spore menarik, berharap aku bisa menemukannya.
TankorSmash
2
Seseorang bertanya tentang hal itu di situs ini di sini ; salah satu jawaban merujuk pada artikel yang mungkin Anda pikirkan (yang ada di sini ).
Josh
6
Secara teoritis, tindakan terbaik pada Vista atau yang lebih baru adalah menggunakan SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)yang secara default %UserProfile%\Saved Games. Dengan cara itu pengguna dapat menemukan dan mencadangkan data permainan yang disimpan dengan mudah, tetapi itu tidak akan menghalangi. Data apa pun selain kemajuan dan / atau konfigurasi (mis. Shader yang dikompilasi, aset yang dioptimalkan platform atau diunduh, dll.) Harus masuk dalam appdata.
bcrist
18

Melihat disk saya, saya punya

  • 1 game yang menyimpan saveg in %APPDATA%
  • 1 game yang menyimpan saveg in %LOCALAPPDATA%
  • 2 game yang menyimpan "hal-hal lain" di %APPDATA%
  • 3 game yang menyimpan "hal-hal lain" di %LOCALAPPDATA%
  • 2 game yang menyimpan savegames di %UserProfile%\Saved Games
  • 21 Game yang menyimpan savegames dan banyak hal lainnya %UserProfile%\Documents, tidak termasuk ...
  • 15 Game yang menyimpan savegames dan banyak hal lainnya di %UserProfile%\Documents\My Games

Itu rasio 1: 9 untuk savegames yang disimpan dalam %APPDATA%, %LOCALAPPDATA%, %UserProfile%\Saved Gamesdibandingkan %UserProfile%\Documents\*. Dalam sampel saya, semua 4 game yang tidak memasukkan savegames %UserProfile%\Documents\atau %UserProfile%\Documents\My Games\berasal dari studio kecil. Jadi saya harus mengasumsikan studio besar dengan biaya pengembangan multi-juta punya alasan untuk meletakkan semua file mereka - termasuk file temp - di%UserProfile%\Documents\* .

Sementara perilaku warisan dapat menjelaskan sebagian dari ini, saya tidak berpikir itu adalah alasan yang cukup kuat untuk menjelaskan setiap studio besar meletakkan file mereka di tempat yang salah. Jadi harus ada alasan yang lebih baik.

Alasan terbaik yang dapat saya pikirkan adalah untuk mengurangi biaya dukungan pelanggan . Masalahnya adalah itu %APPDATA%dan %LOCALAPPDATA%direktori tersembunyi, dan sepertinya tidak ada yang tahu %UserProfile%\Saved Games. Menempatkan file dalam Documents, studio dapat menghemat uang pada panggilan dukungan yang bertanya bagaimana cara membuat cadangan savegames, atau bagaimana cara memigrasi savegames dari satu mesin ke yang lain. Contoh pengguna yang tidak bisa menemukan savegames karena mereka berada di %APPDATA% sini , di sini , di sini , dan di sini .

Alasan lain mungkin karena pengguna memintanya , seperti yang terjadi dalam contoh ini .

Peter
sumber
1
Hanya untuk menambah titik data lain (dan karena saya penasaran) jumlah untuk PC saya adalah 19, 10, 10, 17, 6, 45 dan 31. Ada juga 50 game dengan save game dan / atau data lain di dalam steam\userdatadan 5 game dengan menyimpan / data dalam %ProgramData%. Ini tidak menghitung game apa pun yang menyimpan semua barang ini di direktori instal mereka atau telah berhasil menemukan tempat lain untuk menyimpan data atau menyimpan.
Ross Ridge
@RossRidge Terima kasih, itu berguna. Dalam sampel Anda, apakah Anda melihat kecenderungan mengenai game indie vs game studio besar?
Peter
Tampaknya lebih mungkin untuk game indie berada dalam satu empat kategori pertama, jika hanya karena di situlah lingkungan runtime mereka memasukkan barang (mis. Flash).
Ross Ridge
4

Saya tidak peduli untuk mengingat jumlah permainan yang harus saya mulai lagi setelah cadangan / pengembalian atau yang serupa karena saya memindahkan semua file penting saya dari dokumen saya, tetapi benar-benar lupa tentang data aplikasi pengguna seperti menyimpan file karena itu sering dengan file program atau tempat aneh lainnya (seperti di folder tersembunyi seperti appdata).

Secara pribadi untuk alasan ini saya suka memilikinya dalam dokumen saya, meskipun saya yakin seseorang akan memberitahu saya untuk hanya mendapatkan sistem cadangan yang tepat daripada melakukannya secara manual.

Sedikit konsistensi akan menyenangkan, dan bahkan lebih baik untuk layanan seperti Steam untuk menyimpan salinan file yang tersimpan di jaringan di suatu tempat.

Patrick
sumber
1
Steam telah memiliki penyimpanan cloud sejak 2009. Ia memang mengharuskan pengembang untuk memilih menggunakannya, dan itu hanya berfungsi jika pengguna mengaktifkannya. Sebagian besar game yang lebih baru sekarang mendukungnya, tetapi banyak yang lebih lama masih tidak mendukungnya.
bcrist
Saya akan menggunakan alasan apa pun untuk memberi tahu orang-orang bahwa mereka perlu membuat cadangan, dan saya juga suka konsistensi, tetapi direktori data aplikasi bukan 'tempat aneh' untuk menyimpan data aplikasi, folder dokumen itu. Menyimpan file yang bukan milik mereka membuat saya lebih sulit mengelola cadangan.
Marcks Thomas
0

Dari pengalaman pribadi saya, saya memilih untuk menyimpan ke% UserProfile% karena pengguna selalu membaca / menulis / memodifikasi akses tanpa harus mengubah izin apa pun.

Ini tidak benar dengan% APPDATA%. Khususnya ketika menggunakan akun pengguna Terbatas, Anda sering tidak memiliki akses tulis ke file yang dibuat oleh akun lain di dalam% APPDATA%. Saya membayangkan judul AAA membuat pilihan untuk alasan yang sama seperti kami; kami tidak ingin sakit kepala.

David
sumber
3
Saya cukup yakin Anda mendapatkan APPDATA (C: \ Users \ Username \ AppData) yang dapat ditulis pengguna, dicampur dengan PROGRAMDATA (C: \ ProgramData) yang sering tidak dapat ditulis oleh pengguna. windows.microsoft.com/en-us/windows-8/what-appdata-folder
Patrick M
1
Inti dari% APPDATA% adalah dapat ditulis pengguna. Secara khusus ada di sana karena C: \ Program Files tidak dapat ditulisi pengguna.
Bardi Harborow
@ Patrickrick Anda benar, saya berbicara tentang ProgramData. Maaf. Apa cara terbaik untuk menghapus jawaban?
David
0

Dari sudut pandang pribadi saya sebagai pengguna, saya terutama membedakan antara data yang saya inginkan sebagai cadangan dan data yang tidak saya pedulikan.

Membuat cadangan tambahan untuk %LOCALAPPDATA% adalah berantakan, karena akan mengacaukan cadangan dengan puluhan ribu file sementara, banyak di antaranya dikunci oleh layanan latar belakang. Ini membuat backup lambat (overhead tinggi dari banyak file kecil), dan tidak perlu besar (sering mengubah file sementara menyabotase bagian "tambahan"). Mencegah hal ini membutuhkan pemeliharaan daftar pengecualian secara manual.

%APPDATA%sedikit lebih baik, karena tidak seharusnya berisi file-file sementara seperti cache - sayangnya hal itu terjadi, dan banyak pengaturan program benar-benar tidak memerlukan cadangan.

Pada akhirnya, save game adalah jenis data yang ingin saya ajak berinteraksi sebagai pengguna, dan yang %UserProfile%\AppDatatidak cocok dengan itu.

kdb
sumber
-3

Mengapa tidak menggunakan / "folder instalasi game" / savegame / seperti yang dilakukan game lama? Saya tidak pernah mengerti mengapa menyimpan savegames di folder tersembunyi atau bahkan di dokumen saya di drive sistem?

Di masa lalu Anda selalu tahu di mana savegames berada.

Sektor
sumber
3
Folder ini dilindungi dari penulisan. Anda harus memulai permainan Anda sebagai seorang admin. Ini menjengkelkan, dan tidak tersedia untuk semua pengguna (orangtua yang ingin melindungi komputer mereka dari anak-anak mereka menginstal apa pun, misalnya).
Vaillancourt
1
"game installation folder"adalah %ProgramFiles%\<gamename>. %ProgramFiles%dimaksudkan untuk dimodifikasi hanya selama instalasi / deinstallasi program. Karena aplikasi Windows XP / Vista yang menulis ke direktori tersebut harus dijalankan sebagai administrator, untuk membuatnya lebih sulit untuk dikatakan, virus untuk mengganti word.exe dengan versi word.exe yang terinfeksi. Alasan lain adalah bahwa Microsoft ingin banyak pengguna untuk dapat menggunakan program yang sama tanpa harus berbagi file pribadi mereka, dalam hal ini savegames. Ada / cara lain yang lebih baik untuk mengatasi masalah ini, tetapi mereka tidak dipilih pada saat itu.
Peter