Saya membutuhkan daftar direktori yang pasti, satu atau lebih per platform, tempat menyimpan game, menyimpan file, dan data game lainnya yang dihasilkan . Baik berdasarkan spesifikasi pengembang OS, atau karena itu adalah penggunaan umum jika tidak ada rekomendasi.
Harap berikan satu jawaban per platform , dengan direktori yang berbeda. Juga, contoh cara mendapatkan lokasi direktori di C ++ atau C adalah yang terbaik , karena bahasa yang Anda gunakan akan lebih sulit.
Lokasi:
- Data permainan pemain (game tersimpan, konfigurasi).
- Data permainan bersama (seperti skor tinggi atau konfigurasi untuk semua pengguna komputer).
- Data permainan sementara (alias direktori cache).
Jawaban:
Windows (Xp dan berikut)
Berdasarkan:
Lokasi-lokasi ini menganggap bahwa Windows diinstal pada disk C :. Tambahkan direktori Anda sendiri dengan nama game atau perusahaan game lalu nama game ke direktori ini.
Jika Anda menggunakan aplikasi Metro-style Window 8 , Anda harus menggunakan API khusus alih-alih mencoba menjangkau direktori. Baca baca:
Data permainan pemain
Windows Vista dan berikut ini:
Windows Xp:
Anda dapat secara otomatis mendapatkan alamat yang bergantung pada nama pengguna dengan mendapatkan
APPDATA
variabel lingkungan .Standar C (semua kompiler):
Visual Studio 20xx ( hindari getenv () peringatan yang mengatakan itu tidak aman ) - non Metro Style:
Tingkatkan pengguna : saat ini saya menulis boost.filesystem ini (yang juga merupakan konsep pustaka sistem berkas yang diusulkan ke standar C ++ berikutnya) belum mengimplementasikan fungsi untuk menyediakan direktori yang benar. Namun, ada diskusi tentang ini sebelumnya . Silakan memperbarui bagian ini jika ada perubahan.
Data game bersama
Windows Vista dan berikut ini:
Windows Xp:
Anda dapat secara otomatis mendapatkan alamat yang benar dengan mendapatkan
PROGRAMDATA
variabel lingkungan .Standar C (semua kompiler):
Visual Studio 20xx ( hindari getenv () peringatan yang mengatakan itu tidak aman ) - non Metro Style:
Tingkatkan pengguna : saat ini saya menulis boost.filesystem ini (yang juga merupakan konsep pustaka sistem berkas yang diusulkan ke standar C ++ berikutnya) belum mengimplementasikan fungsi untuk menyediakan direktori yang benar. Namun, ada diskusi tentang ini sebelumnya . Silakan memperbarui bagian ini jika ada perubahan.
Data game sementara
Windows Vista dan berikut ini:
Windows Xp:
Anda dapat secara otomatis mendapatkan alamat yang benar dengan mendapatkan
TEMP
variabel lingkungan .C ++ Tingkatkan pengguna : ada fungsi boost.files sistem lintas platform sederhana untuk ini
Standar C (semua kompiler):
Visual Studio 20xx ( hindari getenv () peringatan yang mengatakan itu tidak aman ) - non Metro Style:
sumber
MacOS
Berdasarkan:
Dalam OS berbasis unix,
~
direktori secara otomatis terletak di direktori home pengguna di mana data spesifik pengguna berada. Ini berarti apa pun bahasanya, pada platform ini Anda dapat mengakses folder ini secara otomatis dengan menggunakan~
alih-alih menggunakan fungsi spesifik OS. Perhatikan juga bahwa/
path root dari keseluruhan sistem, bukan path ke root dari disk utama.Tambahkan direktori Anda sendiri dengan nama game atau perusahaan game lalu nama game ke direktori ini.
Data permainan pemain
Pedoman Apple adalah menemukan lokasi penyimpanan dan konfigurasi file di sana untuk membuatnya disimpan secara otomatis di cloud jika tersedia:
Namun, lebih baik (dan lebih sering digunakan) praktik untuk menemukan file-file ini di:
Ketahuilah bahwa dalam hal ini file tidak akan disimpan secara otomatis ke cloud. Jika Anda ingin pemain memilih, gunakan API platform untuk membuatnya memilih.
Data game bersama
Perhatikan bahwa tidak ada
~
, itu tidak relatif ke rumah pengguna tetapi ke root sistem.Data permainan sementara:
Jika data tidak perlu disimpan di antara eksekusi:
Jika data perlu disimpan di antara eksekusi;
C ++ Tingkatkan pengguna : ada fungsi boost.files sistem lintas platform sederhana untuk ini
sumber
~/Documents
. Itu bagi pengguna untuk memilih mengatur; Anda tidak boleh menulis ke jalur tetap di dalam Dokumen. Game Anda harus digunakan~/Library/Application Support/Your App Name/
untuk menyimpan dan data pengguna lainnya.Linux Debian (Ubuntu, Fedora, dll.)
Berdasarkan:
Dalam OS berbasis unix, direktori ~ secara otomatis terletak di direktori home pengguna di mana data spesifik pengguna berada. Ini berarti apa pun bahasanya, pada platform ini Anda dapat mengakses folder ini secara otomatis dengan menggunakan ~ alih-alih menggunakan fungsi spesifik OS. Perhatikan juga bahwa / adalah path root dari keseluruhan sistem, bukan path ke root dari disk utama.
Tambahkan direktori Anda sendiri dengan nama game atau perusahaan game lalu nama game ke direktori ini.
Data permainan pemain
Secara tradisional, untuk game Aquaria adalah:
Perhatikan bahwa direktori dan file yang dimulai dengan
.
akan disembunyikan secara default kepada pengguna.Sebagian besar desktop sekarang mencoba mematuhi spesifikasi XDG , yang direkomendasikan
atau
untuk konfigurasi dan savegames sebagai gantinya.
Jika
$XDG_CONFIG_HOME
tidak disetel gunakan:atau
Ini sebagian besar untuk mengacaukan direktori home pengguna, serta memungkinkan pengguna untuk menjalankan beberapa profil aplikasi jika mereka menganggapnya perlu. Ada juga direktori khusus pengguna khusus lainnya dalam spesifikasi.
Data game bersama
File konfigurasi bersama harus berlokasi di
Data game sementara
sumber