Portal:InItalian/Virtual file system di DarkPlaces

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)

Come è fatta la tabella di file

 * 1) La prima game directory viene processata
 * 2) Gli archivi sono processati in sequenza (per ordine alfabetico), i dile con lo stesso nome vengono sovrapposti
 * 3) I file vuoti sovrapposti ad altri vengono "cancellati" dal file system
 * 4) I file reali contenuti nella game directory vengono processati e sovrapposti ai file negli archivi
 * 5) La successiva game directory viene processata

Peculiarità
Dato che il virtual file system è, in fin dei conti, un livello astratto, ha delle proprie peculiarità.

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"

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.

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.

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.