Procedi con il secondo approccio, semplicemente perché puoi introdurre nuovi tipi di risorse o elementi in qualsiasi momento senza dover riscrivere o aggiornare il codice ( sviluppo guidato dai dati ).
Modificare:
Per approfondire un po 'di più il motivo per cui questo è in genere una buona pratica, anche se sei sicuro al 100% che un valore non cambierà mai.
Prendiamo l'esempio di gioco per console menzionato nei commenti, perché questo fornisce un'ottima ragione per cui non dovresti codificare nulla, a meno che tu non abbia davvero (o desideri), ad esempio chiavi di crittografia, il tuo nome, ecc.
Quando si rilascia un gioco su console, questi di solito devono passare attraverso un processo di revisione, in cui il QA del produttore della console testerà il gioco, ci giocherà, cercherà problemi, ecc. Questo è obbligatorio e costa denaro, molti soldi. Penso di aver letto che una versione potrebbe costare 30.000-50.000 $ solo per la sola certificazione.
Ora immagina di spingere il tuo gioco per il rilascio, pagando i 30.000 $ e attendi. E improvvisamente noti che alcuni dei tuoi valori di gioco sono letteralmente infranti. Diciamo che puoi comprare barre di ferro per 50 monete d'oro e venderle per 55 monete d'oro.
cosa fai? Se hai codificato queste cose, dovrai creare una nuova versione di aggiornamento / rilascio, che dovrà passare di nuovo attraverso la revisione, quindi nel caso peggiore pagherai ancora una volta per la ricertificazione! Scommetto che Ubisoft non ti dispiacerà, ma per la tua piccola tasca per sviluppatori di giochi indie ... ahi!
Ma immagina che il gioco verifichi solo occasionalmente le definizioni di gioco aggiornate (ad esempio sotto forma di un file JSON). Il gioco potrebbe scaricare e utilizzare la versione più recente in qualsiasi momento senza richiedere un nuovo aggiornamento. È possibile correggere tale squilibrio / exploit / bug in qualsiasi momento senza richiedere la ricertificazione o altri soldi pagati. Solo una piccola decisione di progettazione, non pensavi che ne valesse la pena, ti ho appena risparmiato una somma di 5 cifre! Non è fantastico? :)
Non fraintendetemi. Questo vale anche per altri tipi di software e piattaforme. Il download di file di dati aggiornati è in genere molto più semplice e fattibile per l'utente standard, non importa se si tratta di un gioco o di qualche tipo di applicazione / strumento. Immagina un gioco installato in Programmi in Windows. Il tuo aggiornamento necessita dei diritti di amministratore per modificare qualsiasi cosa e non puoi modificare i programmi in esecuzione. Con DDD il tuo programma scarica semplicemente i dati e li utilizza. Il giocatore potrebbe anche non notare che c'è stato un aggiornamento.