Как работают сохранения в играх. В чём опасность F5-F9 и почему нельзя сохраняться в прыжке и в бою
Для обычного игрока сохранение - это что-то такое мимолётное, незаметное. Но по факту при разработке игры сохранения вызывают у разработчиков трепет и тревогу. Почему? Расскажу обо всех нюансах сохранения в играх в этом небольшом посте.
Как работает система сохранений
Когда в игре происходит любое сохранение, то на компьютере создаётся маленький файл. И этот файл является слотом сохранения. Соответственно, когда ты выбираешь в игре какой слот загрузить, то фактически ты говоришь игре, какой файл с компьютера нужно загрузить в игру. Поэтому слот = файл сохранения на компьютере.
В популярных игровых магазинах по типу Steam, Epic Games Store и так далее эти файлы ещё уходят в облачное хранилище, что даже если ты удалишь файл сохранения с компьютера, то потом эти магазины подтянут твой файл сохранения со своих серверов и закинут этот файл тебе на компьютер при очередной загрузке игры, что удобно.
Но это был общий принцип. А что именно записывается в этот самый файл? А вот тут самое интересное. Например, если ты пересекаешь контрольную точку в игре, то фактически игра передаёт в этот самый файл текстовую информацию о том, сколько у твоего персонажа здоровья, какой уровень, какой у него класс, сколько миссий выполнено, какая текущая миссия и так далее.
Давайте реальный пример. Вы играете в Half-Life 2. У вас 67% здоровья. Вы сохраняетесь. Игра в файл сохранения передаёт информацию, что у вас 67% здоровья. Вы выходите из игры. Потом заходите снова, загружаете игру - и игра фактически достаёт информацию из файла о том, чтобы в начале игры установить игроку те самые 67% здоровья.
В общем, всё то, что потом появится при загрузке игры - сохраняется в этот самый файл. И вот тут мы подобрались к тому, почему разработчики очень трепетны к системе сохранений.
Почему система сохранений вызывает сложности при разработке
Тут всё просто. Если разработчик совершит ошибку на своей стороне, то возможна ситуация, когда файл (слот) просто запишет данные для сохранения с ошибкой. В результате чего при следующей загрузке слота выйдет ошибка. Всё, се ля ви.
Представьте, что вы наиграли в игру 40 часов, а потом в один момент ваш файл сохранения просто не работает. Вот и для разработчика такая ситуация является самым страшным сном.
Именно поэтому разработчики убедительно в самом начале игры просят вас не выключать ПК, пока горит значок сохранения. Потому что в этот момент происходит запись информации в слот, и если что-то произойдёт - слот будет повреждён и до свидания прогресс.
Поэтому разработчики тестируют систему сохранений очень трепетно, потому что одна ошибка - игрок потеряет часы прогресса, а разработчик потом будет слышать в свой адрес много нехороших слов.
Почему нельзя сохраняться в играх в прыжке и в боях?
В играх, где есть быстрое сохранение и быстрая загрузка (F5 - F9) во время прыжков чаще всего игра запрещает сохраняться, сопровождая такой запрет надписью "Во время прыжка сохранение невозможно". Почему так?
Потому что когда игрок находится в воздухе - это максимально нестабильное состояние для сохранения.
Во-первых, вдруг игрок сохранится прям перед смертельным падением? Ошибка игрока? Да, конечно. Но игрок будет винить разработчиков.
Во-вторых, состояние прыжка тяжело сохранить в файл. Так, во время прыжка по сути нужно сохранять положение персонажа, скорость, с которой он падает, на каком кадре находится анимация прыжка, какое оружие у него в руке и в каком положении это самое оружие и так далее. Куча инфы, которая заносится в файл сохранения.
По той же причине и часто запрещаются сохранения во время боёв, потому что тоже нужно держать кучу переменных в себе - куда целится враг? Сколько врагов на сцене? Какая у них сейчас анимация? В общем, куча всего.
Кстати говоря, если вы играли в игры FromSoftware (Dark Souls, Elden Ring и другие), то вы замечали наверняка: игра буквально сохраняется в любой момент (кроме прыжка). И да, это исключение из правил. Разработчики действительно производят сохранение в момент выхода из игры, даже если вы выходите из игры через ALT + F4.
Почему сохранения через F5-F9 реже добавляют в игры?
Сейчас большинство игр не имеет быстрого сохранения и быстрой загрузки, а в дело вступают чекпоинты и автоматическое сохранение.
Почему так? На самом деле на то есть причины. Например, такие сохранения часто использовались в играх 90-х и 2000-х, потому что игры были проще. Но когда игры становились сложнее, начала появляться физика и в целом игры стали комплексными, чем раньше, то от F5-F9 начали отказываться. Например, в Far Cry 2004-го года.
Плюс ко всему геймдизайнеры поняли фишку: игроки по сути занимались save scumming (сейфскамминг - "дойка сохранений") и постоянно сохранялись и загружались при неудаче, из-за чего сложные сегменты, которые по задумке геймдизайнера должны были быть сложными, тупо проходились за счёт сейвскамминга. Из-за этого геймдизайнерские решения просто не работали.
Кстати, в Postal 2 классно обыграли сейфскамминг. Если вы будете часто жать F5, то герой будет вас высмеивать, говоря: "Ты что, опять сохраняешься!?", "Да даже моя бабка бы это прошла без сохранения!"
Ну и последний факт: автоматические сохранения тупо безопаснее, вот и всё. Если вы опытный геймер, то признайтесь, было же у вас такое, что вы когда-то по-тупому сохранились на F5, а оказывается вы сохранились прям за секунду до смерти? Вот так.
Конечно, сейчас F5-F9 до сих пор используются в некоторых играх, но всё-таки доля таких игр заметно снизилась.
Один слот сохранения - большие риски
Есть игры, где только лишь один слот сохранения. И за такое разработчикам нужно отрывать руки, особенно если разработчики неопытные.
Мой пример из жизни: я играл в Lara Croft and the Temple of Osiris. Игра всё сохраняла в один слот (в игре нет возможности выбрать слот сохранения). И вот случился баг - сюжетная дверь просто не открывалась. Как делать бэкап сохранения? Никак. Слот игры запомнил, что эта дверь должна быть закрыта. А по сюжету она должна была открываться. Ну и всё, the end. Только заново проходить 5 часов игры.
Поэтому большие игры и опытные разработчики специально создают кучу различных слотов, чтобы в случае чего - всегда можно было бы откатиться на пару игровых минут назад.
Поэтому если вдруг игра вам разрешает сохраняться в разные слоты, то лучше этой возможностью пользоваться.
Боги сохранений по моему мнению
Пожалуй, самая мощная система сохранений, которая только имеется на мой взгляд в индустрии - она у студии Larian, а именно в играх Divinity и Baldur's Gate.
Помимо того, что ты можешь сейфскамить во время боёв (что как мы выяснили тоже рискованная штука), так в играх можно сейфскамить даже во время катсцен и диалогов! Это просто фантастика.
Потому что игре нужно запоминать, на каком этапе находится диалог, какие в этом диалоге были сделаны предыдущие выборы и так далее. Это очень мощно, поверьте.
Ну и на самом деле стоит отметить и Remedy. Так, система сохранений в Max Payne 1 и 2 вообще была какой-то невероятной, ибо позволяла сохранять всё даже в полёте, а также сохраняла всё состояние вокруг. К примеру, если вы выстрелили в стену и сохранились, то при загрузке из стены будет вылетать эффект попадания.
Ну и на этом всё. Если есть какие-то вопросы - то пишите в комментариях.
===================
Об авторе:
Являюсь разработчиком игр и веду свой YouTube канал по созданию игр на Unreal Engine и второй канал по Unity. Если интересно, то можете заглянуть и подписаться, поскольку показываю в своих видео, как создаются популярные игровые механики.