Горные плато
Первая попытка была основана на идее создания серии защищаемых плато. Вокруг них будут скалы, но они не будут следовать тем же линиям, что и озера. Для этого земля над водой была в основном выровнена, а затем к существующей земле отдельно добавились холмы.
Результат был лучше, чем 1,1, но все равно недостаточно хорош. Скалы не будут мешать так сильно, как в версии 1.1, но они были лишь незначительно более полезны, чем раньше. Проблема заключалась в отсутствии хорошего контроля над тем, куда ведут проломы в скалах. Слишком много промежутков в скале означает, что они бесполезны в качестве барьера против врагов, но при этом мешают строительству.
Скалы в Наувисе, попытка восстановления 1
Что действительно необходимо, так это более длинные непрерывные скалы, но в тоже время меньше раздражающих скал. К сожалению, это неразрешимый парадокс.
Давайте на мгновение отвлечемся от этого.
Точные скалы
Обычно я стараюсь не смотреть на код C++, потому что каждый раз, когда я это делаю, мне приходится начинать что-то менять… (например, механику жидкости), тогда как на самом деле мне следует сосредоточиться на других вещах. Зов скал был слишком сильным, и, прежде чем я это осознал, я переписал часть основного кода размещения скал.
Впервые это произошло, когда я работал над Фульгорой. Невозможно было сделать скалы, повторяющие замысловато расположенные края острова. Казалось, просто невозможно совместить скалы и плитки. Я обнаружил, что причина в том, что обрывы «сглаживаются».
Сглаживание — это попытка сделать скалы согласованными, даже если данные о высоте зашумлены. Это было необходимо на старом Наувисе, потому что высота иногда бывает грязной.
Сглаживание было кошмаром для планет, которым требовалось более точное размещение скал, таких как Фульгора. В Фулгоре также нет неустойчивой высоты, поэтому сглаживание не принесет никакой пользы. Моим первым изменением в коде C++ для скал было добавление способа отключения сглаживания на некоторых поверхностях. Внезапно все скалы встали на свои места. Проблема со скалами на Фульгоре мучила меня уже несколько недель, так что сказать, что это было облегчением, — ничего не сказать.
Скалы произвольной формы
Вернемся к плану для Наувиса. Я некоторое время думал о ситуации со скалой. Теперь, когда я был более знаком с основным кодом появления скал, я увидел ясный способ внести некоторые незначительные изменения, которые позволили бы скалам использовать совершенно другое выражение шума для их размещения.
Это означает, что скалы могут двигаться в направлениях, совершенно независимых от воды на планете. По умолчанию они будут использовать высоту воды, но планета может указать другую формулу, если захочет.
Слева: много скал, но ни одна из них не полезна.
Справа: меньше скал, меньше промежутков и потенциально больше пользы.Основной план заключался в том, чтобы сделать небольшое количество длинных скал, как упоминалось ранее. Меньшее их количество означает, что они не будут так сильно мешать. Длинные сплошные скалы будут лучшим барьером против врагов, но это также лучший барьер для расширения вашей базы.
Если есть огромный утес, вы скорее будете строиться подальше от него, нежели проигнорируете утес и встроитесь в него. Больше влияя на ваше крупномасштабное здание, он меньше влияет на маленькое здание, и это гораздо меньше раздражает.
Меньшее количество скал по своей сути означает, что они также меньше мешают, но это второстепенная проблема, потому что вы всегда можете использовать элементы управления ландшафтом, чтобы повлиять на это по своему усмотрению. Форма, когда они есть, — это самое важное, что оправдывает их существование.
Формы плато, которые были раньше, все еще были хорошей отправной точкой для размещения скал. Это хорошая стартовая форма для больших плато, но ее также можно использовать для создания таких эффектов, как каньоны. Самая большая разница — это масштаб.
Отладка визуализации скальных плато. Темный – низкая область, светлый – высокая.Это открывает еще одну прекрасную возможность. «Возвышение» скалы в этой точке полностью отделено от возвышения воды, но когда у вас есть линия скал, ведущая к воде, вы ожидаете, что береговая линия будет другой, показывая, что область над скалой будет простираться дальше в воду, поскольку эта область выше.
Вот что я сделал. Высота скалы добавляется к высоте воды. Это создает некоторые приятные особенности местности. Речные участки, ведущие к каньонам, полуостровам, прикрытыми скалами, и нескольким красивым новым островам.
Речное образование.Образование, напоминающее каньон.
Переделка местности
Проблема в том, что добавление высоты скалы к высоте воды уменьшает количество воды. Уровень воды можно отрегулировать, чтобы добавить больше воды обратно, но в основном это затопляет районы каньонов. Это главный недостаток форм плато, окруженных более низкой сушей: если уровень воды выше, все это превращается в отдельные острова. Это не идеальный вариант для Factorio, потому что вы отрезаны от кусак и вам нужна свалка или эстакада для соединения территорий. Лучше, если большая часть земли останется подключенной.
Проблема: Плато имеют тенденцию образовывать острова.Возможно, вы помните из FFF-390 , что у меня уже есть решение этой проблемы. Возвышение, основанное на хребте, где есть узкие полоски соединенной земли, а остальная часть - это в основном вода в несвязанных озерах. По сути, это противоположность плато. Использование такого рода шума для создания более надежных сухопутных мостов, смешивание базовой местности и последующее добавление приподнятых скал дает действительно хороший результат для игрового процесса, а также выглядит великолепно. Но подождите, это выходит за рамки простого изменения ландшафта для улучшения скал. Это приближается к территории капитального ремонта. Если ситуация уже так сильно изменится, то давайте просто сделаем карту Наувис как можно лучше.
Вот что я сделал.
Начнем с водного слайдера. Минимальное количество воды приходится почти на всю сушу, но иногда встречаются небольшие озера, которых мало и они расположены далеко друг от друга.
С другой стороны, избыток воды приводит к появлению красивых групп островов, архипелагов.Как только ландшафт настроен так, чтобы хорошо справляться с этими экстремальными значениями воды, он допускает некоторые макровариации, если на карте также установлены нормальные значения. При настройке «средняя вода» (по умолчанию) по мере удаления от середины поверхности земля начинает колебаться между этими крайностями, образуя массивные озера и широкие равнины. Он гораздо более разнообразен, чем раньше.
Старт в пустынях был распространенной проблемой. Я добавил дополнительный ползунок, чтобы вы могли настроить влажность стартовой области, не затрагивая остальной мир. Старт в лесу значительно проще.
Типы местности над и под скалами были немного скорректированы, поэтому иногда наблюдается небольшая разница в рельефе. Это небольшой момент, но он делает игру более трехмерной и интегрированной в мир.
Тупики
Многие вещи работали очень хорошо. Местность выглядела намного лучше, играть дальше было приятней, но все это еще не было идеальным. Взгляните
Дорога в каньоне, заблокированная водой.При путешествии на машине все еще присутствовало множество старых проблем с разведкой и навигацией. Вы следуете за пропастью между лесами, но путь преграждает небольшое озеро. Вы идете по линии скал в поисках пропасти, но она заблокирована деревьями. Но теперь возникла новая проблема: вы можете следовать по сухопутному мосту, но путь вам преграждает отвесная скала.
Лесная тропа, заблокированная скалой.
Проблема в том, что система скал, система сухопутных мостов и система деревьев ничего не знают друг о друге. Однако на самом деле это неразрешимо, потому что в древовидной системе все еще использовались те же определения «вершин», что и в декоративных элементах, упомянутых ранее.
Сухопутный мост, заблокированный деревьями.
Так что я решил изменить и это
Лесной шум
Как и в случае с декоративными элементами, чем больше я изучал систему деревьев, тем больше проблем находил. В целом было немного лучше, потому что «большинство» деревьев были способны заспавнится, но было одно дерево, которое было полностью исключено, поскольку ему требовалась температура, которой не существовало на планете.
В клетках показаны новые объемы размещения деревьев, за исключением того, где ящик для 1 дерева возвращен на исходное место. Сможете ли вы угадать, какой это?Подобные проблемы очень трудно предотвратить. Чтобы обнаружить многие из этих проблем, требуется огромная организованность и понимание. Даже в этом случае требуется некоторое время, чтобы составить полную картину происходящего, поэтому, когда нужно отрегулировать какую-то мелочь, например, отрегулировать шум, вызывающий температуру, трудно сказать, не сделали ли вы случайно то или иное дерево никогда не появляющимся. Если вы измените шумовой слой декоративного элемента, вы проверите его, и этот декоративный элемент выглядит нормально, но трудно сказать, что вы сделали так, чтобы какой-то другой случайный декоративный элемент никогда не появлялся. У нас есть тесты, предупреждающие о случайных изменениях, но иногда эти негативные изменения смешиваются с другими изменениями, когда ожидается, что генерация карты изменится, поэтому их не замечают.
В любом случае, как и в случае с декоративными элементами, расположение деревьев было изменено, чтобы сделать области более характерными.
Как и прежде, в засушливых районах плотность деревьев обычно ниже, а в влажных – больше, но разница более значительна и более постоянна. В пустыне с абсолютной нулевой влажностью теперь вообще нет деревьев.
Какие-нибудь из этих деревьев кажутся вам новыми?
Все это выглядит красиво, и это здорово, но на самом деле все это ради конечной цели — интеграции деревьев с другими системами для улучшения игрового процесса.
Природные тропы
Это то, что действительно связывает все воедино.
Сухопутные мосты обозначены хребтами, то есть существует непрерывная лента, определяющая высшую точку. Когда есть сухопутный мост, эта ленточная линия проходит примерно посередине полосы земли. Эти ленты представляют собой области, которые следует держать свободными, поэтому они добавляются в список путей.
Плато на самом деле используют систему, очень похожую на хребты, но она перевернутая. Ленточные линии вместо высоких точек представляют собой низкие точки, по сути, области «каньонов» между холмами. Если вы следуете по краю обрыва снизу, вы часто попадаете в эти области, поэтому важно, чтобы эти области не были заблокированы деревьями, поэтому они также добавляются в пути.
Густые леса также представляют собой проблему для передвижения, особенно если вы установите ползунок плотности деревьев на максимум и попытаетесь передвигаться по влажному участку ландшафта. В набор тропинок также добавлен дополнительный набор линий для лесных троп.
Все эти линии пути объединяются и вычитаются из расположения скал и деревьев. Результат чрезвычайно удобен и выглядит естественно. Лесные тропы являются результатом движения животных, и имеет смысл проложить их через расщелины в скалах, потому что именно там они могут пройти. Если вы идете по сухопутному мосту, то всегда есть путь через любые скалы и деревья, с которыми вы можете столкнуться.
Есть, конечно, исключения, когда вещи блокируют друг друга, но это, как правило, совпадения. Например, местность просто соединяется между двумя озерами, образуя по сути сухопутный мост, но поскольку он не был создан специальной системой сухопутных мостов, маршрут не защищен и может быть забит деревьями.
Настоящим испытанием для меня было установить максимальные настройки для деревьев и скал и попытаться перемещаться по карте на машине. И знаешь, что? На самом деле это действительно классная карта, по которой сейчас можно передвигаться.
Последние штрихи
Вот результаты:
Карта в масштабе 100%.Карта в масштабе 50%. Примечание. При изменении масштаба изменяются размеры только элементов стиля фасада. Такие вещи, как руда, остаются на прежнем месте.
Карта в масштабе 25%.
Еще одна карта в масштабе 25%.
Элементы пейзажа
Я вложил в это много труда и тщательно тестировал его на протяжении всего процесса, и наконец оно заработало. Предстоит провести еще больше испытаний, потому что это большое изменение, и оно очень существенно влияет на всех. Чуть позже нужно будет сделать еще несколько мелких вещей, например, более неоднородные опушки леса, но это не является существенным изменением игрового процесса.
Подстраховкой для всех этих изменений является то, что новый ландшафт чрезвычайно легко настраивается. Даже если вам не нравятся какие-то настройки, карту можно легко настроить так, как вам нравится. Например, я внес некоторые дополнительные изменения в ползунок частоты обрывов, так что значение ниже 100% будет удалять обрывы из огромных областей карты.
Кроме того, если вам действительно нравится старая местность, она все еще здесь, как и опция создания карты для одного острова.
Как всегда, идите по тропам к привычным местам:
Отличный комментарий!