В то время как такие решения, как система преобразования персонажа в состояние Джоша Петри, имеют свои преимущества (небольшой размер сохранения, работает на всех копиях игры), они объединяют дизайн игры и систему состояний по своей сути с системой паролей. Любое изменение пароля или состояния или дизайна и всей системы рушится.
Гораздо более простым решением было бы создать систему сохранения в соответствии с обычным режимом и просто добавить систему паролей сверху. Это может быть так же просто, как сохранить пароль при сохранении (возможно, удвоить как имя файла) и проверить его при загрузке, или так же сложно, как использовать одну из множества библиотек шифрования (что довольно тривиально).
Кажется, есть некоторая путаница вокруг этого ответа.
1) Оператор просто запросил пароль, который позволит им загрузить сохранение ... нет требования, чтобы пароль был сохранением.
2) Многие игры сегодня требуют значительного сохранения памяти, мы только что создали систему быстрого сохранения / загрузки, которая производила файлы размером 10 МБ ... для игры-викторины! Система сохранения Джоша Петри , хотя действительность очень ограничена - как только система хранения становится нетривиальной, пароли должны иметь огромную длину, чтобы сохранить все соответствующие данные.
Например, что произойдет, если будет 30 боссов? 20 достижений? Мы на полпути к достижению? На каком уровне он находится? Сколько бит мы откладываем на здоровье, жизни, монеты, хр? Что если снимок не в состоянии между уровнями ... а на полпути через уровень - позиции игрока, врагов, снарядов, разрушенной / измененной местности внезапно складываются во множество состояний, которые необходимо сохранить.
Для перспективы, принимая 30-символьный алфавит и десятибуквенный пароль, у нас есть информация для хранения примерно на 50 битов. Нередки случаи, когда игра / движок использует до 320 битов только для хранения позиции, поворота и масштабирования отдельного объекта. Конечно, вы можете делать все виды приемов оптимизации, чтобы делать больше с меньшими затратами ... но в конечном итоге вы тратите время, потраченное на то, чтобы сделать игру увлекательной - одна из худших оптимизаций, которую вы можете сделать.