Idź z drugim podejściem, po prostu ze względu na fakt, że możesz wprowadzić nowe typy zasobów lub elementy w dowolnym momencie bez konieczności przepisywania lub aktualizacji kodu ( programowanie oparte na danych ).
Edytować:
Aby wyjaśnić nieco więcej, dlaczego jest to ogólnie dobra praktyka, nawet jeśli masz 100% pewności, że jakaś wartość nigdy się nie zmieni.
Weźmy przykład gry na konsolę wspomniany w komentarzach, ponieważ stanowi to bardzo dobry powód, dla którego nie powinieneś niczego programować na sztywno, chyba że naprawdę masz (lub chcesz) np. Klucze szyfrujące, własne imię itp.
Wydając grę na konsolach, zwykle muszą one przejść proces przeglądu, w którym własna kontrola jakości producenta konsoli przetestuje grę, zagra w nią, wyszuka problemy itp. Jest to obowiązkowe i kosztuje, dużo pieniędzy. Wydaje mi się, że kiedyś przeczytałem, że wydanie może kosztować 30 000-50 000 USD tylko na samą certyfikację.
Teraz wyobraź sobie, że naciskasz na wydanie gry, płacąc 30 000 $ i czekaj. I nagle zauważasz, że niektóre z twoich wartości gry są dosłownie złamane. Załóżmy, że możesz kupić żelazne sztabki za 50 sztuk złota i sprzedać je za 55 sztuk złota.
Co robisz? Jeśli na stałe zapisałeś te rzeczy, będziesz musiał utworzyć nową wersję aktualizacji / wydania, która będzie musiała ponownie przejrzeć recenzję, więc w najgorszym przypadku zapłacisz jeszcze raz za ponowną certyfikację! Założę się, że Ubisoft nie będzie miał nic przeciwko, ale dla twojej małej kieszeni niezależnego producenta gier… ouch!
Ale wyobraź sobie, że gra od czasu do czasu sprawdza zaktualizowane definicje gier (np. W postaci pliku JSON). Twoja gra może pobrać najnowszą wersję i korzystać z niej w dowolnym momencie, bez konieczności nowej aktualizacji. Możesz naprawić tę nierównowagę / wykorzystać / błąd w dowolnym momencie bez konieczności ponownej certyfikacji lub innych wpłaconych pieniędzy. To tylko drobna decyzja projektowa, która nie wydawała się Ci warta, tylko zaoszczędziłeś 5-cyfrową sumę pieniędzy! Czy to nie jest niesamowite? :)
Tylko nie zrozum mnie źle. Dotyczy to również innych rodzajów oprogramowania i platform. Pobieranie zaktualizowanych plików danych jest ogólnie o wiele łatwiejsze i wykonalne dla standardowego użytkownika, bez względu na to, czy jest to gra, czy jakaś aplikacja / narzędzie. Wyobraź sobie grę zainstalowaną w Program Files w systemie Windows. Aktualizator potrzebuje uprawnień administratora, aby modyfikować cokolwiek i nie można modyfikować uruchomionych programów. Dzięki DDD twój program po prostu pobiera dane i wykorzystuje je. Gracz może nawet nie zauważyć, że nastąpiła aktualizacja.