Как раз в этом случае будет не очень удобно. для базовых предметов допустим всё просто - поля известны, таблица готова. Ну или несколько таблиц, если у оружия 3 параметра, а у брони 7. А если урон генерится из некоторого диапазона, улучшения могут иметь разное 2-3 случайных параметра, а могут давать принципиально новое свойство, а могут блокировать переменное число других улучшений, крафт влияет на разные характеристики, то во-первых нет никакого "набора всех вещей", каждая вещь генерится алгоритмом, соответственно от выборок не будет никакого толку, всё равно любая работа будет только с индивидуальным предметом. А во-вторых каждый предмет окажется размыт по куче таблиц(для базовых вещей, для улучшений, для связи одного с другим, для влияния крафта), для создания и удаления будет модифицироваться каждая из этих таблиц, в итоге скорее всего даже по производительности будет проигрыш.altmax писал(а): ↑12 фев 2017, 14:44Идеально конечно бы подошла sql база данных, но в данном случае это больше похоже на забивание гвоздей микроскопом. Хотя если предметов в игре прямо ну очень много, плюс у них бывают разные характеристики, возможны улучшения, крафт, разборка на составные части - возможно посмотреть и в сторону базы данных.. С базой данных вообще было бы удобно работать - выбрал из ней все предметы, относящиеся к броне уровней например 5-8 и несколько случайных предметов из выборки раскидал по уровню. А из массива придется методом перебора выбирать различные группы элементов.
Ну и удобство вообще отдельный вопрос. Конечно хорошая ORM обертка может приблизить удобство работы с бд к работе с обычными полями, но то что эти ORM вообще существуют намекает что изначально работа с бд все-таки сложнее и неудобнее, да и с ORM все равно будут моменты когда надо учитывать структуру таблиц.
И да, свою перв вторую игру я на базе данных делал. Потому что в книжке по дельфи как работать с бд хорошо объяснялось, а как читать бинарные файлы - не очень. Ну и редактор данных изкаробки. И в принципе да, работало. Но в целом по-моему это остается "микроскопом по гвоздям", в сложной игре система предметов усложняется не в ту сторону для которой базы данных удобны.