Apromix писал(а): ↑08 фев 2017, 12:56
Итак, перечитал все посты, предлагаю сделать в таком виде:
I. Три группы методов в библиотеке:
- Пол - список предметов на полу подземелья.
- Персонаж - список надетых на персонажа предметов.
- Инвентарь - список предметов в инвентаре персонажа.
То что лежит на полу - оно как бы относится больше к карте уровня, т.е. на каждом тайле есть, список, где храним лежащие там предметы. Если ничего нет, то он просто пустой, но он есть в структуре, описывающей тайл. Храним только id вещи.
Думаю, что где-то в памяти должен лежать массив структур, где каждый элемент описывает один из возможных в игре предметов. Если предметы можно улучшать, то в структуре обязательно должна быть ссылка на наследника. Массив предметов должен читаться из файла (чтобы создавать список и корректировать без перекомпиляции приложения) Да еще можно создать приложение для генерации предметов.
Идеально конечно бы подошла sql база данных, но в данном случае это больше похоже на забивание гвоздей микроскопом. Хотя если предметов в игре прямо ну очень много, плюс у них бывают разные характеристики, возможны улучшения, крафт, разборка на составные части - возможно посмотреть и в сторону базы данных.. С базой данных вообще было бы удобно работать - выбрал из ней все предметы, относящиеся к броне уровней например 5-8 и несколько случайных предметов из выборки раскидал по уровню. А из массива придется методом перебора выбирать различные группы элементов.
Ну а у персонажа инвентарь, экипировка - там лежат только id вещи.
При использовании базы данных вообще всё можно было бы хранить в ней. И никаких проблем с сериализацией данных игры при её сохранении. И так же при загрузке - просто подключить нужную базу.
Какие есть самые простые и легкие бесплатные базы данных, которые можно запихнуть в dll? А то что-то меня эта идея прямо очень заинтересовала.