[Перевод] Дизайн уровней и геймплея roguelike на примере Cogmind

image


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

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

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

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


Ещё до начала работы над каждой картой необходимо придумать одну или несколько концепций, на которых будет строиться карта, и в данном случае у нас было несколько целей:

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


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

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

Этот процесс привёл к написанию примерно 2 600 слов черновых заметок по этой теме, которые как и все мои заметки упорядочены в виде вложенных списков в файле TXT.

a5f75a7fed3288b7f01ee1c35bdc9b4d.png


Все черновые заметки о новой карте в моём текстовом редакторе.

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

Если описать идею вкратце, то новая игровая мини-фракция под названием «Exiles» из другого социума роботов имеет собственную лабораторию, которая даёт игроку новую сенсорную способность (под названием FarCom) и доступ к прототипам оборудования из пула возможных предметов. С точки зрения сюжета эта фракция становится самым первым знакомством игрока с лором мира. Поэтому хорошо, что я вернулся к добавлению этой карты после завершения остальной части мира, ведь она может должным образом сочетаться с моим знанием о том, как должна проходиться игра с точки зрения сюжета и геймплея. Если бы я сделал наоборот и попытался создать эту карту с самого начала, то мне, скорее всего, пришлось бы многократно обновлять или менять её контент в процессе построения остального мира. (Мир Cogmind был почти полностью построен от начала до конца, без прыжков вперёд-назад.) Я не любитель вырезания старого контента и внесения в него серьёзных изменений; стараюсь сделать всё правильно с первого раза.

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

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


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

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

c3ce1d07599d0b4968489234124df4bb.png


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

Дизайн-документы карт разбивают их содержимое на несколько стандартных разделов, в которых представлено как минимум следующее:

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


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

Целиком дизайн-документ карты Exiles можно прочитать здесь (тут тоже стоит отключить перенос строк). Если вы прочитали по ссылке выше черновые заметки. то можете увидеть, как они эволюционировали в настоящий дизайн-документ, который увеличился по размеру в три раза (в нём около 7 500 слов). Некоторые незначительные детали этого документа могут отличаться от готовой реализации, потому что я иногда вношу изменения в последний момент, и они не всегда отражены в заметках;, но по большей части они точны.

Высокоуровневый дизайн


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

(*Сейчас в Cogmind есть одна побочная карта, которая, к сожалению, соответствует этому определению: Recycling. Это довольно простая и маленькая карта, имеющая собственные уникальные механики, но её преимущества не так привлекательны для игроков, как мне виделось это изначально, когда я создавал её на ранних этапах Cogmind Alpha. В то время я только начинал добавлять побочные карты и с тех пор многому научился, в том числе от постепенно созревшего сообщества игры. У меня есть планы по её улучшению, но это не в приоритете до версии 1.0, потому что она находится довольно далеко от основного пути.)

Я не хотел тратить своё время и время игроков, поэтому карта Exiles в частности имеет последствия для долговременной стратегии, и чтобы правильно встроить её в общий игровой процесс, нужно было учесть различные потребности, цели и хитрости игроков.

Как и в почти всех дополнительных ответвляющихся картах мира Cogmind, Exiles предлагает свои компромиссы, упрощая некоторые игровые области, в же время в других повышая уровень сложности.

8ff4cbf29c1faef678e1e8ec5a93e331.png


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

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

По задумке, стандартные преимущества, даваемые картой Exiles (один бесплатный прототип + FarCom) особенно примечательны в ближней перспективе, но имеют недостатки в дальней, поэтому становятся отличным выбором для новых или неопытных игроков. Я не хочу сказать, что они не могут быть полезными и для опытных игроков — один из пользователей уже забрался очень далеко благодаря использованию FarCom, который по сути не позволяет использовать ответвления Research на поздних этапах игры, даже несмотря на то, что в них игрок обычно получает доступ к самым эффективным инструментам, позволяющим справляться с обширными сложностями игры.

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

Ну ладно, с планированием покончено, пока приниматься за реализацию.


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

Но на этом этапе я ещё даже не добавляю их на новую карту — она пока не существует.

Так как для такого огромного объёма контента нужно много труда, добавление каждого нового элемента на карту часто требует мышления на нескольких уровнях (локальном, масштаба карты, масштаба целой игры), что намного менее эффективно, чем фокусирование на как можно меньшем количестве аспектов без необходимости постоянного возврата назад. Эффективная работа не только быстрее, но и улучает результаты.

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

Лично я предпочитаю начинать с фрагментов, требующих наибольшего времени на реализацию. Самое важное в списке таких элементов то, что мне кажется любопытным или интересным, но в конце концов «необязательным»: редкие особые события, предметы и т.д.

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

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

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

Предметы


Предметы — минимальные строительные блоки карты, поэтому мы начнём с них.

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

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

be5ca343e2b2b425fb12b5a5905ce99c.png


Арт некоторых прототипов EX-технологий из Beta 8. Каждый из новых основных NPC, запланированных мной для новой карты, «подписал» свой прототип собственным именем.

Сразу за артом я взялся за лор. С каждым из новых предметов связан текст лора. Увидев, что в некоторых случаях он позволяет определить или усовершенствовать характеристики предмета, я захотел обеспечить точность и целостность всех текстов. Поэтому все эти фрагменты были написаны за раз, и это важно: подразумевается, что игрок будет обнаруживать и читать их в определённом порядке.

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

Оружие «Latent Energy Streamer» (LES) добавляет совершенно новый ресурс под названием «скрытая энергия» (latent energy), который потенциально можно использовать в дальнейшем шире, но пока он добавлен только для единственного оружия, хоть и на его реализацию ушло несколько дней.

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

db3a6aff24dbd7c7a7cac9414943c13b.gif


Активация LES, которая также обнаруживает находящуюся поблизости скрытую энергию.

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

079aab0dc478e34d43ae2f9acc6f1da5.gif


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

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

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

NPC


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

На карте Exiles есть четыре новых важных NPC, каждый из которых имеет набор данных, определяющий их свойства. И это довольно большой набор!

9de48b4d7278187f7a867aaed121fc3c.png


Вот пример данных одного из новых NPC по имени 8R-AWN. (Я пару разбил строку данных, чтобы вам не пришлось слишком долго её прокручивать.)

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

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

a005b54defff5e0daa56ed2b369eaa5f.gif


FarCom в действии: он демонстрирует тусклый круг, в котором обнаружены враждебные боты 0b10. (Круг слабо пульсирует, но в gif это плохо заметно.)

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

94f6d239ed52e40277542bea9bac7b00.png


Сравнение стандартных сенсоров и FarCom. Зелёные ячейки — положительные свойства, красные — отрицательные.

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

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

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

В целом я очень доволен тем, как всё получилось.


Настало время создавать карту! Ну, или типа того…

Я всегда начинаю с пустых листов бумаги, потому что мне это кажется наиболее естественным, быстрым и свободным способом работы.

944293f4c8bdaf2dc4b21540ea71a86d.png


Планирование общей схемы, контента и связи с миром карты Exiles.

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

Карта Exiles доступна или с глубины -10 (по сути, самый нижний уровень!), или с -9; кстати, на той же глубине находится Mines. Однако если они появляются только на одной глубине, то вход спрятан внутри Mines; поэтому я добавил специальный индикатор, позволяющий наблюдательным игрокам узнать, находятся ли они на одной глубине с Exiles. Я не хотел, чтобы игроки зря тратили своё время, обходя всю глубину Mines в поисках входа, которого там может и не быть, поэтому добавил так называемые «ощущения уровня» — механику, использованную во множетве классических roguelike, например, в NetHack, ADOM и Angband, в которых при попадании на новую карту вы получаете сообщение лога, отражающее особый аспект этой карты.

3607ad68c1ac580bdb4eb8558f758af9.png


Первый пример использования в Cogmind «ощущения уровня»; добавленного для экономии времени игроков при поиске Exiles.

Также игроки могут читать в терминалах Exiles лор, который объясняет сканирование.

Что касается пути назад после посещения Exiles, то я подумал, что возможно стоит отправить игрока обратно на основной путь через Lower Caves, но это было тогда, когда я ещё пытался ограничить дизайн уже имеющимися вариантами выбора. Но в результате я решил добавить новую глубину Mines на -8, которую можно достичь, только возвращаясь из Exiles. Это и улучшает геймплей (Mines — это самые маленькие и простые карты, подходящие для слабых игроков), и более логично (не должно казаться, что Exiles слишком близко к Complex, поэтом нельзя напрямую возвращаться к нему с этой карты).

11a8fded7cb2919ce689052df66f8ac9.png


Внутриигровая карта мира, показывающая маршрут игрока, посетившего Exiles и возвращающегося в -8/Materials через -8/Mines. Эта глубина Mines обычно недоступна напрямую в обратном направлении из -8/Materials, чтобы избежать добавления на эту карту ненужных выходов.

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

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

*Я левша, поэтому обычно располагаю бумагу горизонтально и заполняю страницы заметками справа налево.

Проработав соединения, надо переходить к созданию более подробного эскиза схемы карты!

524df247d6490d2a9de6fb39d2664717.png


Первая версия справочного эскиза для схемы карты Exiles.

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

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

Завершив с диалогами, я сделал ещё один проход по эскизу карты, создав вторую, более конкретную итерацию, соответствующую диалогам:

3a9a0f8295ddaa71a897cbb496405840.png


Вторая итерация по справочному эскизу схемы карты Exiles.

Игрок входит на карту из правого нижнего угла, видит ещё один коридор, ведущий к выходу, но рядом нет врагов, поэтому можно безопасно продолжить исследования. Кроме того, в туннеле перед игроком есть несколько «поддельных» источников питания — эта механика оказалась возможна только благодаря технологиям Exiles, а потому будет новой для игрока. Любопытные игроки могут захотеть изучить их, а потом продолжить исследование карты, впервые встретив в коридоре 8R-AWN с приветственной речью/введением. Затем игроки перемещаются в центральную область и находят второго важного NPC, EX-HEX, который излагает ещё немного лора и предлагает найти EX-BIN для помощи с проектом. После этого игрок может двинуться куда угодно: или узнать больше об этом месте от NPC-тестировщиков прототипов в южной области, или направиться на север, чтобы получить основные бонусы этой карты — FarCom и прототипы. Оба направления вполне подходят для первого прохождения. Затем игрок может выйти с карты, повернув обратно к восточной стороне, или, вероятнее всего, пройдя через задний выход.

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

Затем пришла пора задействовать мой следующий инструмент: REXPaint. Я превратил в REXPaint справочный эскиз в общую схему, измерив расстояния между ячейками, чтобы всё помещалось правильно, не было слишком сжатым или слишком просторным, и чтобы область видимости среднестатистического игрока из любой точки открывала нужный объём контента.

e6873a1af18ec74d845d12f5eddcd344.png


Карта Exiles обретает форму в REXPaint. Пока это всего лишь единственный слой, содержащий общую схему, вход и выходы, но без объектов и других деталей. Также на нём отсутствуют отдельные подробности схемы, которые могут возникнуть/стать необходимыми после добавления объектов.

И после сохранения этого файла его уже можно добавлять в игру!

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


Теперь настало время строить сам игровой процесс, начав… за пределами карты.

Это дружественная к новичкам карта, расположенная вне основного пути, поэтому я хотел добавить несколько способов подтолкнуть новых игроков в этом направлении. Поэтому прежде чем начать работу над самой картой, я снова решил разработать процесс прохождения, начав с того, как игроки вероятнее всего впервые её найдут. Робот 8R-AWN, являющийся исполнителем для «мозгов» Exiles, первый, с кем встречается игрок при посещении их лаборатории/пещеры, иногда выполняет для «мозгов» задания, и игрок может столкнуться с ним на других картах, когда тот будет выполнять такие задания.

На одном из первых уровней Materials, соответствующем глубине Exiles, 8R-AWN можно найти прокладывающим путь по уровню к выходу из Mines. Вероятность нахождения его там выше для новых игроков, которые никогда до этого не видели Exiles (если только они не использовали seed, потому что порождаемый seed контент должен быть постоянным и независимым от истории игрока). Заметив игрока, 8R-AWN предлагает ему следовать за ним, и продолжает уничтожать враждебных роботов по всему маршруту до выхода. (Или если игрок находился в дальней части карты, то он может просто найти тропу из разрушенных роботов, когда 8R-AWN уже давно покинул карту.) Робот сам доберётся до выхода, и если он ранее говорил с игроком, то будет ждать, пока игрок прибудет, после чего начнётся ещё один диалог и робот продолжит вести его к скрытому входу в Exiles.

Ещё одна возможная встреча с 8R-AWN происходит во время вторжения в Mines. Внезапное нападение роя Assembled — это довольно плохая ситуация для неподготовленного игрока, поэтому хорошо, что 8R-AWN может появиться здесь и спасти положение, воспользовавшись специальной технологией для их удалённого отключения. В этом случае, если он видит игрока, то тоже проведёт его к скрытому входу.

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

f2e61ddbdbab3c72a3a6aaa3e9e68039.png


Дизайн входа в Exiles на карте Mines. С точки зрения игрока кажется, что коридор продолжается, пока не поворачивает за угол, после чего скрытые двери открываются автоматически, при условии дружественности игрока.

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

Exiles


В том же посте по ссылке выше описываются методы создания данных/скриптов, задающих контент Exiles, являющейся статической картой из одной гигантской заготовки.

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

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

0c9f815a233b669de672381a2e6dd3cc.png


Соответствующие данные записываются в текстовый файл, характеристики которого я описывал в статье Map Prefabs, in Depth.

36b52b0127b89f069a98359703e0e1d0.png


Готовая заготовка Exiles в графическом виде, потому что она проще читается с включенной подсветкой синтаксиса. (Некоторые строки очень длинные, но из-за них не стоило расширять изображения, поэтому я просто их обрезал.) Файл также доступен в текстовом ви

© Habrahabr.ru