Я обдумываю, как реализовать компонентную игру, так как это, кажется, горячая вещь, и мне нравится идея такого гибкого дизайна. Одной из особенностей такого дизайна является то, что добавление новых вещей в игру может быть выполнено с помощью данных, часто представляемых как загрузка контента с помощью текстовых файлов, таких как XML. Это имеет то преимущество, что человек удобочитаем и легко редактируется в любом текстовом редакторе. С другой стороны, текст может работать медленнее, и вам приходится управлять большой коллекцией файлов данных. Подобные текстовые форматы, такие как JSON или файлы конфигурации, будут иметь аналогичные преимущества.
С другой стороны, есть небольшие портативные базы данных, такие как SQLite или Tokyo Cabinet. Хотя эти файлы не являются непосредственно читаемыми человеком, с ними легко взаимодействовать, и я полагаю, что какой-то инструмент редактирования в любом случае предпочтительнее для дизайна игрового контента. Использование БД позволяет последовательно хранить информацию о конфигурации и легко извлекать данные. Вы также можете сериализовать данные в БД для сохранения игр.
С точки зрения производительности, я думаю, что в целом XML быстрее для небольших файлов, но база данных лучше масштабируется до больших объемов данных. Я думаю, что в любой реальной игре будет много игровых объектов.
Итак, вопрос: какой подход предпочтительнее? Я склоняюсь к БД, но я хочу знать, есть ли скрытые подводные камни или действительно сильные преимущества для текстовых файлов. Или, если есть и другие альтернативы, кроме этих (я думаю, сериализацию в двоичный формат?)