@AkaruZ

Как лучше сохранять игровой прогресс в MySql?

Всем здравствуйте! У меня готов прототип игры и теперь стоит вопрос сохранения игрового прогресса. Всех игроков я хочу хранить в базе данных MySQL, там у меня хранятся таблицы с аккаунтами и самими персонажами. Вопрос в другом, также в игре есть около 50 различных уровней, а уровни еще разбиты на сложности(легкий, средний, сложный), как мне лучше сохранять такой прогресс в базе? Мне нужно каждый уровень заносить отдельной строчкой в таблице(например таблица Levels)?? Но тогда у меня будет около 50 строк на каждого игрока, а если игроков тысячи? Может можно как-то сохранять все уровни в одну строчку? (Да, можно и в одной строчке сделать 50 столбцов, но я не уверен, что это правильно...) Тот же вопрос касается и инвентаря персонажа, на каждого персонажа у меня по 40 ячеек слотов в сумке, как мне её сохранять, каждый слот отдельной строкой в таблице(Inventory) или можно как-то одним массивом хранить??? А может рядом с базой данных можно хранить какой-то файл который в себе несет всю информацию(типа сейв файла), а в бд просто в таблице делать ссылку на этот файл? Вообщем, прошу помощи как лучше сохранять такой объем информации используя базу данных, всем спасибо, всех с новым годом!!
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В юнити есть прекрасная возможность сериализовывать обьекты.

Создайте объект GameState и сериализуйте его хоть в поле text хоть в блоб

https://docs.microsoft.com/ru-ru/dotnet/standard/s...
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
50 тысяч строк это вообще не проблема.
Если состояние каждого уровня хранить как байт, то это всего 50 кбайт.
Даже если хранить как строки, с учетом накладных расходов mysql, займет ну пару мегабайт.
На данном этапе можно вообще не париться.

Инвентарь - тоже, каждый предмет в отдельной строке с указанием владельца и места, и всех параметров предмета.

Базы данных были для того и созданы, что подобного уровня объемы это мелочи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы