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)
Jawaban:
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.
sumber
%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 mentahsave.dat
memutuskan untuk menaruh barang-barang mereka di sana.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.Melihat disk saya, saya punya
%APPDATA%
%LOCALAPPDATA%
%APPDATA%
%LOCALAPPDATA%
%UserProfile%\Saved Games
%UserProfile%\Documents
, tidak termasuk ...%UserProfile%\Documents\My Games
Itu rasio 1: 9 untuk savegames yang disimpan dalam
%APPDATA%
,%LOCALAPPDATA%
,%UserProfile%\Saved Games
dibandingkan%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 dalamDocuments
, 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 .
sumber
steam\userdata
dan 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.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.
sumber
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.
sumber
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%\AppData
tidak cocok dengan itu.sumber
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.
sumber
"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.