Virtual file system di DarkPlaces
Contents |
Il virtual file system di DarkPlaces è una tabella di file di sostituzione che combina il vero file system e i file contenuti in archivi di gioco PK3 e PAK.
Le cose che permette di fare:
- accesso trasparente a game directory separate contenenti file tutti scrivibili (My Documents/My Games)
- accesso a file dentro ad archivi come se fossero sull'HDD
- supporto per mod (le mod possono sostituire file ed aggiungerne di nuovi)
- sicurezza (il codice di gioco non può danneggiare i file di gioco)
[edit] Come è fatta la tabella di file
- La prima game directory viene processata
- Gli archivi sono processati in sequenza (per ordine alfabetico), i dile con lo stesso nome vengono sovrapposti
- I file vuoti sovrapposti ad altri vengono "cancellati" dal file system
- I file reali contenuti nella game directory vengono processati e sovrapposti ai file negli archivi
- La successiva game directory viene processata
[edit] Peculiarità
Dato che il virtual file system è, in fin dei conti, un livello astratto, ha delle proprie peculiarità.
[edit] 1. La home directory può essere diversa dalla game directory
Questo significa che il config.cfg, gli screenshot eccetera sono contenunti in una cartella diversa, ad esempio in "My Documents/My Games/gamedir"
[edit] 2. Per i file scritti "data/" viene aggiunto automaticamente
Quando QC scrive un qualsiasi file il motore aggiunge in automatico 'data/' al percorso, così che il codice di gioco non possa danneggiare file, mappe... Ma il processo di lettura è diverso. Può leggere file dalla cartella di base, delle open map...
Così, se si scrive, ad esempio, un "foo.txt" (che verrà scritto in "data/foo.txt") e si ha un "foo.txt" nella game directory, diventa necessario indicare il percorso "data/foo.txt" quando si legge il file, e indicare "foo.txt" quando si scrive. Se non lo si fa, il file verrà scritto sotto "data/", ma verrà letto il file nella game directory.
[edit] 3. "./" e "../" non sono utilizzabili
Per prevenire che il codice di gioco danneggi dei file l'uso degli operatori "." e ".." per i percorsi sono proibiti.
[edit] 4. Non completamente integrato nell'editor di mappe
L'editor di mappe non supporta il virtual file system nella finestra di selezione modelli (l'ispettore delle entity), può selezionare solo file reali. Questo non è un problema per la versione di sviluppo di Blood Omnicide (copia in locale di SVN con installazioni di prova), ma la versione che sarà diffusa dell'SDK dovrà per forza avere tutti i modelli di gioco decompressi, in modo di farli vedere dall'editor nella finestra di selezione modelli.