Zastanawiam się, jak zaimplementować grę opartą na komponentach, ponieważ wydaje się to być najgorętsze i podoba mi się pomysł takiego elastycznego projektu. Jedną z cech takiego projektu jest to, że dodawanie nowych rzeczy do gry może odbywać się za pomocą danych, często przedstawianych jako ładowanie treści za pomocą plików tekstowych, takich jak XML. Ma to tę zaletę, że jest czytelne dla człowieka i łatwe do edycji w dowolnym edytorze tekstu. Z drugiej strony, tekst może być wolniejszy, a Ty musisz zarządzać dużą kolekcją plików danych. Podobne formaty tekstowe, takie jak JSON lub pliki konfiguracyjne, miałyby podobne zalety.
Z drugiej strony istnieją małe, przenośne bazy danych, takie jak SQLite lub Tokyo Cabinet. Pliki te, choć nie są bezpośrednio czytelne dla człowieka, są łatwe w obsłudze i wyobrażam sobie, że do projektowania treści gier i tak byłoby lepsze narzędzie do edycji. Korzystanie z bazy danych pozwala na spójne przechowywanie informacji o konfiguracji i łatwe wyszukiwanie. Możesz również serializować dane do bazy danych, aby zapisać gry.
Pod względem wydajności, myślę, że ogólnie XML jest szybszy dla małych plików, ale baza danych lepiej skaluje się do dużych ilości danych. Wyobrażam sobie, że w każdej prawdziwej grze będzie mnóstwo przedmiotów.
Pytanie: które podejście jest lepsze? Opieram się na DB, ale chcę wiedzieć, czy istnieją ukryte pułapki lub naprawdę silne zalety plików tekstowych. Lub jeśli istnieją inne alternatywy poza nimi (chyba serializacje do formatu binarnego?)