2013-03-25 5 views
0

Вчера, когда я играл в видеоигру, мне вдруг приходит вопрос, как реализован механизм сохранения игры?Как реализовано сохранение игр, чтобы разработчик мог избежать создания божественного класса/объекта?

В основном, для экономии требуется все данные игры. В этом случае, не нужно ли программисту создать объект-бог, который ссылается на КАЖДОЕ отдельное количество игровых данных?

Я размещаю вопрос здесь на SO, а не на разработке игр, потому что я хочу получить ответ, основанный на разработке программного обеспечения, а не на самой разработке игры.

+1

ли мой ответ крышки, что вы надеялись узнать? –

ответ

1

Одна вещь, которую вы должны иметь в виду, состоит в том, что вам нужно хранить данные, которые имеют значение. Например, это может включать содержимое инвентаря (возможно, список идентификаторов и количества), позицию игрока и ключевые бит бит (вы уже получили заколдованный сельдерей из запрещенного холодильника?). Это может быть реализовано с чем-то вроде шаблона Memento, хотя на практике это обычно просто структура (или эквивалент), которая сериализуется на диск.

Вам не нужно сохранять состояние всего мира, так как загрузчик уровня обычно будет заботиться о размещении объекта/объекта в мире. Если вы посмотрите внимательно, вы заметите, что восстановление сохранения не обязательно восстанавливает точное состояние всего в мире - только важные бит. Это своего рода психологический взлом, который часто используется в играх.

Некоторые другие соображения с сохраненными файлами могут включать хеш-память или контрольную сумму для обнаружения сохранения файлов или хранения начальных значений, которые будет использоваться для создания той же серии событий/сущностей после загрузки игры.

В принципе, вы на самом деле не нужно, чтобы сохранить каждый бит мирового государства - только части игрок, скорее всего, заботиться о :-)