@avadakeda

Что стоит хранить в базе данных для пошаговой игры на Unity?

Понятно что всякие рейтинги, результаты, статистику и т.п. послематчевое надо хранить в БД, а вот игровые объекты, карту, различные справочники типов объектов?
Я не могу понять как организовать работу с данными, в каком виде с ними работать? Например есть большая гексагональная карта для пошаговой стратегии, мне полностью описывать модель данных в БД? Каждая строка в таблице session_map это ячейка с координатами на карте и номер сессии, эта таблица связана например с справочником ячеек (у них могут быть разные характеристики) и т.д. и т.п. и ты просто делаешь update на каждое изменение.
Или мне надо представлять всё это в виде объектов, грузить в память и работать с ними в памяти? Ну тогда если игроков будет даже несколько тысяч требования по памяти возрастут многократно(?), вот нашёл похожий unity3d.ru/distribution/viewtopic.php?f=105&t=35838 случай.
Что хранить в БД, а что в памяти программы? Если в памяти программы всё-таки обязательно, то какую часть надо хранить в БД? Необходим ли ORM для этого?
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Сервер может зависнуть, или вырубится электричество, и все данные из оперативки вы потеряете.
Следовательно, хранить в БД нужно все, что нужно для перезапуска игры с этого-же места.

При этом те штуки, которые нужны максимально часто, стоит держать в памяти для ускорения.
Если вы целитесь в хайлоад, то откройте для себя in-memory и/или гибридные базы данных, они вам точно понадобятся.
К примеру тот-же redis умеет держать кучу всего в памяти, при этом в фоне ведет запись и на диск.

Ценность ORM вы осознаете только с ростом сложности и объема кода. На маленьких проектах лишняя ORM-прослойка только мешает, на больших без него очень сложно разобраться.
При этом даже на больших проектах могут встречаться высоконагруженные модули, в которых ОРМ выпилен ради ускорения и экономии ресурсов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы