Псевдослучайность в однопользовательских играх: сохранение и загрузка




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

Сохранение в любом месте

Допустим, у вас есть игра, где можно сохраниться где угодно, в любой момент. Многие игры так устроены, потому что так удобнее для игрока. Между тем, ничто не мешает игроку сохраниться непосредственно перед значимым событием, содержащим случайный элемент – возможно, таким, где успех очень маловероятен, но и награда за него значительная – и перезагружаться с сохранения пока ему не повезёт. Если вы будете заново генерировать инициирующее «зерно», рано или поздно, игрок своего добьётся, и тут уже нельзя сказать, что он играет в ту игру, которую вы задумали… но с другой стороны, он использует разработанные вами системы, так что нельзя сказать, что он жульничает. Ваши тщательно сбалансированные вероятности внезапно становятся несбалансированными потому что игрок продолжает делать попытку за попыткой, пока не победит.

Сохранение в любом месте с сохранением «зерна»

Ладно, говорите вы, давайте всё исправим: что если мы сохраним инициирующее зерно в игровом файле? Тогда, когда вы попытаетесь сохраниться и перезайти, вы будете получать один и тот же результат. Во-первых, это не решает проблему, а лишь немного усложняет задачу игроку. Теперь перед решающим событием ему нужно просто произвести любое действие с непостоянным результатом (например, выпить зелье, восстанавливающее случайное количество очков здоровья, или выбрать другую последовательность действий в бою и т.п.) и повторять эту комбинацию действий, пока это не сработает. Во-вторых, вы только что создали ещё одну проблему: после того, как игрок сохраняется, он точно знает, что́ вражеский ИИ будет делать на каждом своём ходу, потому что как только вы начинаете загружать одно и то же инициирующее зерно для генерации случайных чисел, игра становится полностью детерминированной! Порой, если игрок заранее знает точную последовательность действий врага, это даёт ему большее преимущество, чем возможность «перебросить кости».

Точки сохранения

Хорошо, говорите вы, давайте сделаем так, чтобы игрок мог сохраняться только в определённые моменты игры, чтобы между сохранениями он должен был пройти значительные фрагменты игрового процесса. Теперь теоретически он может злоупотреблять системой, но в действительности ему приходится переделывать слишком многое, чтобы каждый раз полностью оптимизировать последнее действие. И тут мы сталкиваемся с проблемой противоположного типа игрока: хоть такой механизм и борется с жульничеством, честные игроки жалуются, что система сохранения не даёт им выйти из игры тогда, когда им хочется и держит в заложниках до следующей точки сохранения.

Быстрое сохранение

А давайте, думаете вы, попробуем систему сохранения, в которой игрок может сохраняться, когда угодно, но система стирает сохранение, как только игрок продолжает с этого места, так что он не может провернуть этот трюк с сохранением и перезаходом. И вроде работает… пока честный игрок не доходит до последнего босса – и тут ему внезапно рубят электричество, и наш честный игрок должен проходить всю игру заново с нуля. И он нанимает киллера убить вас в вашей собственной кровати, потому что вы это заслужили, коварный, злющий дизайнер.

Сохранение в любом месте ограниченное количество раз

Вы даёте игроку возможность сохраняться где угодно, но ограничиваете количество возможных сохранений. Оригинальная «Расхитительница гробниц» была так устроена. Некоторые эксплойты всё же возможны, но по крайней мере не каждый раз, когда надо бросить кости. Чем не компромисс?

Да, кстати, надеюсь, вы дали игроку карту и предупредили его, как часто можно сохраняться в среднем, и указали на карте ОГРОМНЫМИ СТРЕЛКАМИ места, где должны случится ключевые битвы, чтобы игроку не приходилось перепроходить большие участки карты просто потому, что он не знал заранее, где лучше всего сохраниться. Но тогда ваши игроки будут жаловаться, что игра слишком простая, потому что выдаёт всю информацию о том, где именно будет сложно.

Выбирайте из множества зол

Как я уже говорил, поиск идеальной системы сохранения – это одна из больших нерешённых проблем гейм-дизайна, просто с точки зрения того, какую именно систему выбрать, чтобы игра была интересной и приятной для игрока – и это только для детерминированных игр! Как только вы добавляете ещё и псевдослучайные числа, вы сразу же видите, как тернии на вашем пути тоже преумножились, так что вам, как дизайнеру, необходимо продумать это при работе над системой сохранения и загрузки… Потому что, если вы об этом не позаботитесь, это должен будет решить кто-то из, упаси боже, программистов, а его решение наверняка будет основано на том, какой код проще, а не на том, что лучше для игры и игрока.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: