Guide to Mapping
Здесь вы найдете краткое руководство для тех, кто хочет освоить маппинг, но не имеет ни малейшего представления, с чего начать.
Сам процесс маппинга очень прост - сложность составляет, скорее, знание билда и кода. Однако, вам, как мапперу, очень важно следовать простому, но правильному и удобному рабочему процессу. “Просто возьми ZIP-файл и работай в нем!” - такое нам не подойдет. Устраивайтесь поудобнее, сделайте себе чаю и слушайте внимательно.
Что нам потребуется
- Отправлять изменения на репозиторий. Гайды на эту тему вы сможете найти тут.
- StrongDMM - лучший редактор карт за авторством нашего любимого SpaiR. Доступен для Windows, Linux, и MacOS. Никогда, слышите, НИКОГДА не используйте Dream Maker для маппинга. Вы только навредите себе и уничтожите любое желание маппить, которое могло у вас остаться.
- Visual Studio Code - это опционально, но очень рекомендуется, потому что вам потребуется тестировать свои изменения на локальном сервере, а также иногда трогать код.
Открываем карту
Пришло время запустить StrongDMM! Откройте "File" и нажмите “Open...”. В главной папке вашего репо выберите taucetistation.dme
- это то, с помощью чего StrongDMM (или любая другая программа) способен находить, собирать и анализировать atoms - составляющие каждого тайла каждой карты. Это важный шаг, и убедитесь, что у вас всегда есть файл .DME (Dream Maker Environment) в своем репозитории.
Теперь, когда вы находитесь в подходящей среде, доступные карты отобразятся в центральном окошке. Если вы хотите начать с чистого листа, вы также можете создать новую карту (File>New map).
Знакомство с интерфейсом
.DMM расшифровывается как Dream Maker Map. Именно поэтому он составляет 37,5% от названия используемой нами программы - StrongDMM. Открыв карту, вы должны увидеть что-то вроде этого:
Это... выглядит любопытно? Для перемещения по карте используйте средний клик или зажатый пробел. Вы также можете использовать колесо прокрутки для увеличения и уменьшения масштаба. Клавиши со стрелками также поддерживаются.
Красотища… Давайте поговорим об этих разноцветных формах. Это области (areas), и они нужны для того, чтобы игра понимала, что в какой части карты находится (Например - клоун пробрался в капитанскую?), и мы используем их для многих целей в коде. Бриг- это область, отличная от бара, поэтому важно следить, чтобы области были правильно выставлены. Эти цвета, как правило, немного отвлекают во время работы, поэтому вы можете нажать Ctrl+ 1, чтобы избавиться от них. Однако, когда закончите работу над картой - убедитесь, что вы определили их правильно.
Намного приятнее. Области (areas) - это один из четырех различных "слоев", которые мы используем в BYOND. Остальные три - это turfs(стены и пол), objs (для объектов) и mob (для существ / животных/ и-так-далее). Их прародителем является atom. Вы можете перейти на вкладку View или нажать соответствующие горячие клавиши, чтобы быстро отфильтровать их.
Краткий экскурс: У вас может быть только одна область (area) и один турф (turf) на тайл. Но на нем может быть столько объектов и мобов, сколько вы пожелаете. Есть два типа турфов: открытые и закрытые. Если коротко, то открытые - это полы, а закрытые - это стены. Здесь код выполняет основную работу за нас, но важно понимать разницу. Давайте увеличим масштаб и рассмотрим более детально:
О да, кабинет капитана. Я щелкнул ПКМ вон на том шлюзе в центре. В открывшемся меню (выделено красным) вы можете увидеть несколько вариантов работы с этим тайлом, а также список всех объектов, турфа и области тайла. Вся эта информация хранится в ключах карты. Мило!
Вы можете увидеть, что я навел курсор мыши на один из объектов на этом тайле. Это откроет другое контекстное меню (выделено синим) для конкретного объекта, с помощью которого вы сможете менять порядок объектов на тайле, выделять, удалять, заменять, а также возвращать дефолтные настройки объекта.
Слева вы можете увидеть "Environment tree". Это дерево всех объектов, что есть в билде.
Открыв, например, шлюз командования, мы увидим в меню сверху справа ("Prefabs") все стейты выбранного нами объекта. Например, два одинаковых шлюза с разным уровнем доступа - это два стейта одного объекта (шлюза). Выберем шлюз главы персонала.
В меню ниже ("Variables") можно увидеть переменные объекта. Зеленым выделены изменённые в стейте переменные. Тут может быть как доступ из примера со шлюзами выше, так и что угодно другое.
Вы также можете открыть и работать сразу над несколькими картами, переключаясь между ними во вкладках сверху:
А теперь попробуйте перетащить одну из этих вкладок в другую часть интерфейса программы - вуаля, вы можете работать сразу над двумя картами одновременно! Таким же образом можно перемещать любую вкладку, не только карты. Настройте все под свое удобство.
Рядом с вкладками карт вы увидите инструменты для редактирования.
Вот их названия слева направо, в скобках указаны горячие клавиши:
- Добавить (1)
- Заполнить (2)
- Захватить (3)
- Выбрать (удерживать S)
- Удалить (удерживать D)
- Заменить (удерживать R)
Каждая из них работает по-своему, и вы можете навести курсор на каждую из них в программе, чтобы увидеть краткое описание. Не стесняйтесь поиграться с инструментами и устроить на карте хаос - вы всегда сможете откатить изменения с помощью гитхаба.
В любом случае, если вы делаете что-то полезное - не забывайте сохранять ваши изменения, нажав Ctrl+ S, и не забывайте тестировать их на локальном сервере.
Теория маппинга
Внимательно прочитайте данную главу, эти знания передавались мапперами из поколения в поколение... Конечно же, это не правда! Маппинг - довольно субъективное ремесло. Но, так или иначе, в данном разделе будут перечислены разные трюки и советы, которые помогут вам чуть быстрее продвинуться в этом деле и не нарваться на ошибки мапперов прошлого. В любом случае, вы всегда можете задавать свои вопросы в канале #map
нашего дискорда.
Теорию можно разделить по смыслу на три группы - отсеки, отделы (блоки отсеков) и маппинг целой станции. Создание отсека – это достаточно просто. Уйдёт не больше часа, в зависимости от размера. Создание блока – куда сложнее. Вполне может потребоваться несколько дней. Создание с нуля целой станции – титаническая задача, требующая несколько месяцев регулярной работы в редакторе.
Отсеки
Самое главное в отсеке – логика передвижения по нему. Говоря проще, линия прохода (линия, которую можно мысленно прочертить в отсеке от одного входа в него к другому, или, если вернее, то наиболее вероятный маршрут передвижения игрока по нему):
- Должна быть желательно прямой, без каких-то резких заворотов, закутков, зигзагов и прочего непотребства.
- Не должна пересекать точки длительной стоянки игрока, дабы не происходило толчков в важные моменты проделывания тех или иных операций, особенно это важно для меда.
Для того, чтобы линия прохода и логика отсека была вменяемой и хорошей, следуем этим святым заповедям:
- Шлюзы в углу - зло. В основном вся мебель расставляется вдоль стен, поэтому ставя шлюз в углу вы либо лишаетесь четверти пространства для расстановки мебели, либо убиваете линию прохода.
- В 2-3 тайлах перед шлюзом не должно ничего стоять. Это нужно для того, чтобы игрок при входе в отсек ни во что не врезался, и ему не приходилось огибать всякие штуки.
- Избегайте проходов в один тайл шириной (или в простонародье - кишок). Они очень неприятны для игрока, так как буквально лишают его половины мобильности, ибо идти по ней игрок может только либо вперёд, либо назад. (Кишки в техтоннелях – это другое)
- Не ставьте важное оборудование в проходе.
- Этот пункт касается логики размещения рабочих мест в отсеках. Если коротко - не нужно ставить в химии диспенсер и химмастер в два противоположных угла, дабы не заставлять химика постоянно носится по всему отсеку. Не нужно у гп ставить консоль изменения доступа далеко от приёмной стойки, и так далее.
Отлично, мы обсудили логику отсека, теперь поговорим о том, как сделать его визуально красивым!
- Красивая расстановка объектов на столах/полках с помощью смещений. Говоря кратко, объекты на столах и полках не должны визуально с них сползать или наслаиваться друг на друга.
- Плитка, при грамотном использовании, может визуально уменьшить отсек, помочь игроку в ориентации в нём. Например, на Боксе плиткой выделяются шлюзы, а на Прометее ею разделяется ходовое и не ходовое пространство.
- Проблема нижней стены. Дело в том, что перспектива наших спрайтов - 3/4, и спрайты всякой мебели смотрят либо вбок, либо вниз, из-за чего при размещении её вдоль нижней стены, чисто визуально может казаться, что она смотрит в стену. И эту мебель, особенно консоли, желательно располагать вдоль верхней/боковых стен. Но ситуации бывают разные, поэтому нет ничего страшного и ужасного в том, что какой-то шкаф/автомат/консоль будет смотреть в стену.
- Вы можете попробовать использовать скругления у стен отсеков (но будьте осторожны, лучше не пробовать это, если вы новичок):
Отделы
Тут поговорим о маппинге целых отделов - способы стыковки отсеков между собой и структуры построения из них блоков.
Итак, отсеки относительно друг друга могут быть как обособлены, разделены техами/коридорами, так и связаны. Связь между ними может быть как прямой, непосредственной, так и через коридоры. Да, коридоры одновременно связывают и разделяют отсеки между собой, тут ничего удивительного.
Множество отсеков, связанных между собой идейно, можно назвать блоком отсеков. Блоками являются все отделы станции, а также такие устойчивые сочетания отсеков, как кухня-гидропоника-бар-театр, дормы, церковь и подобные им.
Структурно можно разделить блоки на три группы:
- Проходные. Без использования коридоров, связь осуществляется напрямую, из отсека в отсек. Например инженерный, карго, мостик, кухня-поника-бар-театр на боксе.
- Коридорные/смешанные. С использованием коридоров и переходом из одного в другое. Например мед, бриг на боксе.
- Чисто коридорные. Отсеки между собой связаны только коридорами. Например рнд на боксе. Да, в рнд есть хранилище токсинов и мех бей, но их можно считать частью токсинной и роботехнической соответственно.
Вообще, структура блока может быть любой, какой захотите. Вопрос лишь в том, будет ли использование этой структуры полезным для карты, об этом ниже.
При выборе структуры для построения блока стоит опираться на несколько факторов:
- Количество отсеков в нем.
- Разнообразие задач этих отсеков.
- Разнообразие доступов, требующихся для входа в эти отсеки.
Например, возьмем боксовское карго. В нем весьма малое количество отсеков (6 штук), и все они по своей сути, содержанию, и требующемуся для входа в них доступу ± однородны. К половине карго доступ имеют абсолютно все его работники. И эти условия делают возможным создание проходной структуры, без применения коридоров и каких-то дополнительных соединительных структур.
То же самое можно сказать и про боксовскую инженерку, в которой из 6 зон, доступ к половине из них имеют все работники.
А вот с боксовскими медом, бригом и рнд уже сложнее.
В меде отсеков можно выделить около 12 и больше, при этом доступ в них и их задачи очень сильно варьируются, что делает построение проходного меда крайне затруднительным. В таких условиях проходную структуру очень сложно реализовать, да и она будет попросту вредна и неудобна для игроков.
Стоит отдельно выделить важность последовательности в постройке отдела. Не надо пытаться заранее детально всё спланировать, не стоит гнаться сразу за 2-мя зайцами. Лучше сначала полностью сделать один отсек, потом пристыковать к нему следующий, и так далее - как снежный ком.
Не стоит также делать отсеки отдельно друг от друга и пытаться потом их склеивать. Стройте отсеки сразу рядом друг с другом, чтобы учесть их форму, планировку и тд.
Станция
Здесь будет идти речь о связи отделов и отсеков между собой в масштабе станции и грамотном выборе их расположения.
Итак, у нас есть блоки отсеков, у нас есть отдельные отсеки. Как их можно связать воедино? Есть много способов, одни оригинальнее других. Самый распространенный - с помощью коридоров. Некоторые необычные карты используют для связи общие отсеки, трубы, и даже космос!
На самом деле способ связи не так важен, как схема связи, некий рисунок расположения на станции коридоров:
Как видно из рисунка, у всех этих станций есть определённый центр. На боксе и прометее – это мостик. На гамме и фалконе – это бар. Но вообще, схема станции вполне может обойтись и без четкого центра.
Что касается расположения отделов на карте:
- Доки обязательно располагать где-то слева, на западе станции. Потому что 3 из 7 стыкующихся к станции шаттлов имеют выход направо.
- Карго должно находиться где-то внизу, на юге станции, так как карго шаттл стыкуется только снизу.
- Инженерный лучше не ставить рядом с отбытием или медом.
- Рядом с отбытием лучше ставить медбей или бар.
Наконец, вот еще несколько советов по созданию собственной карты станции:
- Выберите какое-то одно место, один блок и делайте его полностью, основательно. Как только он будет готов, обносите его вокруг техами и коридорами, согласно вашей схеме.
- Важно не прыгать с одной части станции в другую. Поэтому выберите соседнее с уже построенным пространство и разместите там ещё один блок/отсек. Делайте его также полностью, основательно.
- Постепенно, согласно схеме, пристраивайте блоки и отсеки. Когда все они будут готовы, можно будет приступить к проводке атмосных и мусорных труб и проводов, если вы не проводили их во время создания отсеков, а также к созданию техов.