Guide to Mapping

Материал из Tau Ceti Station Wiki
Перейти к навигации Перейти к поиску

Здесь вы найдете краткое руководство для тех, кто хочет освоить маппинг, но не имеет ни малейшего представления, с чего начать.

Сам процесс маппинга очень прост - сложность составляет, скорее, знание билда и кода. Однако, вам, как мапперу, очень важно следовать простому, но правильному и удобному рабочему процессу. “Просто возьми ZIP-файл и работай в нем!” - такое нам не подойдет. Устраивайтесь поудобнее, сделайте себе чаю и слушайте внимательно.

Что нам потребуется

  • Отправлять изменения на репозиторий. Гайды на эту тему вы сможете найти тут.
  • StrongDMM - лучший редактор карт за авторством нашего любимого SpaiR. Доступен для Windows, Linux, и MacOS. Никогда, слышите, НИКОГДА не используйте Dream Maker для маппинга. Вы только навредите себе и уничтожите любое желание маппить, которое могло у вас остаться.
  • Visual Studio Code - это опционально, но очень рекомендуется, потому что вам потребуется тестировать свои изменения на локальном сервере, а также иногда трогать код.

Открываем карту

Пришло время запустить StrongDMM! Откройте "File" и нажмите “Open...”. В главной папке вашего репо выберите taucetistation.dme - это то, с помощью чего StrongDMM (или любая другая программа) способен находить, собирать и анализировать atoms - составляющие каждого тайла каждой карты. Это важный шаг, и убедитесь, что у вас всегда есть файл .DME (Dream Maker Environment) в своем репозитории.

StrongDMMGuide1.png

Теперь, когда вы находитесь в подходящей среде, доступные карты отобразятся в центральном окошке. Если вы хотите начать с чистого листа, вы также можете создать новую карту (File>New map).

StrongDMMGuide2.png

Знакомство с интерфейсом

.DMM расшифровывается как Dream Maker Map. Именно поэтому он составляет 37,5% от названия используемой нами программы - StrongDMM. Открыв карту, вы должны увидеть что-то вроде этого:

StrongDMMGuide3.png

Это... выглядит любопытно? Для перемещения по карте используйте средний клик или зажатый пробел. Вы также можете использовать колесо прокрутки для увеличения и уменьшения масштаба. Клавиши со стрелками также поддерживаются.

StrongDMMGuide4.png

Красотища… Давайте поговорим об этих разноцветных формах. Это области (areas), и они нужны для того, чтобы игра понимала, что в какой части карты находится (Например - клоун пробрался в капитанскую?), и мы используем их для многих целей в коде. Бриг- это область, отличная от бара, поэтому важно следить, чтобы области были правильно выставлены. Эти цвета, как правило, немного отвлекают во время работы, поэтому вы можете нажать Ctrl+ 1, чтобы избавиться от них. Однако, когда закончите работу над картой - убедитесь, что вы определили их правильно.

StrongDMMGuide5.png

Намного приятнее. Области (areas) - это один из четырех различных "слоев", которые мы используем в BYOND. Остальные три - это turfs(стены и пол), objs (для объектов) и mob (для существ / животных/ и-так-далее). Их прародителем является atom. Вы можете перейти на вкладку View или нажать соответствующие горячие клавиши, чтобы быстро отфильтровать их.

StrongDMMGuide6.png

Краткий экскурс: У вас может быть только одна область (area) и один турф (turf) на тайл. Но на нем может быть столько объектов и мобов, сколько вы пожелаете. Есть два типа турфов: открытые и закрытые. Если коротко, то открытые - это полы, а закрытые - это стены. Здесь код выполняет основную работу за нас, но важно понимать разницу. Давайте увеличим масштаб и рассмотрим более детально:

StrongDMMGuide7.png

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

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

Слева вы можете увидеть "Environment tree". Это дерево всех объектов, что есть в билде.

StrongDMMGuide9.png

Открыв, например, шлюз командования, мы увидим в меню сверху справа ("Prefabs") все стейты выбранного нами объекта. Например, два одинаковых шлюза с разным уровнем доступа - это два стейта одного объекта (шлюза). Выберем шлюз главы персонала.

StrongDMMGuide10.png

В меню ниже ("Variables") можно увидеть переменные объекта. Зеленым выделены изменённые в стейте переменные. Тут может быть как доступ из примера со шлюзами выше, так и что угодно другое.

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

StrongDMMGuide11.png

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

StrongDMMGuide16.png

Рядом с вкладками карт вы увидите инструменты для редактирования.

StrongDMMGuide8.png

Вот их названия слева направо, в скобках указаны горячие клавиши:

  • Добавить (1)
  • Заполнить (2)
  • Захватить (3)
  • Выбрать (удерживать S)
  • Удалить (удерживать D)
  • Заменить (удерживать R)

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

В любом случае, если вы делаете что-то полезное - не забывайте сохранять ваши изменения, нажав Ctrl+ S, и не забывайте тестировать их на локальном сервере.

Теория маппинга

Внимательно прочитайте данную главу, эти знания передавались мапперами из поколения в поколение... Конечно же, это не правда! Маппинг - довольно субъективное ремесло. Но, так или иначе, в данном разделе будут перечислены разные трюки и советы, которые помогут вам чуть быстрее продвинуться в этом деле и не нарваться на ошибки мапперов прошлого. В любом случае, вы всегда можете задавать свои вопросы в канале #map нашего дискорда.

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

Отсеки

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

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

Для того, чтобы линия прохода и логика отсека была вменяемой и хорошей, следуем этим святым заповедям:

  • Шлюзы в углу - зло. В основном вся мебель расставляется вдоль стен, поэтому ставя шлюз в углу вы либо лишаетесь четверти пространства для расстановки мебели, либо убиваете линию прохода.
  • В 2-3 тайлах перед шлюзом не должно ничего стоять. Это нужно для того, чтобы игрок при входе в отсек ни во что не врезался, и ему не приходилось огибать всякие штуки.
  • Избегайте проходов в один тайл шириной (или в простонародье - кишок). Они очень неприятны для игрока, так как буквально лишают его половины мобильности, ибо идти по ней игрок может только либо вперёд, либо назад. (Кишки в техтоннелях – это другое)
  • Не ставьте важное оборудование в проходе.
  • Этот пункт касается логики размещения рабочих мест в отсеках. Если коротко - не нужно ставить в химии диспенсер и химмастер в два противоположных угла, дабы не заставлять химика постоянно носится по всему отсеку. Не нужно у гп ставить консоль изменения доступа далеко от приёмной стойки, и так далее.
Смещение объектов

Отлично, мы обсудили логику отсека, теперь поговорим о том, как сделать его визуально красивым!

  • Красивая расстановка объектов на столах/полках с помощью смещений. Говоря кратко, объекты на столах и полках не должны визуально с них сползать или наслаиваться друг на друга.
  • Плитка, при грамотном использовании, может визуально уменьшить отсек, помочь игроку в ориентации в нём. Например, на Боксе плиткой выделяются шлюзы, а на Прометее ею разделяется ходовое и не ходовое пространство.
  • Проблема нижней стены. Дело в том, что перспектива наших спрайтов - 3/4, и спрайты всякой мебели смотрят либо вбок, либо вниз, из-за чего при размещении её вдоль нижней стены, чисто визуально может казаться, что она смотрит в стену. И эту мебель, особенно консоли, желательно располагать вдоль верхней/боковых стен. Но ситуации бывают разные, поэтому нет ничего страшного и ужасного в том, что какой-то шкаф/автомат/консоль будет смотреть в стену.
  • Вы можете попробовать использовать скругления у стен отсеков (но будьте осторожны, лучше не пробовать это, если вы новичок):
StrongDMMGuide13.png

Отделы

Тут поговорим о маппинге целых отделов - способы стыковки отсеков между собой и структуры построения из них блоков.

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

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

Структурно можно разделить блоки на три группы:

  1. Проходные. Без использования коридоров, связь осуществляется напрямую, из отсека в отсек. Например инженерный, карго, мостик, кухня-поника-бар-театр на боксе.
  2. Коридорные/смешанные. С использованием коридоров и переходом из одного в другое. Например мед, бриг на боксе.
  3. Чисто коридорные. Отсеки между собой связаны только коридорами. Например рнд на боксе. Да, в рнд есть хранилище токсинов и мех бей, но их можно считать частью токсинной и роботехнической соответственно.

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

При выборе структуры для построения блока стоит опираться на несколько факторов:

  • Количество отсеков в нем.
  • Разнообразие задач этих отсеков.
  • Разнообразие доступов, требующихся для входа в эти отсеки.

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

То же самое можно сказать и про боксовскую инженерку, в которой из 6 зон, доступ к половине из них имеют все работники.

А вот с боксовскими медом, бригом и рнд уже сложнее.

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

Стоит отдельно выделить важность последовательности в постройке отдела. Не надо пытаться заранее детально всё спланировать, не стоит гнаться сразу за 2-мя зайцами. Лучше сначала полностью сделать один отсек, потом пристыковать к нему следующий, и так далее - как снежный ком.

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

Станция

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

Итак, у нас есть блоки отсеков, у нас есть отдельные отсеки. Как их можно связать воедино? Есть много способов, одни оригинальнее других. Самый распространенный - с помощью коридоров. Некоторые необычные карты используют для связи общие отсеки, трубы, и даже космос!

На самом деле способ связи не так важен, как схема связи, некий рисунок расположения на станции коридоров:

Схема коридоров для текущих карт: Бокс, Гамма, Прометей, Фалкон.

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

Что касается расположения отделов на карте:

  • Доки обязательно располагать где-то слева, на западе станции. Потому что 3 из 7 стыкующихся к станции шаттлов имеют выход направо.
  • Карго должно находиться где-то внизу, на юге станции, так как карго шаттл стыкуется только снизу.
  • Инженерный лучше не ставить рядом с отбытием или медом.
  • Рядом с отбытием лучше ставить медбей или бар.

Наконец, вот еще несколько советов по созданию собственной карты станции:

  1. Выберите какое-то одно место, один блок и делайте его полностью, основательно. Как только он будет готов, обносите его вокруг техами и коридорами, согласно вашей схеме.
  2. Важно не прыгать с одной части станции в другую. Поэтому выберите соседнее с уже построенным пространство и разместите там ещё один блок/отсек. Делайте его также полностью, основательно.
  3. Постепенно, согласно схеме, пристраивайте блоки и отсеки. Когда все они будут готовы, можно будет приступить к проводке атмосных и мусорных труб и проводов, если вы не проводили их во время создания отсеков, а также к созданию техов.