О разработке рогаликов (Дэвид Плуг)

Материал из Клуб любителей рогаликов
Перейти к: навигация, поиск

О разработке рогаликов

Основано на дискуссиях и выступлении Дэвида Плуга на IRDC-2008 в Берлине.

Будучи разработчиком (но не программистом) рогаликов, я сфокусируюсь на некоторых положениях, к которым я пришёл на протяжении времени. Поскольку мой опыт основан только на NetHack и Crawl, я буду приводить примеры только из этих двух игр, и заранее извиняюсь за подобную узость взглядов. Я включил в данную статью выводы из дискуссий IRDC. Спасибо всем, кто принимал в них участие.

Я хочу заметить, что не следует принимать приводимое ниже за абсолютные цели или принципы. Они достаточно неплохо применимы к Crawl и, возможно, для некоторых игр именно нарушение этих принципов может быть верным решением. Тем не менее, я склонен верить, что при любой вашей позиции, поразмышлять над данными принципами будет полезно в любом случае (по крайней мере, вы утвердитесь в тех принципах, которые считаете важными для вашей собственной игры). И, разумеется, нет правил без исключения, даже внутри самого Crawl.

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

Основные цели разработчика:

— Сложная, но интересная игра, случайность игровых ситуаций, в которых опыт играет значительную роль.

— Значимость решений. (Нет очевидным решениям)

— Избежание долбёжки (grinding). (Нет скаммингу (scumming))

— Игровой процесс поддерживает удобный интерфейс и помощь начинающим игрокам


Вторичные цели разработчика:

— Прозрачность (играбельность без нужды в спойлерах)

— Внутренняя последовательность

— Реиграбельность (с использованием ветвей, рас, стилей игры и богов)

— Грамотное использование преждевременных (out of depth) монстров

Баланс — случайность, интерес к сложности и опыт

В Crawl, баланс, по существу, означает интерес к сложности и случайность игровых ситуаций, в которых опыт играет значительную роль. Все слова в этом предложение имеют смысл: игра основана на случайности, и таким образом, в ней возможно достаточно большое число различных вариаций. Может случиться так, что первые несколько уровей будут содержать так много полезных трофеев, что хороший игрок будет убеждён в своей победе. А может случиться и так, что затем последует дюжина бесплодных уровней, на которых не попадётся ни магазинов, ни ценных предметов. Оба случая весьма редки, но никто не пытается избежать подобных вероятностей. Игра поддерживает интерес к сложности в том смысле, что мы скорее согрешим в пользу монстров, то есть против игрока. Причина этого кроется в том, что если в игре будет легко победить, исчезнет мера сравнения лучших игроков. Более сложная игра позволяет этого избежать (по правде сказать, в текущему воплощению Crawl недостаёт сложности) и здесь на сцену выходит опыт. Разумеется, можно удариться и в другую крайность, чрезмерно взвинтив сложность. Хорошим критерием сложности мы считаем возможность пройти игру, не используя спойлеры.

Крестовый поход против очевидности

Говоря об играх, в целом под «очевидными решениями» (no-brainer) подразумевается ситуация, когда команда разработчиков вкладывает массу усилий в разработку «варианта», который, на деле, никому не интересен. И это ужасно сокращает возможности получить удовольствие. Примером очевидного решения — выбор оружия в Crawl. В большинстве случаев топор лучше всего, но это на самом деле не играет никакой роли, потому что к концу игры не так уж и важно чем бить. Типичный пример очевидного решения в NetHack — существование заклинания восстановления способностей (Restore Ability spell): его полостью замещает присутствие в игре рогов единорога (unicorn horns), не говоря о соответствующих зельях.

Противоположностью очевидному решению является компромисс. Если все варианты имеют какие-то недостатки, сбалансировать их становится проще. Если варианты А, B и C все решают одну проблему, но А — куда более простое решение, а B и C никогда не используются, то B и C можно посчитать лишними. Но всегда есть различные способы поднять цену варианта А, тем самым получая большую свободу для разработки.

Анти-долбёжка

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

Границы между тактическим ходом и скаммигом чётко не определены.

Например, беготня по коридорам может быть признана скучным игровым приёмом (и жестоко наказана), но в рогаликах с ней предпочитают не бороться. Или, скажем, использование лестниц, чтобы сбить с хвоста преследователей может быть считаться как разумным ходом, так и тоскливой глупостью. Как и «танцы вокруг колонн» (pillar dancing). В этом случае последнее слово остаётся за разработчиками. Считаете, что действие исключительно скучно и не доставляет веселья — пожалуйста, сделайте его затратным или практически неосуществимым.

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

Прозрачность

Хороши ли спойлеры или плохи во многом зависит от вкуса. Толпа пришедших к рогаликам из квестов или ролевых игр будет в восторге находить скрытую информацию.

Политика Crawl такова: открытие чего-нибудь спрятанного доставляет удовольствие. Один раз. И исчезает так и не успев появиться, если игрок чувствует необходимость использовать спойлеры прямо сейчас. Удовольствие от взаимодействия с меняющимися, непредсказуемыми и бросающими вызов игроку стратегическими и тактическими ситуациями, произрастающими из прозрачных правил — продолжает приходить снова и снова.

Конкретный пример: из последних версий Crawl удалили качество еды: трупы имеют цветовое кодирование в зависимости от степени съедобности. Менее радикальным решением было бы показывать такую информацию после того как игрок съест такой труп (аналогично «памяти о монстрах»). В Crawl это привело бы к осложнениям, поскольку свойства еды не всегда переключаются предсказуемо — отсюда более простое решение.

Реиграбельность

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

Для Crawl, я нашёл ещё два важных фактора: помимо выбора класса и расы, есть выбор бога. И (зачастую в зависимости от этого), есть несколько, существенно различающихся стилей игры. Можно медленно переключаться с одного стиля игры на другой, и, в некоторых играх это может быть наилучшим решением.


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

Заклинания, как угроза балансу

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

CRAWL: Ускорение (Haste) имеет очень сильное воздействие и может быть вызвано зельем, волшебной палочкой, божественной силой или заклинанием. Последние два представляют из себя проблему, хотя божественное ускорение хотя бы стоит благочестия.

CRAWL: В старых версиях наличествовало заклинание Могила Дорокло (Tomb of Doroklohe), которое превращала пол вокруг игрока в каменные стены. Вкупе с управляемой телепортацией (ещё одно заклинание), это означало возможность спасти шкуру за два хода. Имеющие склонность преувеличивать опасность игроки свободно использовали указанное сочетание и обнаружили, что игра при наличии заклинания Могилы, становится совершенно другой. После того, как мы дважды ослабляли заклинание, оно, в конечном итоге, было удалено из игры. Мы вновь ввели его в виде карты — такое же сильное, но имеющее ограничение по числу применений.

CRAWL: Аналогично Могиле, заклинание Изгнания (Banishment), а равно и иные способы быть изгнанным, оказались средствами спасения, путём немедленного бегства в Бездну (Abyss). И если на ранних и средних стадиях игры это место представляет собой опасность, то в дальнейшем является безопасным укрытием (что само по себе является недочётом). Было замечено, что игроки снова и снова штурмуют Gehenna:7, «изгоняя» себя при малейших признаках опасности. Возможность «изгнать» самого себя была удалена без малейших попыток как-то ослабить её.

NETHACK: Здесь, как мне кажется, можно отметить возможность превращения очков маны (MP) в очки здоровья (HP). В то время как зелья Полного Исцеления (Full Healing) являются редким ресурсом (если не заниматься фермерством (farming)), то заклинания СверхЛечения (ExtraHealing) отнюдь не редки. Вкупе со способами регенерации маны, дисбаланс очевиден.

Чем меньше — тем лучше

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

CRAWL: Игра кичится огромным числом видов, но они страдают от недостатка различий. Разумеется, свойства рознятся, но этого может быть недостаточно для того, чтобы создать существенно иное ощущение от игры. Поэтому, Горным Гномам и Эльфам (Hill Dwarf and Elf) пришлось удалиться. (Разработчик Steamband сделал то же самое с классами).

NETHACK: Недостаточные различия между классами в NetHack служат частым поводом для стенаний. (По этому поводу есть даже подсказка на официальной странице). В то время, как все классы отличаются на нескольких ранних уровнях а также, существенно и очевидно, в квестах — к середине игры (как минимум по достижению Замка (Castle) за исключением игр с вызовом (challenge)) большая часть персонажей выглядит похоже. Примечательное исключение составляют монахи (Monk).

CRAWL: Большая часть эффектов, вызывающих амнезию (забывание части карты уровня) была удалена, а именно: заклинания, ловушки и мутации. К использованию внеигровых средств (в принципе, игрок мог нарисовать карту от руки, или сделать скриншот), порочных по своей сути, в этом случае добавлялось раздражение от необходимости заново исследовать тот же уровень.

Берегитесь гонки вооружений!

Заголовок апеллирует к следующему феномену: в силу различных причин (новые модные штучки, или поиск баланса) нововведения часто оказываются сильнее своих предшественников. Например, оружие может сначала показаться слабым, по сравнению с другими видами. Нет нужды говорить, что необдуманное добавление нового оружия и других ресурсов может облегчить игру. Чтобы с этим справиться, разработчик добавляет более сильных монстров, для которых, в свою очередь нужно новое оружие. Прокрутите этот цикл несколько раз, и те предметы и монстры, с которых вы начинали, поблекнут на фоне нововведений. Первая серьёзная проблема заключается в том, что попадание в подобную ловушку может сделать возможность выбора бессмысленной. Например, до того, как вы добавили оружие C, игрок должен был выбирать между A и B — каждое со своими сильными и слабыми сторонами. После — C очевидный лучший выбор. Другая проблема, разумеется, заключается в том, что вы будете ходить по кругу. Самый знаменитый пример подобной (уж не намеренной ли?) гонки — побочный продукт NetHack, под названием SLASH’EM.

Одна причина, почему нововведения чаще всего трафят игрокам, заключается в том, что разработчики слишком уж перенимают их образ мышления. С другой стороны, ответная реакция игроков чаще всего сфокусирована на персонаже, причём, как правило, речь идёт именно о его «недостатках». Я бы хотел заметить, что коммерческие игры часто нуждаются в подобной гонке в качестве экономического обоснования. Это особенно распространено в коллекционных карточных игра, но применимо и к многим играм с продолжениями и комплектами развития (expansion sets).

CRAWL: Подобно введению новых предметов, новые уровни и ветви также дают отмашку гонке: они дают игроку больше очков опыта (из-за большего количества монстров, которых можно убить) и больше трофеев. С другой стороны, игроки и разработчики любят новые уровни. В Crawl мы добавим новую ветку «Мелководье» (the Shoals), но так, чтобы избежать обсуждаемого здесь порока: в каждой конкретной игре будет доступна либо ветка А («Болото» (Swamp), либо ветка В («Мелководье»). В этом случае ожидаемое количество опыта и трофеев сохранится приблизительно таким же (по крайней мере, после длительного тестирования и микро-балансировки).

Настройкам — бой!

Многие свободно распространяемые программы, похоже, страдают от засилия настроек. Обычно, новые возможности являются показателем прогресса. Однако, чтобы не смущать старых игроков и/или дать максимальную возможность выбора, добавляется настройка, позволяющая выключать или подстраивать новшество. Я слышал три объяснения этому феномену. Во-первых, добавление новых возможностей таким способом, делает код более элегантным и гибким (этакая добродетель в себе). Во-вторых, такой подход позволяет улучшить программу, избегая лишних споров и мнений о намерениях разработчиков или самой разработке. В-третьих, настройки позволяют уменьшить страх того, что дополнение будет признано плохим, или не очень хорошо принято публикой — и в случае неудачи обеспечивает надёжный путь к отступлению (или игнорированию новых элементов)

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

CRAWL: Разумеется, многие настройки просто необходимы. Например выбор набора символов или переназначение цветов. Но, чтобы проиллюстрировать излишние настройки в Crawl, возьмём автоподбор предметов. Это настройки автоподбора (что именно подбирать), исключения автоподбора, автоподбор по умолчанию, автоподбор исключающий перегрузку (burden), подбор брошенных предметов, подбор уроненных предметов и автоподбор кусков (chunks). Из перечисленного автоподбор по умолчаниювообще не нужен — есть внутриигровой переключатель с подобной функцией. Последние четыре должны быть определены как настройки по умолчанию или, если это кажется черезчур поспешным, также перенесены в игровой интерфейс (особенно это может касаться автоподбора исключающего перегрузку).

Кроме того, скрупулёзный анализ настроек — нудное занятие, не производящее такого же ощущения продуктивности, как «настоящее» программирование или разработка. И поэтому, настройки продолжают прибывать.

Прозрачность?

Общение с другими разработчиками показало, что следует стремиться к гибкости в общении между игроками и разработчиками. Для нового рогалика, отзывы игроков не играют большой роли. Полезными можно признать, разве что, отчёты об ошибках и пожелания по устройству интерфейса. Но большая часть идей, касающихся игрового процесса, сводится к (подсознательному) желанию игроков заставить разработчика воплотить в коде их игры. Таким образом, предложения по введению новых особенностей должны восприниматься с большой степенью скептицизма, пока игра не обретёт свой собственный и неповторимый облик. С другой стороны, в какой-то момент может быть полезным открыть исходные коды игры. Многие игроки выступят в роли программистов, исправят ошибки или напишут для них заплатки. Опять же, не следует делать это слишком рано. В любом случае, открытые исходники являются хорошим средством расширения команды разработчиков, или передачи игры другому человеку (вместо того, чтобы полностью забросить проект).

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

Вне зависимости от того, насколько полезными будут отзывы игроков, они не снимают ответственности с разработчика. Даже хорошая идея может не вписаться в планируемый облик игры. В таком случае, разработчик должен оставить за собой право отбросить такую идею без угрызений совести. С другой стороны, полностью игнорировать мнение игроков будет ужасной ошибкой: многие игроки обладают колоссальным числом идей, среди которых стоит поискать свои жемчужины. Для Crawl мы получили патчи на множество элементов игры (вампиров, список монстров и т.д.). Идеи игроков касаются буквально всего. И если даже кажется, что это добавит вам работы (и сортировка отзывов, и обширная переписка по разработке, и отладка кода патчей), оно того стоит. Игра будет лучше, чем она была бы без этого вклада.

Из чего же сделаны игры?

Существует старый спор о том, с чего лучше создавать новый рогалик: с движка или с играбельной версии, пусть и ограниченной. Многим разработчикам, кажется, больше по вкусу второй вариант. Здесь я хочу упомянуть, что разработчику полезно знать, о чём его игра, хотя бы в общих чертах. Не столько о теме (которая не важна в рогаликах, и может быть изменена в любой момент), сколько о игровом процессе и отличиях от других рогаликов. Я думаю, что более полезно сказать «Моя игра избежит недостатков x, y, z классического рогалика [foo] следующим образом», чем «Я напишу второй [foo]». Лучше может быть только собственная уникальная идея или видение. Многие семидневные рогалики стартовали как эксперименты по уходу с торных путей.

Вот определение Crawl: игра стремится быть тактической ползалкой по подземельям в фэнтезийном антураже. Кроме того, стратегия должна быть интересной и мы пытаемся отточить геймплей и интерфейс. Однако, не следует ожидать сюжета или квестов. Заметьте, насколько это общие фразы. Но этого достаточно, чтобы обозначить место среди рогаликов.

Игровой процесс > Интерфейс > Реализм

Этот порядок следует принимать как данность, но позвольте мне сделать одно интересное дополнение. Во время попыток улучшить интерфейс, очень часто изменяется и игровой процесс, нередко, упрощая отдельные моменты.

Вот несколько примеров из Crawl: в игре раньше были коричневые лестницы, которых никто толком не понимал. Когда мы разобрались с путаницей в интерфейсе, новые коричневые лестницы (которые теперь называются «люками для побега» (escape hatches)) стали понятны. И теперь мы начинаем замечать, что используют их редко (потому что нормальные лестницы гораздо лучше). Но тогда в чём их ценность для игрового процесса? А, например, в том, что хотя люки могут исчезнуть после использования, никто не погонится за вами через них.

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

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

Случайные заметки

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

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


Источник: Утерян
Перевод: Максим Кич