Domanda

Non intendo solo pubblicare, ma praticamente tutto tra quando il codice puro è finito e la prima versione viene rilasciata. Ad esempio, come fanno i giochi a rendere i loro file di salvataggio nascosti / non integrabili, in che modo includono le loro risorse all'interno del gioco anziché avere un file di risorse contenente tutti gli sprite, ecc., Come lo fanno in modo che ci sono estensioni di file speciali come .rect e .screen_mode, e così via e così via.

Quindi qualcuno conosce qualche buon libro, articolo, sito web, ecc. che spieghi il processo tra il completamento del codice puro per un gioco e la sua pubblicazione?

È stato utile?

Soluzione

Non credo che gli sviluppatori facciano uno sforzo per garantire che i salvataggi siano nascosti o non attaccabili. I giochi per PC di solito semplicemente salvano in una cartella, un file per salvataggio e ogni offuscamento è probabilmente il risultato dell'utilizzo di un formato di file binario (che richiede un certo sforzo per decodificare) o valori di testo in chiaro che non sono molto significativi di contesto, ma non tentativi deliberati di eludere l'hacking. Probabilmente ci sono un sacco di giochi per PC che sono stati spediti con file di salvataggio di testo o XML facilmente hackerabili, ma non sono mai stato un hacker di salvataggio, quindi non ho esempi specifici. Sulle console i file di salvataggio stanno andando su una scheda di memoria o sul disco rigido della console, il che li rende intrinsecamente scomodi da accedere, ma oltre a ciò non credo che gli sviluppatori di console facciano uno sforzo per crittografare o altrimenti offuscare i dati di salvataggio. Quell'energia sarebbe più probabilmente diretta a proteggere il gioco contro gli imbrogli se si tratta di un gioco online o semplicemente a far funzionare meglio altri sistemi.

Le estensioni di file speciali provengono semplicemente dall'utilizzo delle proprie estensioni e / o dalla definizione dei propri formati di file. Puoi utilizzare qualsiasi estensione per qualsiasi file, quindi ci sono tonnellate di " speciali " formati di file che sono solo file di testo con un'estensione diversa, l'ho fatto molte volte da solo. In altri casi, se hanno definito il proprio formato di file binario, ciò significa che hanno anche i propri parser di file per elaborare quei file in fase di esecuzione.

Non so quali piattaforme hai in mente, ma per i giochi per PC e console le risorse non sono incorporate nell'eseguibile. Vedrai generalmente un eseguibile separato e poi vari archivi e file di configurazione. A seconda del gioco, può trattarsi di un singolo pacchetto di risorse o forse di una manciata di pacchetti per risorse correlate come grafica, suono, dati di livello, ecc. Poiché una console di osservazione generale i giochi sono archiviati in modo più aggressivo (per ridurre al minimo le operazioni sui file su ottica lenta media e forse per superare i limiti dei file system nativi su piattaforme più primitive). Alcuni giochi per PC hanno risorse molto allentate, con persino file di script sospesi all'aperto.

Altri suggerimenti

Se sviluppi per Windows o XBox 360, Microsoft potrebbe offrire un aiuto qui. Dai un'occhiata ai loro strumenti di sviluppo del gioco per Visual Studio C ++ Express Edition .

Se stai cercando libri, Game Development Essentials dovrebbe rispondere alle tue domande.

Per aggirare le modifiche ai file salvati, è possibile implementare un semplice algoritmo di crittografia e utilizzarlo per crittografare i file salvati, quindi decodificarli durante il caricamento. Le estensioni dei file sono semplicemente una questione di scelta.

Per utilizzare estensioni di file speciali nel gioco, procedi come segue:

  1. Crea alcuni file in un formato a tua scelta con tale estensione, quindi
  2. scrivi del codice che sappia leggere quel formato e puntalo su quei file.

Le estensioni dei file sono convenzioni, niente di più; non c'è nulla di magico in loro.

ETA: per quanto riguarda l'incorporazione di risorse, esistono diversi modi per affrontare questo problema. Una tecnica comune è quella di tenere tutte le risorse raggruppate in un piccolo numero di file, forse solo uno (Guild Wars adotta questo approccio).

All'altro estremo, puoi lasciare le tue risorse distribuite su molti file in un albero di directory, magari in un formato personalizzato che richiede strumenti speciali per modificare, e forse no. Civilization 4 fa le cose in questo modo, così come tutti i giochi Turbine che conosco. Questa è una questione di gusti, e non molto importante in entrambi i casi.

Penso che una soluzione migliore sia quella di spezzare le tue immagini in tessere di dimensioni conosciute e poi unirle schiena contro schiena in un ordine casuale in un nuovo file. Questo ordine casuale è noto solo a te e quindi solo tu sai come mescolare le tessere per ripristinare l'immagine originale.

L'approccio sarebbe quello di mantenere un array monodimensionale e mantenere la posizione delle piastrelle in esso. Conoscere le funzioni di ritaglio di MIDP per estrarre ogni riquadro e restituire ciascun riquadro alla console.

Se necessario, posso pubblicare il codice per te.

Suggerirei di controllare la presentazione degli sviluppatori di World of Goo (ottimo gioco): http://2dboy.com/public/eyawtkagibwata.pdf .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top