Задать вопрос
@intet

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

Появилось желание написать простую пошаговую игру и практически сразу же встал вопрос сохранения состояния. Текущее состоянии игры описывается набор java объектов, связанных между собой и имеющих внутренние поля.
При сохранение важно упаковать все эти объекты и связи, чтобы после восстановить при загрузке.
Пока вижу только два варианта
1) Sql БД в таблицы которой складываются объекты, ссылки и при загрузке все подтягивается из БД.
Очевидные минусы - сложность с поддержкой разных версий, нельзя просто покопаться в сох ранениях текстовым редактором.
2) Xml. Можно копаться редактором, проще с поддержкой разных версий, но не понятно как хранить связи между объектами в случае если А ссылается на Б и Б ссылается на А.
Если есть у кого-нибудь опыт подобных дел или просто размышления на эту тему прошу поделиться.
  • Вопрос задан
  • 3443 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
CTAKAH4uK
@CTAKAH4uK
Для простоты сериализуйте Java объекты и храните их в sqlLite, который в свою очередь "вшейте" в проект.
Плюсы :
Простота хранения
Ресурсоемкость(не требует развертования СУБД)
Скорость разработки(не требуется писать маппинг java - субд - ячейка)
Минусы :
Производительность(но для хранения состояний это не критично)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Little_CJIOH
А сколько "состояний" хранить надо?
А то может вам коробка из икеи нужна, а не роботизированный складской комплекс.
В смысле, может писать json в файлик?
Ответ написан
torrie
@torrie
Всё знаю, всё умею
XML в наш век для таких целей выглядит как костыль. Конечно, используйте БД.
В бд можно копаться и очень просто. Есть куча софта, а если будете использовать mysql, то и разные phpmyadmin.
Подрастёте, переходите на облачные бд аля https://parse.com/ (хотя можете и сечас с ними ознакомиться).

Поддержка версий при грамотной структуре - не вопрос вовсе.

Не стоит бояться БД. Просто найдите свой подход к ним. В них не так всё сложно как кажется. Select, update, delete, insert - все команды которые вам понадобятся. Далее - вопрос структуры.
Если планируете свой сервер, начинайте учить django - там сможете почти автоматом нагенерить любую БД. Иначе смотрите в сторону облачных БД(писал выше) - как в них создать БД разберется даже домохозяин. Остальное - дело за вашим клиентом
Ответ написан
Ваш ответ на вопрос

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

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