Как лучше всего организовать сохранение игровых данных?
Разбираюсь с системой сохранения игрового процесса. Пока остановил выбор на сохранении в JSON. Но есть несколько вопросов:
1) Безопасно ли с точки зрения производительности сохранять данные в синхронном коде? Или лучше обернуть это в асинхронную задачу? Игровые данные небольшие, в итоге будут занимать пару десятков значений.
2)Насколько часто можно и нужно сохранять игровые данные? Возьмем к примеру обычный кликер, в котором игровое состояние постоянно меняется - насчитываются деньги, списываются ресурсы. Как оптимально настроить сохранение, если на первом месте производительность?
3) Ну и последнее - стоит ли думать о безопасности? То есть шифруете ли вы игровое состояние при сохранении? Если к примеру сохранять в обычный json, любой может прописать при желании любое количество ресурсов. Как с этим бороться и заморачиваетесь ли вы?
1. Можно сделать файл, после чего или зашифровать или скрыть его.
2. Сохранять данные на сервер (защитить при этом все запросы)
3. В Unity есть специальная БД для этого, погуглиле
По вопросам выше:
- стоит ли сохранять данные синхронно: ну это зависит от выбора сохранения, например каждый раз обращаться с сервера не самое крутое решение... Лучше делать сохранение при выходе с игры, или каком то событии.
- стоит ли думать о безопасности: если вы сделаете открытый JSON файл допустим то конечно будут проблемы) можно скрыть вообще напрочь файл, при этом дополнительно зашифровать.
Спасибо за ответ. Скорее всего пока проект будет локальный, без сервера. Доп. траты для стартового проекта не хочется нести.
За специальную бд - посмотрю. Если вы про player preference, то много разговоров о слабости такого подхода. Если же окажется что есть еще инструмент для безопасного хранения игровых данных, будет супер.
можно скрыть вообще напрочь файл, при этом дополнительно зашифровать
Полностью согласен. Вот потому и интересно как люди на своих проектах решают этот вопрос.