Entscheiden Sie sich für den zweiten Ansatz, da Sie jederzeit neue Ressourcentypen oder -elemente einführen können, ohne den Code neu schreiben oder aktualisieren zu müssen ( datengesteuerte Entwicklung ).
Bearbeiten:
Um ein bisschen mehr darüber zu sagen, warum dies im Allgemeinen eine gute Praxis ist, auch wenn Sie zu 100% sicher sind, dass sich ein bestimmter Wert niemals ändern wird.
Nehmen wir das in den Kommentaren erwähnte Beispiel für ein Konsolenspiel, denn dies ist ein guter Grund, warum Sie nichts hart codieren sollten, es sei denn, Sie haben wirklich (oder möchten), z. B. Verschlüsselungsschlüssel, Ihren eigenen Namen usw.
Wenn Sie ein Spiel auf Konsolen veröffentlichen, müssen diese in der Regel einen Überprüfungsprozess durchlaufen, bei dem die QS des Konsolenherstellers das Spiel testet, es durchspielt, nach Problemen sucht usw. Dies ist obligatorisch und kostet Geld, viel Geld. Ich habe mal gelesen, dass eine Veröffentlichung allein für die Zertifizierung 30.000-50.000 US-Dollar kosten könnte.
Stellen Sie sich vor, Sie wollen Ihr Spiel veröffentlichen, zahlen die 30.000 US-Dollar und warten. Und plötzlich merkst du, dass einige deiner Spielwerte buchstäblich gebrochen sind. Nehmen wir an, Sie können Eisenbarren für 50 Gold kaufen und für 55 Gold verkaufen.
Wie geht's? Wenn Sie dieses Zeug fest programmiert haben, müssen Sie eine neue Update- / Release-Version erstellen, die noch einmal überprüft werden muss, sodass Sie im schlimmsten Fall erneut für die Neuzertifizierung zahlen müssen! Ich wette, Ubisoft hat nichts dagegen, aber für Ihre eigene kleine Indie-Spiele-Entwicklertasche ... autsch!
Stellen Sie sich jedoch vor, das Spiel sucht nur gelegentlich nach aktualisierten Spieldefinitionen (z. B. in Form einer JSON-Datei). Ihr Spiel kann jederzeit die neueste Version herunterladen und verwenden, ohne dass ein neues Update erforderlich ist. Sie können dieses Ungleichgewicht / Exploit / Bug jederzeit beheben, ohne eine erneute Zertifizierung oder ein anderes bezahltes Geld zu benötigen. Nur eine kleine Designentscheidung, die Sie nicht für lohnenswert hielten. Sie haben nur fünfstellige Beträge gespart! Ist das nicht großartig? :)
Versteh mich einfach nicht falsch. Dies gilt auch für andere Arten von Software und Plattformen. Das Herunterladen aktualisierter Datendateien ist für den Standardbenutzer im Allgemeinen viel einfacher und praktischer, unabhängig davon, ob es sich um ein Spiel oder eine Anwendung oder ein Tool handelt. Stellen Sie sich ein Spiel vor, das unter Programme in Windows installiert ist. Ihr Updater benötigt Administratorrechte, um Änderungen vorzunehmen, und Sie können laufende Programme nicht ändern. Mit DDD lädt Ihr Programm einfach die Daten herunter und verwendet sie. Der Player bemerkt möglicherweise nicht einmal, dass ein Update durchgeführt wurde.