Хабрахабр

[Перевод] Как победить бездушный рандом в roguelike-играх

Не всегда можно подстроиться под неожиданные изменения, особенно когда они созданы процедурной генерацией. Умирая в игре 30-й раз, невольно задумываешься: все ли продумал геймдизайнер и не напортачил ли он с балансом?

Но некоторые выглядят действительно стоящими — кажется, что разработчики смогли обойти все недостатки жанра. Дальше материал, в котором разбирается роль случайностей в roguelike-играх и жанр в целом — чем чреваты непродуманные системы рандома и что, по мнению автора, не так с «рогаликами».
Обычно я не играю в roguelike или rogue-lite. И каждый раз я жалею, что запустил игру.

Что такое roguelike?


Rogue

Этот фэнтезийный тайтл во многом известен благодаря использованию кодировки ASCII для воспроизведения графики и рандомной генерации карты. Rogue — компьютерная игра 1980 года. Игра оказалась очень успешной и породила множество roguelike-подражателей, например: Angband и Nethack.

Сохранения добавили позже, так как игра становилась все длиннее и сложнее. В ранних версиях Rogue нельзя было сохраняться. Они позволили проходить игру за несколько подходов, перезапускать ее с момента последнего сохранения после смерти или если рандом делал что-то, что не хотелось бы.

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

permadeath — перманентная смерть). Смерть стала перманентным исходом и получила название «пермадес» (от англ. В 1993 году Chunsoft выпустила Fushigi No Dungeon для приставки Super Famicom, а в 1995 году вышел еще более популярный сиквел — Shiren the Wanderer. Режим «одной смерти» стал ключевой механикой roguelike-игр.

В них появились красивая 16-битная графика и анимированные персонажи. Эти игры не только отдавали дань предшественникам жанра roguelike, но и применяли интересные решения: что развивать, а что оставить в прошлом. При этом сохранились случайная генерация уровней, пошаговые системы перемещения и атаки, механика голода, рандомные значения атаки и «пермадес», характерные для «рогаликов» 80-х годов.

А в 2008 году его выпустили в США под Nintendo DS. Благодаря графике, звуку и необычным запутанным картам, Shiren стал культовым тайтлом в Японии и среди американских фанатов японских игр.

Возрождение жанра roguelike

Сейчас на рынке сотни «рогаликов», большинство из которых — инди-тайтлы, громко кричащие о том, что они именно roguelike. В канонических проектах присутствуют все отличительные черты жанра: рандомные уровни, рандомные значения атаки, пошаговое перемещение, голод и, конечно, «пермадес». Некоторые тайтлы относят к жанру rogue-lite, потому что они заимствуют не все элементы, характерные для настоящих «рогаликов». Обычно это — рандомные уровни и «пермадес», но иногда и некоторые другие.

Есть две основные причины: Откуда такая популярность?

  1. Процедурная генерация уровней — благословение для начинающих девелоперов. Если вы инди-разработчик и делаете игру с определенными уровнями, то вам придется вручную собрать как минимум 20 таких. Но можно создать систему, которая их будет генерировать бесконечно много. То есть за Х вложений вы получите 20 единиц прибыли, а за X+Y вложений — бесконечную прибыль. Чему равен Y и насколько эти процедурно сгенерированные уровни сбалансированы и хороши по сравнению с собранными вручную — другой вопрос. Мы вернемся к нему позже.
  2. У жанра roguelike есть определенный престиж. Все потому, что не-геймдизайнеры путают ощущение «это то, что я ненавижу в жанре roguelike» с «придется потрудиться, но все справедливо». Второе и правда случается: в играх типа Dark Souls или в PvP-режимах против очень скилловых игроков.

Так в чем проблема?

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

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

Но «пермадес» также означает практически полное обесценивание полученных знаний, так как игрок начинает все с нуля и уровни генерируются заново. Когда в Rogue появилась возможность сохраняться, разработчики быстро дополнили ее перманентной смертью, чтобы игроки не пытались перехитрить систему, получая несправедливое преимущество. Это не так плохо и может быть даже весело, если реализовать все грамотно, но во многих случаях комбинация перманентной смерти с бесконечной рандомностью «рогаликов» несправедливо ставит игрока в невыгодное положение.

Немного о лабиринтах

Это лабиринт. Потратьте пару секунд и пройдите его.

Сколько времени вы потратили на то, чтобы понять, что его невозможно пройти? Получилось?

В третьем вам нужно взять ключ и открыть дверь, чтобы выбраться. Вот еще три лабиринта.

Но придется немного подумать, чтобы понять, что третий нельзя пройти, если начинать сверху, и можно, если начинать снизу. Тут сразу видно, что первый лабиринт можно пройти, а второй нет.

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

Даже если вы изучите сотню примеров и будете с первого взгляда определять проходимость лабиринта, то нужно лишь ограничить поле зрения, чтобы помучать вас. Чем больше лабиринт и чем сложнее правила, тем дольше вы будете его проходить или оценивать, возможно ли это.

Теперь придется исследовать как минимум часть лабиринта.

Получится пройти его? Теперь придется исследовать еще больше. Может, вы просто не нашли путь с оптимальным количеством яблок?

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

Слишком много направлений

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

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

Он выглядел круто, и я захотел поддержать инди-разработчика. Лабиринт с яблоками возник благодаря последнему roguelike-тайтлу, в который я пытался играть. Если хоть один из них доходит до нуля, вы умираете и начинаете с чистого листа в новом сгенерированном мире. Там была привычная процедурная генерация уровней и перманентная смерть, а еще целых четыре параметра здоровья: урон, голод, жажда и температура. Вы перемещаетесь из одной локации в другую линейными путями, при этом порядок этих локаций и их наполнение определяются рандомом. В отличие от большинства «рогаликов» мир в этой игре линейный. Затем я умер от голода, потому что у меня на пути не было еды. Я умер несколько раз, но думал, что мне просто нужно привыкнуть к системе. Неважно насколько умело я играл, я бы все равно умер из-за отсутствия пищи.

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

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

Когда Shiren the Wanderer стала популярной, я тоже немного поиграл в нее. Конечно, верно и обратное. Испытывая голод, я сохранялся, открывал сундук, и если в нем не оказывалось еды, перезагружался, пока не находил ее. Устав проигрывать рандому, я использовал эмулятор сохранений для сейвскамминга и обошел рандом. Я делал так до самого конца игры, чем были очень недовольны мои друзья. Когда не получалось нанести урон, я перезагружался, пока все не складывалось, как нужно. Мой способ «полагаться на удачу» имел такое же право на жизнь, как их, только результат всегда был в мою пользу. Они тратили часы, полагаясь на удачу, и проигрывали, думая, что повышают свой скилл в игре.

Сбалансировать все случайности непросто. В «рогаликах» не просто один-два рандомных элемента: сама суть жанра предполагает десяток таких параметров. Из-за всех этих слоев неопределенности сложно заметить, когда что-нибудь пошло не так. При этом некоторые разработчики не понимают, что вообще нужно что-то уравновешивать. Особенно, если их несколько. Непонятно, правильно ли работает система рандома.

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

Пройти непроходимое

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

Перманентная смерть «маст дай»

Я немного соврал вам. «Пермадес» не означает полную потерю прогресса. Так было в Rogue и первых играх этого жанра. Но, начиная с Shiren (или раньше) в «рогаликах» появились небольшие бонусы, смягчающие последствия перманентной смерти. В Shiren вы встречаете персонажей, которых можно отправить в первый город — даже после вашей смерти, их можно найти в таверне. Они дают небольшие плюшки, которые помогают проходить игру. Spelunky по-своему компенсирует перманентную смерть — в ней есть Туннельщик (the Tunnel Man). Он запрашивает огромную сумму, которую вы можете оплатить по частям за несколько проходов игры. Получив все деньги, он построит туннель, который позволяет пропустить несколько уровней при последующих прохождениях игры.

Эти бонусы не убирают недостатки перманентной смерти, а скорее воспринимаются, как признание того, что она — плохое решение, и извинение за использование этой механики.

Эта система применяется в компьютерных играх с 90-х годов, а в консольных — с появления Xbox 360 и PS3. Противоположность этому — быстрое сохранение (квиксейв), то есть возможность моментально сохраняться в любой момент и перезапускаться, если дела пошли плохо. Встроенные жесткие диски позволили сохраняться быстро и без проблем.

Возможность засейвиться в любой момент существенно снижает риск, и игра становится менее захватывающей. У квиксейва есть свои недостатки. Он означает, что игрок сохраняется на каждом шагу и откатывается к последнему быстрому сохранению. Отсюда и пошел насмешливый термин «сейвскамминг», который я использовал ранее. Сейвскам особенно негативно сказывается на прохождении игр, в которых важен элемент случайности. Причем не только в случае смерти, а в любой ситуации, когда игра идет не так, как ему бы хотелось. Так я и делал, когда использовал эмулятор сохранений в Shiren. Игрок может сохраниться до того, как будет определен рандомный элемент, а затем перезагружаться, пока не получит то, что хочет. По сравнению с сейвскамом перманентная смерть казалась более приемлемым вариантом.

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

Первые — ручные, когда нужно принимать осознанное решение, чтобы сохраниться. Точки сохранения бываю двух видов. Вторые — автоматические, в которых игра сохраняется самостоятельно после выполнения определенных условий. Обычно в этих местах есть специальный ориентир. Автоматические точки сохранения часто идут в паре с быстрыми сохранениями, чтобы игрок не сомневался, что он может выйти из игры и вернуться в любой момент, не теряя прогресс. Обычно это связано с каким-то событием сюжета или квеста.


В Chulip — дерзкой игре для PS2 — можно сохраняться вручную с помощью туалета


Salt & Sanctuary вежливо напоминает, что не стоит выключать компьютер, пока идет автосохранение

Это так называемые Souls Death, получившие популярность благодаря серии Dark Souls. За последние десять лет появилась золотая середина между перманентной смертью и точками сохранения. При этом вся валюта остается в той точке, где вы умерли — можно вернуться и отыскать ее. В этих играх есть обычные чекпоинты, после смерти вы возвращаетесь к последней точке, сохраняя прогресс и снаряжение, включая то, что вы обнаружили после сохранения. Но если вы умрете раньше, то они будут утеряны навсегда, так как смерть создает новую точку сохранения накопленных средств, которые вы можете найти после воскрешения.

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

Усмирите свой рандом

На картинке выше слева направо «пермадес» дополняется более частыми сохранениями в roguelike-играх. У пользователя появляется все больше возможностей изучить неистовый рандом, ключевой элемент этого жанра. Занавес приподнимается, и становится очевидно, что для функционирования рандома необходима перманентная смерть. Без нее игроки могут в той или иной степени использовать сейвскам: к этой тактике можно прибегать, даже если чекпоинты расположены далеко друг от друга. Можно крутить рандом так, как хочется, а не бороться с ним и ошибочно воспринимать его как справедливый челлендж.

На ней завязаны все остальные механики «рогаликов». Именно поэтому перманентная смерть — самый важный элемент roguelike-жанра. Если в игре есть все кроме перманентной смерти, то ее как правило не относят к roguelike.

Иначе это просто «процедурное подземелье»
Все roguelike-игры созданы исключительно во французском регионе Пермадес.

Первое, что упраздняется — рандомный исход сражений. Даже не убирая перманентную смерть, можно сделать «рогалик» проходимым, но придется снизить объем случайностей. Это значительно веселее, а игра становится более честной. Вместо того, чтобы полагаться на удачу, игрокам нужно развивать скиллы. Большинство современных roguelike-тайтлов уже применили этот подход.

Есть три варианта: Дальше все становится намного сложнее и требует значительных усилий без видимого вознаграждения.

  1. Сделать так, чтобы система рандома анализировала сама себя. Тогда игрок не окажется в тупиковой ситуации из-за случайности.
  2. Сделать так, чтобы любой рандомный исход был благоприятным. То есть даже если игрок получит не то, что хотел, и ему придется изменить свою стратегию, исход все равно не будет негативным.
  3. Сделать так, чтобы рандом был менее определяющим. Тогда игрок сможет компенсировать любой негативный исход своим мастерством.

Вариант 1: самоанализ рандома

Сложно найти подходящие примеры, так как такие процессы происходят за кулисами. Такой подход точно использовался в roguelike и играх других жанров с элементами рандома. Например, мы внедрили сложную систему анализа, чтобы полуслучайное распределение планет было «честным» в Paper Galaxy. Но без просмотра кода игры сложно определить наверняка, использовалась ли подобная схема.

Система с самоанализом смогла бы обеспечить наличие еды в первых X локациях, а затем еда появлялась бы в каждой Y±Z локации. Гипотетическим примером могло бы послужить улучшение игры, в которой я не нашел еду и умер от голода. Далее логичным дизайнерским решением было бы создать ситуации, в которых игрок знает, что скоро найдет источник пищи, но он не знает, когда именно это произойдет. Тогда игрок не умер бы с голода по воле случая. Придется выбирать: играть безопасно и запасать еду или рисковать и взять с собой меньше еды, зато больше вещей, которые позволяют крафтить редкие припасы.

Вариант 2: всегда положительный исход

Примерами могут послужить процедурные подземелья Let It Die и Sundered. В Let It Die подземелье разделено на зоны. В каждой из них есть несколько помещений с несколькими выходами. Их расположение случайно, и выходы рандомным образом ведут в другие помещения, формируя определенную область.

Круглая область ближе к середине — это широкая вертикальная шахта с одним входом внизу и двумя наверху. Вот одна из возможных конфигураций помещений в зоне Tagahara в Let It Die. Такой элемент карты создает различные навигационные челленджи (а также ситуации, в которых нужно отбиваться от врагов), в зависимости от того, каким входом вы воспользуетесь.

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

Светло-серые, наоборот — сгенерированные случайным образом. На этой карте из Sundered области с темными виньетками — статичные, они всегда одинаковые. Но чтобы найти оптимальный путь, придется исследовать карту. Эти помещения заполняют всё пространство, все двери в них можно открыть.

Разные конфигурации необходимо проходить по-своему, но «нечестных» карт в этих тайтлах нет. Независимо от расположения помещений — проход есть всегда.

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

Вариант 3: уменьшить влияние рандома

Этот вариант позволяет гарантировать, что неудача (отдельное случайное событие или их цепочка) не приведет к гибели персонажа, не оставив игроку шанса преодолеть эти события или подстроиться под них. Хотя Fortnite — мультиплеер с короткими игровыми сессиями, сундуки в нем — отличный пример такого подхода. В каждом из них находится случайный набор оружия и прочих предметов. Хорошие рандомные предметы дают пользователю преимущество, но скилловый игрок может победить, даже если в каждом открытом сундуке найдет только самые худшие предметы.

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

Находится случайно и позволяет восстанавливать здоровье персонажа. Примером может стать наклейка Oriental Medicine в Let It Die. С этой наклейкой можно не думать про отхил — вы неуязвимы первую треть игры, пока не доберетесь до врагов, которые наносят урон быстрее, чем вы восстанавливаете здоровье. Без нее нужно постоянно следить за уровнем здоровья и иметь в запасе еду на случай восстановления.

Выводы для разработчиков

Если вы создаете видеоигру, неважно «рогалик» или нет, настольную игру, настольную ролевую игру или что-либо еще, пробуйте играть с настройками.

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

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

Игрок миллиардного уровня, который легко проходит все препятствия, разительно отличается от игрока, который случайно получил кольцо невидимости и тоже легко проходит все препятствия. Заметьте, я говорю именно про рандомные элементы, а не уровень и прогресс игрока. Первый приложил много усилий, а второму просто повезло.

Выводы для игроков

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть