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




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

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

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

Что такое roguelike?



Rogue

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

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

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

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



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

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

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


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



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

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

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


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

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

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

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


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



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

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



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

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



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



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



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

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

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


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

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

Лабиринт с яблоками возник благодаря последнему 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. Находится случайно и позволяет восстанавливать здоровье персонажа. Без нее нужно постоянно следить за уровнем здоровья и иметь в запасе еду на случай восстановления. С этой наклейкой можно не думать про отхил — вы неуязвимы первую треть игры, пока не доберетесь до врагов, которые наносят урон быстрее, чем вы восстанавливаете здоровье.



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


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

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

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

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

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


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

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




К сожалению, не доступен сервер mySQL