sfw
nsfw

Результаты поиска по запросу

Дополнительные фильтры
Теги:
новый тег
Автор поста
Рейтинг поста:
-∞050100200300400+
Найдено: 1000+
Сортировка:
,Factorio,Игры,Factorio Dev Diary

Статистика(Клонан)

Любите ли вы наблюдать за тем, как растут ваши производственные графики, так же, как и мы?

График аккумулятора

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

Научный график

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

Производство по мирам

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

График качества

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

Linux-приключения(Рейгард)

Я уже появлялся в нескольких FFF, но никогда официально не представлялся. Меня зовут Рейгард. Я играю в Factorio с июня 2017 года, делаю моды для игры с момента выпуска версии 0.17 в марте 2019 года и, наконец, присоединился к Wube в марте 2023 года. Мои основные обязанности в компании — программирование расширений и поддержка Linux, а также представление интересов сообщества мододелов. Я ежедневно использую Linux в течение нескольких лет и все глубже погружаюсь в черную дыру настройки и минимализма.
«Почему большинство игр не поддерживают macOS и Linux?» — это мнение, которое я часто вижу в Интернете. Поддержка новой платформы — это гораздо больше, чем просто изменение некоторых флагов и компиляция. Windows, macOS, Linux и Nintendo Switch используют разные компиляторы, разные реализации стандартной библиотеки C++ и имеют разные особенности реализации, ошибки и функции. Вам необходимо настроить CI для новой платформы, расширить систему сборки для поддержки новых компиляторов и архитектуры, а также иметь в команде хотя бы одного человека, который достаточно заботится о платформе, чтобы активно ее поддерживать. Если вы занимаетесь видеоиграми, вам, вероятно, потребуется добавить поддержку другого графического интерфейса (Vulkan или OpenGL), поскольку DirectX является эксклюзивным для Windows.
Многие разработчики, взглянув на долю рынка Windows , решат, что поддержка других платформ не стоит усилий. Кроме того, с стремительным ростом Steam Deck и Proton разработчикам игр стало легче, чем когда-либо, игнорировать поддержку Linux, потому что Valve прибегает к черной магии, которая все равно позволяет их игре работать.
Factorio так хорошо поддерживает macOS и Linux, потому что в Wube всегда был кто-то, кто активно использует эти платформы и готов взять на себя бремя их поддержки. Наша встроенная поддержка Apple Silicon — отличный тому пример. Сегодня я расскажу вам о некоторых приключениях, которые произошли со мной при поддержке Linux в Factorio.

Wayland 

Моей первой задачей после присоединения к команде было добавить в игру поддержку Wayland . Wayland — это новый протокол отображения, который разрабатывается для замены устаревшей и небезопасной системы X11 . Современные дистрибутивы Linux начинают переключаться на Wayland по умолчанию, поэтому поддержка его в Factorio имеет первостепенное значение.
Мы используем библиотеку SDL , которая аккуратно обрабатывает большинство низкоуровневых системных взаимодействий и абстрагирует их в общий интерфейс. SDL поддерживает Wayland, поэтому все, что мне теоретически нужно было сделать, — это собрать SDL с включенным Wayland, и он «просто заработает». Однако это не совсем просто подключи и работай. Wayland предоставляет «протоколы» в виде XML-файлов, которые вы затем используете в wayland-scanner двоичном виде для преобразования в программу C и файлы заголовков.
Поскольку в то время я был относительно новичком в C++, мое первоначальное решение было запутанным и включало проверку сгенерированных протоколов Wayland в нашем дереве исходных кодов, чтобы их можно было регенерировать вручную каждый раз, когда мы обновляли SDL. Несколько месяцев назад, вооружившись многолетним опытом, я улучшил этот рабочий процесс, чтобы автоматически генерировать файлы как часть процесса сборки, чтобы они всегда были актуальными с XML-файлами протокола, с которыми поставляется SDL.
Factorio поддерживает Wayland с версии 1.1.77, но его необходимо явно включить, настроив SDL_VIDEODRIVER=wayland в вашей среде. Для Factorio 2.0 я добавил раскрывающийся список для выбора ваших предпочтений в графическом интерфейсе:
X11 (слева) и Wayland (справа) с масштабом дисплея рабочего стола, установленным на 125%.
Обратите внимание, как игра отображается с собственным разрешением дисплея при работе под Wayland.

Оформление окон на стороне клиента

Как только поддержка Wayland была реализована, я получил отчет об ошибке , в котором говорилось, что в окне отсутствовала строка заголовка и кнопки закрытия (так называемые «декорации окна») при работе в GNOME . Большинство сред рабочего стола позволяют окнам предоставлять свои собственные украшения, если они того пожелают, но в качестве альтернативы предоставляют реализацию по умолчанию на стороне сервера. GNOME в своей бесконечной мудрости решили, что все клиенты должны предоставлять свои собственные украшения, а если клиент этого не сделает, они просто пропадут. Я не согласен с этим решением; Factorio не нуждается в оформлении какой-либо другой платформы, более того, в любой другой среде рабочего стола, но GNOME может (ab) использовать свою популярность, чтобы заставить программы соответствовать его особенностям или остаться позади.
Чтобы исправить это, мне пришлось добавить еще одну зависимость — libdecor . Он работает, и SDL даже поддерживает его, но видеоигра вообще не должна обеспечивать оформление окон.
В игре появились украшения, но тема не соответствует. Спасибо, ГНОМ!

Захваты при изменении размера окна

Видео стоит больше тысячи слов:
Я использую оконный менеджер Sway , и особенность этого оконного менеджера заключается в том, что он автоматически изменяет размер плавающих окон до размера их последнего отправленного кадра. Это выявило проблему с нашим графическим стеком: игре требуется три кадра, чтобы правильно отреагировать на изменение размера окна. В результате происходит быстрое перетягивание каната: Sway отправляет массу событий изменения размера, а Factorio отвечает устаревшими размерами кадрового буфера, вызывая хаос, показанный выше.
Я провел два полных дня, рассматривая наш графический код, но не смог придумать объяснения, почему это происходит, поэтому эта работа все еще продолжается. Поскольку эта проблема возникает только при запуске игры на Wayland под управлением Sway, это не является большим приоритетом, но это было слишком интересно, чтобы не поделиться.

Динамически подключаемые библиотеки

В программе C++ существует три способа загрузки/подключения библиотеки:
Включив его в исходный двоичный файл (статическое связывание).Загрузка системы при запуске вашей программы (динамическое связывание).Ваша программа загружает его явно после запуска («динамическая загрузка» или то, что я называю «связыванием во время выполнения»).У нас есть множество библиотек, таких как SDL, FontStash и Lua, которые скомпонованы статически, но в Factorio 1.1 также есть много динамически скомпонованных библиотек.

Среди этих библиотек — X11 и PulseAudio, которые устарели в пользу Wayland и PipeWire соответственно. Это вызывает кошмар совместимости, поскольку если какие-либо динамические зависимости отсутствуют, игра не запустится. Это явно не подойдет!
Наличие этих зависимостей меня смутило, поскольку мы используем SDL для большинства низкоуровневых системных вызовов, аудио и видео, а SDL полностью полагается на связывание во время выполнения. Расследование показало, что источником большинства этих зависимостей является Allegro , низкоуровневая библиотека, которую мы использовали на протяжении большей части альфа-фазы Factorio, но с тех пор заменили на SDL. Единственное оставшееся использование Allegro в версии 2.0 было в качестве вторичного аудио-сервера на случай, если у пользователя возникли проблемы с аудио-сервером SDL, но сервер SDL был стабильным в течение очень долгого времени, поэтому настало время для его удаления. Это исключило из игры 123 024 строки кода и резко сократило количество динамических зависимостей:

Проблемы с буфером обмена

Оказывается, Allegro — не единственное, что требовало от нас связывания с X11. Еще в 2017 году мы получили сообщение об ошибке , в котором пользователь не мог вставить большие строки чертежей в игру, и Oxyd исправил это, добавив поддержку инкрементной передачи данных из буфера обмена X11 в обработчик буфера обмена нашего графического интерфейса.
Я надеялся использовать встроенную в SDL функциональность буфера обмена, но, к сожалению, SDL не поддерживает инкрементную передачу. Это означает, что есть три варианта:
Продолжайте связывать с X11, требуя, чтобы пользователи установили X11 в своей системе, чтобы иметь возможность запускать игру (я не хочу возиться со статическим связыванием).Выясните, как выполнить связывание во время выполнения, и реализуйте это.Переведите наш код инкрементной передачи в SDL, чтобы мы могли использовать функции буфера обмена SDL, а другие игры на основе SDL могли бы извлечь выгоду из нашей работы.
Как вы могли догадаться, я выбрал третий вариант. Работа над улучшением нашего кода продолжается, но она должна быть завершена к выпуску Factorio 2.0.

Асинхронное сохранение

Многие из вас, возможно, не знают, что Factorio поддерживает сохранение игры в фоновом режиме без зависания при этом. Эта функция спрятана в скрытых настройках и работает только на macOS и Linux. Это отличный пример использования возможностей платформы для пользы игры, которые были бы нам не доступны, если бы мы просто прошли через Proton.
Асинхронное сохранение работает с использованием системного вызова fork, по существу дублирующего игру. Основной экземпляр, с которым вы взаимодействуете, продолжает играть, но недавно разветвленный дочерний элемент запускает процесс сохранения, а затем завершает работу по завершении. Я использовал его в течение многих лет, и у меня никогда не было проблем, но настройка остается скрытой, поскольку с ней есть несколько нерешенных проблем, и для ее работы требуется значительный объем оперативной памяти.
Я бы хотел продвинуть эту функцию из ее скрытого статуса в версии 2.0. Если вы играете на Linux или macOS, включите асинхронное сохранение (ctrl+alt+нажмите «Настройки» -> «Остальное» -> non-blocking-saving) и сообщайте о любых обнаруженных проблемах. Меня особенно интересует воспроизведение, казалось бы, случайного зависания , которое происходит в конце процесса. Заранее спасибо!

Постоянное развитие

Это был лишь краткий обзор работы, которую я проделал, чтобы обеспечить наилучшее качество Factorio для Linux. По-прежнему существует много открытых отчетов об ошибках и других проблемах, но в целом я доволен положением вещей и могу с уверенностью сказать, что у Factorio отличная поддержка Linux.
Как всегда, отправьте текстовый буфер с вашими отзывами в привычные места:
Форум Редит
,Factorio Dev Diary,Factorio,Игры
В ноябре 2021 года мы начали переговоры с Петром Вайсаром , очень талантливым чешским композитором, о создании саундтрека для расширения Factorio. С тех пор мы вместе работаем над саундтреком к Factorio Space Age. Концептуализация и поиск решений наших немалых проблем, а также наполнение расширения качественной музыкой, специально разработанной для получения наилучших впечатлений от Factorio.
Петр – особенный музыкант, поскольку он не только признанный мастер электронной музыки, но и его образование и опыт работы в консерватории позволяют ему сочинять музыку, используя весь диапазон классического оркестра. Его современный стиль перехода к более экспериментальным решениям делает его очень гибким при создании музыки для расширения Factorio Space Age.

Оркестровая музыка

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

Запись сеансов

Запись музыки с традиционным оркестром – это большая задача, требующая длительного процесса и очень сложной координации. От музыкальной режиссуры и сочинения до оркестровки, координации всех музыкантов, аранжировок, записи, постпродакшена и т. д.
В случае с нашим саундтреком задействовано 174 профессионала, не считая команды Factorio.
Музыкальная продюсерская компания Soundsgate , которая представляет Петра, берет на себя весь этот процесс за нас.
Запись нашего саундтрека проходит с ноября 2023 года в студии Český Rozhlas в Праге.
Я публикую здесь несколько фотографий с первой записи.

Текущий саундтрек останется саундтреком к Наувис

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

Мотив Факторио

Постоянным элементом всего саундтрека (я добавляю также работу Дэниела) является мотив Factorio. Я уверен, что это уже вытатуировано у тебя в мозгу. Помните мелодию, которая звучит при загрузке игры? Да, так и есть. Что ж, Петр разработал целую вселенную на основе этих парочек заметок.
Эта мелодия звучит по всем планетам с множеством разных настроений, ритмов и инструментов. Хорошая часть в том, что ты не слышишь это отчетливо, ты просто чувствуешь это. Это потрясающе, потому что создает такой целостный космос, который, несомненно, принадлежит Factorio. Одним из примеров является видео Вулкануса, представленное ниже.
Все планеты также разделяют идею чувства чуда. Мы хотим выразить, насколько невероятно приятно и позитивно открытие всех этих новых миров. В основе некоторых треков на разных планетах лежит эта идея.

Ограничения движка Factorio

У движка нет возможности сообщать музыкальной системе, что происходит в игре. Другими словами, музыкальная система понятия не имеет, находится ли игрок в центре битвы, уничтожая гнезда кусачих, или тщательно размещает транспортные ленты для удовлетворения потребностей растущей фабрики.
Этот факт сильно ограничивает творческие решения на момент написания партитуры. Представьте себе, что игрок тихо расставляет трубы, чтобы просто соединить 2 машины, и внезапно на заднем плане звучит эпическая боевая музыка. Это создало бы глупую ситуацию, а мы этого не хотим.
Решение, которое мы решили принять, заключается в том, что вместо того, чтобы пытаться проиллюстрировать само действие, нам лучше перейти к описанию пейзажа в более атмосферном решении. Атмосфера планеты и ее нюансы. Настроение и его вариации.
Музыка должна быть нейтральной, без сильных эмоциональных пиков, но с другой стороны она должна быть насыщенной и динамичной, иначе она станет скучной. Поэтому очень важно контролировать баланс между нейтральностью и выразительностью.

Есть 4 новые планеты + Космос, так что у нас будет 5 уникальных звуковых ландшафтов.

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

Космос

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

Вулкан

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

Фульгора

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

Остальные 2 планеты

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

Более 5 часов саундтрека

На каждой поверхности игры звучит около 1 часа музыки. Это значит, что нам нужно проиграть 5 часов саундтрека, +1 час Наувиса. На следующей неделе мы поговорим о некоторых методах, которые мы разработали, чтобы не только покрыть этот промежуток времени, но и превзойти его.

Что дальше?

Теперь у нас есть все демо и записи оркестрованных партий. У нас еще нет окончательных миксов, только несколько премиксов Петра. Каждый шаг в этом процессе приводит к изменениям, обычно в лучшую сторону.
Мы также начинаем лучше видеть графику и игровой процесс. Итак, я собираюсь поместить весь этот материал в движок перед окончательными миксами, чтобы протестировать его и получить обратную связь.
Я совершенно уверен, что мы сможем настроить весь саундтрек таким образом, чтобы окупить всю энергию, которую Петр (и все участники) вложили в такой сумасшедший проект.
Следите за обновлениями.
Как всегда, направляйте свои мысли в привычные мест:
Форум Редит
,Factorio,Игры,Factorio Dev Diary
Здравствуйте!
Сегодня у нас есть целый ряд новых функций и улучшений, которые появятся в версии 2.0.

Считыватель всего конвеера

Часто хочется прочитать содержимое целой линии? Возможно, вы готовите суши или просто хотите получить точную оценку того, сколько вещей у вас есть, не помещая их в сундук.
Способ сделать это — прочитать каждый конвеер, но у этого метода есть некоторые недостатки:
Уродливость
Неэффективность
- Скучность
- Скрывает предметы на ремнях.
- Не работает для подземных конвееров
Поэтому мы решили сделать его более удобным. Боскид добавил новый режим, который вы можете выбрать при выборе режима «Чтение содержимого пояса».
Этот способ будет считывать все ленты в той же «Транспортной строке», что и считываемый конвеер. Он сохраняется при прохождении подземных конвейеров, но разрывается сплиттерами и боковой загрузкой на другой конвейер.
Результат не только стал намного удобнее, но и выглядит лучше, с меньшим визуальным беспорядком.

Более быстрые последующие запуски ракет

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

Фильтры для насосов

Вы запутались в каком-то поезде, и они вылили целую кучу смазки в ваши запасы сырой нефти? Раздражает, не так ли? Добавление фильтра к насосам было технически возможно уже давно, нам оставалось лишь добавить графический интерфейс.
И, конечно же, если у нас есть фильтр жидкости, имеет смысл сделать его частью управления контурной сети. Мы уверены, что появятся некоторые гениальные конструкции, в которых будет использоваться новая сила... суши трубы?

Новый графический интерфейс логистических сетей

Графический интерфейс логистической сети был добавлен еще в версии 0.15 и с тех пор претерпел лишь косметические изменения.

Логистический графический интерфейс в версии 0.15 (первая версия).

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

Итерация 1

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

Итерация 2

Здесь я попробовал заняться выбором сети. Первым шагом был переход от раскрывающегося списка к списку. Мгновенно лучше. Вторым шагом было добавление значка спереди, чтобы различать мобильные сети и сети робопортов. Итак, мы куда-то движемся.
Но самой большой проблемой по-прежнему остаётся идентификация сетей. Я пришел к выводу, что, по сути, единственный способ идентифицировать сеть — это посмотреть на нее.
Поэтому я добавил мини-карту «Выбранная сеть». Это весьма нативно. Я могу быстро просмотреть сети в списке и визуально идентифицировать сети с помощью мини-карты.
Однако графический интерфейс начинает выглядеть монстром. У нас есть два списка, и чтобы заполнить немного места, я добавил случайную информацию о сети и множество мини-карт...

Итерация 3

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

Итерация 4

Итак, улучшение явное, отодвигаем предметы в сторону. Это дает нам больше высоты, а это значит, что мы можем сделать мини-карту квадратной и больше.
Второе улучшение произошло благодаря использованию последнего графического интерфейса: количество «участников» обычно довольно мало, максимум 5-10. Таким образом, вкладка «Участники» часто выглядела пустоватой по сравнению с тем, сколько места было зарезервировано на вкладке «Элементы». Так что нет особого смысла размещать их во вкладках. Мы всегда можем показать и то, и другое, потому что маловероятно, что участники станут слишком большими, чтобы мы могли с ними нормально справиться.
Остальная часть графического интерфейса здесь довольно хорошо очищена.
Поскольку у нас перед глазами эта большая красивая карта, имеет смысл заставить взаимодействие выбора работать только с миникартой. Еще одна приятная небольшая функция, которую мы добавили, — это возможность переименовывать логистические сети, чтобы вы могли отслеживать события по-своему.

Интеграция с удаленным просмотром

Однако с графическим интерфейсом все еще была проблема: это был «настоящий графический интерфейс», он занимал весь экран, а мини-карта не допускала нормального взаимодействия с картой.
Итак, последнее изменение заключалось в переработке графического интерфейса логистических сетей, чтобы он стал «приклеенной» панелью удаленного просмотра. Это позволяет нам сохранять видимыми все обычные графические интерфейсы, такие как панель быстрого доступа и инвентарь, позволяет вам создавать и изменять вещи в обычном режиме, а графический интерфейс логистики предоставляет логистическую информацию.
Таким образом, мы достигаем текущего состояния графического интерфейса новой логистики. Можете ли вы подумать о каких-либо других улучшениях, которые мы можем внести в него?
Как всегда, пропустите анимации и поделитесь с нами своими мыслями в привычных местах:
Форум Редит
,Factorio,Игры,Factorio Dev Diary
Здравствуйте!
Сегодня у нас есть для вас еще одна порция улучшений!

Инструмент Spidertron RTS

Давайте будем честными: выбор и управление Спайдертроном в версии 1.1 немного неудобны. Как поклонники RTS-игр, мы знаем, что можем добиться большего, не изобретая велосипед.
Поэтому мы переименовали пульт Spidertron в новый инструмент RTS, и ожидаем что управление станет более интуитивным.
¡S& RTS tool (Item)
When in cursor:
■	Left-click and drag to select spidertrons.
■	Shift + Left-click and drag to add to selected spidertrons.
■	Control + Left-click and drag to remove from selected spidertrons.
■	Right-click to send spidertron.
■	Shift + Right-click to queue move command.
- Активируется с помощью горячей клавиши ALT+A.
- Щелкните левой кнопкой мыши и перетащите, чтобы выбрать Пауктрон.
- Щелкните правой кнопкой мыши, чтобы дать команду Пауктронам отправиться в нужное место.
Инструмент RTS запоминает последний выбор Пауктронов, поэтому при повторном нажатии ALT + A будет выбрана предыдущая группа Пауктронов. Еще одна деталь заключается в том, что запоминаемый выбор выполняется для каждой поверхности, поэтому, если вы командуете каким-либо пауком на Вулканусе и возвращаетесь в Наувис, ALT + A предварительно выберет последних пауков, которые вы использовали на Наувисе.
Вы также можете сохранить выбор на панели быстрого доступа, чтобы в любой момент управлять своей любимой группой друзей.

Пипетируйте все вещи

Может быть, это кажется глупым, но как только вы начнете привыкать к "пипетированию" конвееров, машин и прочего, вы начнете пытаться применять это повсюду. Конечно, пипетка работает только с сущностями, но мы допустили «ошибку», пытаясь пипетировать ячейки рецептов, плитки и тому подобное столько раз, что это начинает заражать нас мыслью: «Я оторвался от связи? Нет, это игра». и это не правильно!" .
Итак, благодаря возможностям программирования, мы просто заставили пипетку работать в большем количестве мест:
Слоты рецептов, логистические слоты, слоты инвентаря... все слоты!
- Размещаемые плитки, такие как бетон, свалка, фундамент платформы и т. д.
- Вода, Лава, Нефтяной океан (чтобы достать морской насос)
Можете ли вы придумать какие-нибудь другие места, где использование пипетки имело бы смысл?

Упрощенная настройка сетки чертежа

Пытаясь добиться идеального выравнивания чертежей, трудно понять, какие числа указать для смещений «Положение сетки» и «Абсолютное»
Откуда нам знать, какие числа здесь помогут правильно выстроить чертеж?
Обычно мы получаем необходимый результат методом проб и ошибок, но открывать графический интерфейс снова и снова, чтобы угадывать разные числа, неинтересно.
Что нам действительно нужно, так это быстрый способ корректировки этих чисел, сохраняя при этом чертеж, который мы добавили в версии 2.0:
Быстрая настройка смещения сетки чертежа.
С чертежом в курсоре:
SHIFT + клавиши со стрелками — регулирует положение сетки.
- CONTROL + клавиши со стрелками — регулирует абсолютное смещение сетки.
Благодаря этому идеальное выравнивание чертежей становится очень безболезненным и интуитивно понятным.
Как всегда, дайте нам знать, что вы думаете о обычных местах:
Форум Редит
,Factorio,Игры,Factorio Dev Diary
Здравствуйте!
Играя с поездами, вы склонны тратить много времени на размещение остановок поезда. В ходе моего последнего игрового тестирования я заметил несколько неприятностей и болевых точек, к которым мы сегодня обратимся, а также к некоторым другим улучшениям версии 2.0.

Графический интерфейс остановки поезда, показывающий путь

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

Название поезда и лимит поездов

Существует важный порядок действий при настройке новой остановки поезда, и если вы сделаете ее  неправильно, то можете что то поломать:
О, нет! Вы назвали остановку до того, как установили лимит поездов!
Это ошибка, которую вы совершаете всего несколько раз, но даже процесс установки лимита и цвета каждый раз доставляет немного хлопот. Вы всегда можете скопировать и вставить существующую остановку или использовать чертеж, однако эти варианты не всегда удобны.
Размышляя над этим и проделывая это снова и снова (Остановка сборки -> установить лимит -> установить цвет -> установить имя), я придумал решение, которое минимизирует риски и в то же время делает его более удобным: «Когда я задаю имя остановки, я хочу, чтобы она скопировала предел и цвет существующей остановки с таким же именем».
При установке имени лимит и цвет будут скопированы из существующей остановки поезда.
-  А если остановок несколько? - Самый безопасный способ — выбрать существующую остановку с наименьшим лимитом поездов.
- Что, если я установлю лимит до того, как назову остановку? - Предел изменяется только в том случае, если текущий предел не установлен.

Название остановки поезда отображается при наведении на карту

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

Остановка поезда показывает путь прибывающих поездов

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

Копипаст остановки поезда с карты

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

Переименуйте все остановки поезда

Вы провели 500 часов в игре, последовательно копируя и называя свои станции. Но вы допустили небольшую опечатку и назвали все свои оранжевые ресурсные станции «Cooper Drop», и теперь вы застряли на этом(на английском медь это copper)...
Но мы не настолько жестоки, чтобы заставлять вас переименовывать их все по одному. Теперь, если вы удерживаете «CONTROL» при подтверждении изменения в графическом интерфейсе остановки поезда, все остановки с этим именем будут переименованы в новое имя.
liiSiiil
Apply change
Hold Control while submitting to rename all stops with this name.
I IUIU I.I^UL	<<
Q Enable train lirr
Get out of here Item Input
Program supply drop
6!,Factorio,Игры,Factorio Dev Diary
Эта функция также работает для новых групп поездов и логистических групп.

Ручной толкатель локомотива

С новыми надземными рельсами у нас возникла новая проблема с надземными рельсами: что, если в поезде, в котором вы едете, кончилось топливо, когда вы ехали над водой? Мы не хотим, чтобы игрок застрял без возможности выбраться.
Мы обдумали множество идей, но победило самое простое и легкое решение: «Игроки могут толкать локомотивы ногами, как Флинстоун».
Этот способ не очень быстрый, поэтому его бессмысленно использовать в обычных ситуациях, но в случае чрезвычайной ситуации он справляется со своей задачей.
Учитывая, что игрок также может ездить и в вагонах, это приводит к довольно забавному зрелищу.

Поезда с дистанционным вождением

Часто поезда попадают в пробки, и для их разведения требуется ручное вмешательство. Однако, если вы уезжаете на другую планету и прекрасно проводите время, было бы огромным неудобством ехать домой только для того, чтобы исправить один тупик.
Поэтому Raiguard добавил возможность дистанционного управления поездами, которая уже не раз пригодилась.
Доступ осуществляется через графический интерфейс поезда или с помощью обычной горячей клавиши «переключение вождения».

Планировщик железных дорог работает в режиме карты.

Нам очень не хватало этой функции с тех пор, как Рсединг добавил чертежи с карты, так что это было ожидаемым дополнением.
Генхис также только что завершил создание поддержки "суперсилы"(режим брудфорс вставки призраков) для планировщика железных дорог, поэтому крестовый поход по озерам стал проще, чем когда-либо.
Все эти небольшие улучшения вместе постепенно складываются и делают игру намного приятнее. Что вы думаете? Есть ли что-то, что мы пропустили?
Как всегда, дайте нам знать ваши мысли в обычных местах.
Форум Редит
,Factorio,Игры,Factorio Dev Diary
Здравствуйте,
если нас читают любители автоспорта, то вам повезло.

Сеть радиолокационной передачи (Коварекс)

Иногда может быть полезно отправлять сигналы цепи на большие расстояния. Лично я никогда не использовал его ни для чего, но когда мы некоторое время назад тестировали игру, Боскид настоял на том, чтобы мы включили провода в наши чертежи рельсов, потому что никогда не знаешь, когда это может пригодиться.
Я чувствовал себя неловко по этому поводу, потому что это противоречит принципу кодирования «пишите, когда вам это нужно», поскольку добавляет раздувание чего-то, что может даже не пригодиться позже. Но я понимаю, что если это действительно понадобится, потом исправить это будет гораздо сложнее.
Вот так выглядела наша железнодорожная система «на всякий случай».
Чтобы избежать этой дилеммы, мы добавили давно востребованную функцию беспроводной передачи данных с использованием радаров.
Есть много способов сделать это, но мы хотели, чтобы все было просто. Поэтому мы решили, что для каждой поверхности есть только один радарный канал (по-прежнему разделенный между красным и зеленым). Это означает, что вам не нужно ничего настраивать, вы просто подключаете провод и все готово. Если радар теряет питание, соединение с цепью разрывается.

Спадание проводов (Коварекс)

Поскольку все улучшения в сети побудили меня использовать ее чаще, меня все больше и больше раздражала эта проблема:
Я хочу переместить нижний набор комбинаторов, но если я сделаю это с помощью вырезания/вставки, все провода между двумя частями будут потеряны, и мне придется переподключить его.
,Factorio,Игры,Factorio Dev Diary
Это стало настолько раздражающим, что мне просто пришлось добавить эту функцию - сделать так, чтобы схема запоминала соединения проводов внешней цепи и пыталась переподключить их, если это возможно. Чтобы свести к минимуму проблемы, эти соединения запоминаются только при использовании инструмента вырезания, а не при переносе в библиотеку чертежей или строку экспорта чертежей.

Скорость света слишком мала. Нам нужно идти прямо на смехотворной скорости! (Рсединг)

В Factorio нет такого понятия, как «слишком быстро». Начиная с первой установленной машины, все направлено на то, чтобы сделать их быстрее. Более быстрые ленты, более быстрые устройства для вставки, более быстрые сборочные машины и скоростные модули, которые делают их еще быстрее. Но этого недостаточно. Дальше добавляете маячки с модулями скорости, а потом еще и еще.
Но этого все еще недостаточно. Этого никогда не бывает достаточно. Модификации еще больше увеличивают цифры и выходят за пределы того, с чем может справиться сам движок .
Об этом сообщалось «несколько» раз ( 69490 107571 60136 ), и каждый раз мы (я) говорили примерно одно и то же: «сумасшедшие числа дают сумасшедшие результаты», «если базовая игра не столкнется с этим, мы не хотим делать это». логика крафта более сложная/хрупкая», «только не делайте этого, 1 крафт за такт — это достаточно быстро».
Но затем случилась Space Age с ее легендарными скоростными модулями, и внезапно я столкнулся с этой проблемой базовой игры, так что мне пришлось «съесть ворону» и найти решение.

Управляйте граничные случаи, но не делайте основной случай медленнее

Концептуально это простое решение: зациклить логику крафта, если ему нужно выполнять быстрее, чем 1 крафт за такт. Но с точки зрения кода все не так просто. Годы оптимизации и функций сборки машин означали, что любые внесенные изменения имели высокую вероятность что-то сломать, если я не до конца понимал, что должна была делать каждая строка кода и что она на самом деле делала.
Примерно через два дня просмотра кода, его перестановки и написания комментариев, объясняющих отдельные части, у меня появился план, как заставить его работать. Написание окончательных изменений, чтобы все работало правильно, заняло около 1 часа и сработало правильно с первой попытки. Этого не должно было случиться, и это вызвало у меня сомнения. Спустя несколько дополнительных тестов и просьбы Боскида попытаться сломать его, это подтвердилось.
Но 2 дня анализа и понимания существующего кода принесли свои плоды!
Легендарная литейная мастерская со скоростью +2500%, выполняющая 4,33 крафта за такт.
Основная проблема была исправлена, и (насколько я могу судить) единственным ограничением скорости изготовления теперь является количество ингредиентов, имеющихся в машине, и количество свободного места в выходных слотах.
Как всегда, передавайте нам свои мысли по беспроводной сети в привычных местах:
Форум Редит
,Factorio,Игры,Factorio Dev Diary,длиннопост
Сюрприз! В дополнении 5 новых планет.
Первая планета, на которую мы прибудем, — это странная новая земля, богатая железом, медью, углем, камнем, нефтью и ураном. Все, что нужно начинающему заводу, и даже больше. Также есть вода, рыба, трава и деревья. Да, это плодородная земля где мы все будем процветать, будем править всей этой землей и назовем ее... «Эта земля» «Наувис».
' "flli			
V ж		y 1	W t
/ ШёШж.	HÉaV «j »	jLaIa,Factorio,Игры,Factorio Dev Diary,длиннопост
Так что да, новая планета Наувис похожа на версию карты 1.1, но есть несколько существенных обновлений. Надеюсь, для вас это сюрприз, ведь обновления базовой карты вообще не планировались. После получения большего опыта работы с другими планетами и ознакомления с мелочами, которых не хватает или которые не работали, становилось все труднее и труднее не удержатся от изменений и здесь.
Для ясности: эти изменения затрагивают версию 2.0 в целом, а не являются эксклюзивными для расширения.
Какое-то время для меня это был сольный побочный проект, и он только что подошел к завершению. В любом случае, вот история:

Стелс-дюны

После работы на Фульгоре пустыни Наувис выглядели уже не так хорошо. На самом деле они вообще едва ли походили на настоящую пустыню. Я знаю, что в игре «были» песчаные дюны, но они никогда не появлялись в окрестностях от меня. Это всего лишь ровный песок/грязь с большим количеством коричневой травы даже в самых засушливых местах. Поэтому я решил заняться этим вопросом и провести целое расследование.
Ранее в разработке версии 1.0 в пустынях были декоративные песчаные дюны. Видимо, интеграция с наборами плиток оказалась неудовлетворительной, поэтому их «временно» удалили. Ну, не полностью. Характерные тематические декорации все еще присутствовали в игре, но выглядели как коричневая трава, что было просто временной заменой графики. К сожалению, их так и не вернули обратно.
Я не был поклонником травянистой пустыни, поэтому поинтересовался, можно ли ее изменить, но оказалось, что это была неудобная тема, в которую никто особо не хотел вникать.
Однажды вечером я решил почистить старую декоративную графику дюн в качестве секретного побочного проекта. Я уже был знаком с этими ресурсами, потому что использовал их в моде Alien Biomes и знал, что смогу быстро сделать что-то хорошее.
В этой версии используются трюки с эффектами рельефа для лучшей интеграции с местностью. По сути, делая его намного более прозрачным, но затем добавляя чистый белый и черный цвета с низкой прозрачностью сверху, чтобы изменить яркость ландшафта внизу.
Результат выглядит хорошо на всех трех типах песка, что давало мне больше гибкости при размещении. В старых декоративных элементах использовался формат автозаполнения «пики» (в который я не буду вдаваться, но это более старая и более ограниченная система). Я заменил ее новой формулой выражения шума, адаптированной из моего кода на других планетах. Это позволяет дюнам постепенно проявляться на разных типах песка и создавать приятный эффект перехода.
Пиар (запрос на внесение изменений) для получения изменений, внесенных в основную игру, прошел успешно (и без драмы), так что мой проект по стелс-дюнам стал первым шагом на пути к изменению поколения карт Наувис.

Расследование пропажи декоративных украшений

Я начал замечать, что некоторые другие декорации, с которыми я был знаком по графическим файлам, похоже, не появлялись в мире. Просматривая правила декоративного размещения, казалось что каждый из них более или менее правильный или, по крайней мере, логичный. У них была правильная графика, они были назначены на правильную планету, а назначенные им регионы появления не имели невозможных значений, поэтому ничего что сразу бросилось бы в глаз я не увидел. Но потом я заметил кое-что еще, закономерность, набор сходств. Некоторые настройки были до неприличия похожими, а некоторые были идентичны другим декоративным элементам.
Это может показаться не таким уж большим делом, но вот в чем загвоздка. Размещение одного декора исключает размещение других декоративных элементов, которые будут размещены после него. Они блокируют друг друга. Если они пытаются разместиться в разных местах, это нормально. Если они частично перекрываются, это нормально, второй появится только там, где не появился первый. Однако если настройки идентичны, то второй декоратор никуда уже не поместится.
Так что это проблема, но и возможность.
Это отличный способ использовать навыки, полученные на других планетах, для улучшения декоративных свойств Наувис. Новая система не только может быть быстрее, но и выглядит намного лучше с точки зрения распределения и контролируемого размещения.
Я начал намечать все декоративные элементы Наувис. Есть 3 переменные оси, которые контролируют размещение: влажность, температура и доп. Aux — это переменная «типа местности», которая контролирует различия, такие как желтая пустыня Наувис и красная (почти, но все же в основном желто-коричневая) пустыня Наувис. Они контролируют широкомасштабное распределение, но есть также переменная «слой шума», которая управляет размещением и неоднородностью меньшего масштаба и похожа на 4-ю ось, но с дискретными приращениями.
Полезно отобразить это визуально, чтобы проверить наличие нежелательных перекрытий, желаемую долю пространства возможностей и т. д. Перекрытия гораздо больше, чем я ожидал. Некоторые декоративные элементы отсутствовали полностью, но диапазон более половины из них был сильно ограничен другими мешающими декоративными элементами.
Отображение 4D-состояния не так уж и плохо, я разработал несколько систем для космических исследований, которые работают с 12D-системой, так что 4D — хороший прорыв в сравнении. Я могу использовать трехмерную ось в блендере (XYZ) для отображения основных занятых объемов. Четвертая ось слоя шума — это цвет поля, что в данном случае очень удобно, поскольку слой шума дискретен и не имеет диапазона (он имеет одно значение, а не диапазон мин-макс).
Вот фиксированное распределение. Предыдущее состояние было повсюду, но у меня нет его копии (и я не хочу вводить данные, чтобы воссоздать его).
Новые объемы декоративного размещения, визуализированные в блендере.
У старой системы было дополнительное ограничение: она не могла выполнять декоративные группировки, например иметь большие варианты в середине кластера, а маленькие — дальше. Это само по себе не было настолько проблематичным, чтобы заслуживать обновления, но возможность улучшить это — еще одно побочное преимущество.
В новой системе все переназначено, чтобы все можно было разместить, но это только верхушка айсберга. Все изменилось, чтобы подчеркнуть определенные области карты. В некоторых засушливых районах больше красных растений, в других – белых. В травянистых районах есть много субрегионов с различным сочетанием растений и большей концентрацией.

Скалы Наувис

Скалы раздражают, правда? Вы думаете, что сможете избавиться от них за несколько минут, поэтому строите так, будто их вообще нет, но они есть. Идея форта на скале звучит круто. Возможно, вы даже экспериментировали с размещением турелей, защищенных скалами, но это никогда не работает так хорошо, как вы надеетесь. Большие озера являются полезными барьерами, а вот скалы — нет. Почему это?
Первая причина в том, что в скалах много щелей. Каждую брешь необходимо защищать, поэтому, если у вас есть брешь в скале через каждые 6 сегментов скалы, вам в любом случае более или менее потребуется непрерывное прикрытие турелей. Да, скала означает, что вам нужно меньше стен, но врагам нужна только одна брешь, чтобы пройти, а подстраиваться под скалу сложнее, чем под ваш удобный чертеж стен.
Вторая причина заключается в том, что скалы следуют полосами. Что это значит? Озеро — хорошее защитное препятствие. Вы, вероятно, сделали бы стены линиями между озерами, если бы они были удобно расположены. Однако скалы используют те же данные о высоте, что и озеро. Это означает, что в большинстве случаев скала — это просто дополнительное кольцо вокруг озера, и это бесполезно. Скала, параллельная озеру, в основном защищает от направления озера, но там уже есть озеро, которое справляется с этой задачей лучше (или оно защищает побережье с внутренней стороны, но это тоже не часто бывает полезно). В большинстве случаев обрыв просто мешается на пути, если вы пытаетесь построить стену между двумя озерами.
Скалы в 1.1. (Высокая скалистость, и оговорённые выше полосы).
Для Наувиса истинная цель становится ясной. Если в течении значимой часть игры мы не можем избавится от скал, то они хотя бы должны существовать наиболее полезным и наименее раздражающим способом. Эта «простая» идея в конечном итоге превратилась в капитальный ремонт поколения планет.

Горные плато

Первая попытка была основана на идее создания серии защищаемых плато. Вокруг них будут скалы, но они не будут следовать тем же линиям, что и озера. Для этого земля над водой была в основном выровнена, а затем к существующей земле отдельно добавились холмы.
Результат был лучше, чем 1,1, но все равно недостаточно хорош. Скалы не будут мешать так сильно, как в версии 1.1, но они были лишь незначительно более полезны, чем раньше. Проблема заключалась в отсутствии хорошего контроля над тем, куда ведут проломы в скалах. Слишком много промежутков в скале означает, что они бесполезны в качестве барьера против врагов, но при этом мешают строительству.
Скалы в Наувисе, попытка восстановления 1
Что действительно необходимо, так это более длинные непрерывные скалы, но в тоже время меньше раздражающих скал. К сожалению, это неразрешимый парадокс.
Давайте на мгновение отвлечемся от этого.

Точные скалы

Обычно я стараюсь не смотреть на код C++, потому что каждый раз, когда я это делаю, мне приходится начинать что-то менять… (например, механику жидкости), тогда как на самом деле мне следует сосредоточиться на других вещах. Зов скал был слишком сильным, и, прежде чем я это осознал, я переписал часть основного кода размещения скал.
Впервые это произошло, когда я работал над Фульгорой. Невозможно было сделать скалы, повторяющие замысловато расположенные края острова. Казалось, просто невозможно совместить скалы и плитки. Я обнаружил, что причина в том, что обрывы «сглаживаются».
Сглаживание — это попытка сделать скалы согласованными, даже если данные о высоте зашумлены. Это было необходимо на старом Наувисе, потому что высота иногда бывает грязной.
Сглаживание было кошмаром для планет, которым требовалось более точное размещение скал, таких как Фульгора. В Фулгоре также нет неустойчивой высоты, поэтому сглаживание не принесет никакой пользы. Моим первым изменением в коде C++ для скал было добавление способа отключения сглаживания на некоторых поверхностях. Внезапно все скалы встали на свои места. Проблема со скалами на Фульгоре мучила меня уже несколько недель, так что сказать, что это было облегчением, — ничего не сказать.

Скалы произвольной формы

Вернемся к плану для Наувиса. Я некоторое время думал о ситуации со скалой. Теперь, когда я был более знаком с основным кодом появления скал, я увидел ясный способ внести некоторые незначительные изменения, которые позволили бы скалам использовать совершенно другое выражение шума для их размещения.
Это означает, что скалы могут двигаться в направлениях, совершенно независимых от воды на планете. По умолчанию они будут использовать высоту воды, но планета может указать другую формулу, если захочет.
Слева: много скал, но ни одна из них не полезна.
Справа: меньше скал, меньше промежутков и потенциально больше пользы.
Основной план заключался в том, чтобы сделать небольшое количество длинных скал, как упоминалось ранее. Меньшее их количество означает, что они не будут так сильно мешать. Длинные сплошные скалы будут лучшим барьером против врагов, но это также лучший барьер для расширения вашей базы.
Если есть огромный утес, вы скорее будете строиться подальше от него, нежели проигнорируете утес и встроитесь в него. Больше влияя на ваше крупномасштабное здание, он меньше влияет на маленькое здание, и это гораздо меньше раздражает.
Меньшее количество скал по своей сути означает, что они также меньше мешают, но это второстепенная проблема, потому что вы всегда можете использовать элементы управления ландшафтом, чтобы повлиять на это по своему усмотрению. Форма, когда они есть, — это самое важное, что оправдывает их существование.
Формы плато, которые были раньше, все еще были хорошей отправной точкой для размещения скал. Это хорошая стартовая форма для больших плато, но ее также можно использовать для создания таких эффектов, как каньоны. Самая большая разница — это масштаб.
Отладка визуализации скальных плато. Темный – низкая область, светлый – высокая.
Это открывает еще одну прекрасную возможность. «Возвышение» скалы в этой точке полностью отделено от возвышения воды, но когда у вас есть линия скал, ведущая к воде, вы ожидаете, что береговая линия будет другой, показывая, что область над скалой будет простираться дальше в воду, поскольку эта область выше.
Вот что я сделал. Высота скалы добавляется к высоте воды. Это создает некоторые приятные особенности местности. Речные участки, ведущие к каньонам, полуостровам, прикрытыми скалами, и нескольким красивым новым островам.
Речное образование.
Образование, напоминающее каньон.

Переделка местности

Проблема в том, что добавление высоты скалы к высоте воды уменьшает количество воды. Уровень воды можно отрегулировать, чтобы добавить больше воды обратно, но в основном это затопляет районы каньонов. Это главный недостаток форм плато, окруженных более низкой сушей: если уровень воды выше, все это превращается в отдельные острова. Это не идеальный вариант для Factorio, потому что вы отрезаны от кусак и вам нужна свалка или эстакада для соединения территорий. Лучше, если большая часть земли останется подключенной.
Проблема: Плато имеют тенденцию образовывать острова.
Возможно, вы помните из FFF-390 , что у меня уже есть решение этой проблемы. Возвышение, основанное на хребте, где есть узкие полоски соединенной земли, а остальная часть - это в основном вода в несвязанных озерах. По сути, это противоположность плато. Использование такого рода шума для создания более надежных сухопутных мостов, смешивание базовой местности и последующее добавление приподнятых скал дает действительно хороший результат для игрового процесса, а также выглядит великолепно.
Но подождите, это выходит за рамки простого изменения ландшафта для улучшения скал. Это приближается к территории капитального ремонта. Если ситуация уже так сильно изменится, то давайте просто сделаем карту Наувис как можно лучше.
Вот что я сделал.
Начнем с водного слайдера. Минимальное количество воды приходится почти на всю сушу, но иногда встречаются небольшие озера, которых мало и они расположены далеко друг от друга.
С другой стороны, избыток воды приводит к появлению красивых групп островов, архипелагов.
Как только ландшафт настроен так, чтобы хорошо справляться с этими экстремальными значениями воды, он допускает некоторые макровариации, если на карте также установлены нормальные значения. При настройке «средняя вода» (по умолчанию) по мере удаления от середины поверхности земля начинает колебаться между этими крайностями, образуя массивные озера и широкие равнины. Он гораздо более разнообразен, чем раньше.
Старт в пустынях был распространенной проблемой. Я добавил дополнительный ползунок, чтобы вы могли настроить влажность стартовой области, не затрагивая остальной мир. Старт в лесу значительно проще.
Типы местности над и под скалами были немного скорректированы, поэтому иногда наблюдается небольшая разница в рельефе. Это небольшой момент, но он делает игру более трехмерной и интегрированной в мир.

Тупики

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

Лесной шум

Как и в случае с декоративными элементами, чем больше я изучал систему деревьев, тем больше проблем находил. В целом было немного лучше, потому что «большинство» деревьев были способны заспавнится, но было одно дерево, которое было полностью исключено, поскольку ему требовалась температура, которой не существовало на планете.
В клетках показаны новые объемы размещения деревьев, за исключением того, где ящик для 1 дерева возвращен на исходное место. Сможете ли вы угадать, какой это?
Подобные проблемы очень трудно предотвратить. Чтобы обнаружить многие из этих проблем, требуется огромная организованность и понимание. Даже в этом случае требуется некоторое время, чтобы составить полную картину происходящего, поэтому, когда нужно отрегулировать какую-то мелочь, например, отрегулировать шум, вызывающий температуру, трудно сказать, не сделали ли вы случайно то или иное дерево никогда не появляющимся. Если вы измените шумовой слой декоративного элемента, вы проверите его, и этот декоративный элемент выглядит нормально, но трудно сказать, что вы сделали так, чтобы какой-то другой случайный декоративный элемент никогда не появлялся. У нас есть тесты, предупреждающие о случайных изменениях, но иногда эти негативные изменения смешиваются с другими изменениями, когда ожидается, что генерация карты изменится, поэтому их не замечают.
В любом случае, как и в случае с декоративными элементами, расположение деревьев было изменено, чтобы сделать области более характерными.
Как и прежде, в засушливых районах плотность деревьев обычно ниже, а в влажных – больше, но разница более значительна и более постоянна. В пустыне с абсолютной нулевой влажностью теперь вообще нет деревьев.
Какие-нибудь из этих деревьев кажутся вам новыми?
Все это выглядит красиво, и это здорово, но на самом деле все это ради конечной цели — интеграции деревьев с другими системами для улучшения игрового процесса.

Природные тропы

Это то, что действительно связывает все воедино.
Сухопутные мосты обозначены хребтами, то есть существует непрерывная лента, определяющая высшую точку. Когда есть сухопутный мост, эта ленточная линия проходит примерно посередине полосы земли. Эти ленты представляют собой области, которые следует держать свободными, поэтому они добавляются в список путей.
Плато на самом деле используют систему, очень похожую на хребты, но она перевернутая. Ленточные линии вместо высоких точек представляют собой низкие точки, по сути, области «каньонов» между холмами. Если вы следуете по краю обрыва снизу, вы часто попадаете в эти области, поэтому важно, чтобы эти области не были заблокированы деревьями, поэтому они также добавляются в пути.
Густые леса также представляют собой проблему для передвижения, особенно если вы установите ползунок плотности деревьев на максимум и попытаетесь передвигаться по влажному участку ландшафта. В набор тропинок также добавлен дополнительный набор линий для лесных троп.
Все эти линии пути объединяются и вычитаются из расположения скал и деревьев. Результат чрезвычайно удобен и выглядит естественно. Лесные тропы являются результатом движения животных, и имеет смысл проложить их через расщелины в скалах, потому что именно там они могут пройти. Если вы идете по сухопутному мосту, то всегда есть путь через любые скалы и деревья, с которыми вы можете столкнуться.
Есть, конечно, исключения, когда вещи блокируют друг друга, но это, как правило, совпадения. Например, местность просто соединяется между двумя озерами, образуя по сути сухопутный мост, но поскольку он не был создан специальной системой сухопутных мостов, маршрут не защищен и может быть забит деревьями.
Настоящим испытанием для меня было установить максимальные настройки для деревьев и скал и попытаться перемещаться по карте на машине. И знаешь, что? На самом деле это действительно классная карта, по которой сейчас можно передвигаться.

Последние штрихи

Вот результаты:
Карта в масштабе 100%.
Карта в масштабе 50%. Примечание. При изменении масштаба изменяются размеры только элементов стиля фасада. Такие вещи, как руда, остаются на прежнем месте.
Карта в масштабе 25%.
Еще одна карта в масштабе 25%.
Элементы пейзажа
Я вложил в это много труда и тщательно тестировал его на протяжении всего процесса, и наконец оно заработало. Предстоит провести еще больше испытаний, потому что это большое изменение, и оно очень существенно влияет на всех. Чуть позже нужно будет сделать еще несколько мелких вещей, например, более неоднородные опушки леса, но это не является существенным изменением игрового процесса.
Подстраховкой для всех этих изменений является то, что новый ландшафт чрезвычайно легко настраивается. Даже если вам не нравятся какие-то настройки, карту можно легко настроить так, как вам нравится. Например, я внес некоторые дополнительные изменения в ползунок частоты обрывов, так что значение ниже 100% будет удалять обрывы из огромных областей карты.
Кроме того, если вам действительно нравится старая местность, она все еще здесь, как и опция создания карты для одного острова.
Как всегда, идите по тропам к привычным местам:
Форум Редит
,• .’++Н	!в!
Vi *wi vi vi	
■T T *Т “Г я .! .* ■■	’ü
\ ’J U J=^ • • • Äff ""	är,Factorio Dev Diary,Factorio,Игры
Привет,
не меня ли ты ищешь?

Поиск пользовательского интерфейса(Коварекс)

Когда дело доходит до пользовательского интерфейса, мы гордимся тем, что у нас есть стандартная функция поиска в каждом окне, где она хотя бы отдаленно актуальна. Все это прекрасно сочетается. Вы перестаете думать об этом и нажимаете сочетание клавиш CTRL + F для поиска всякий раз, когда что-то ищете.
Но как только мы по-настоящему к этому привыкли, нам вдруг захотелось искать даже не в каком-то окне, а просто в самой игре. В сочетании с тем фактом, что наиболее частым вопросом в многопользовательских играх был: «Эй, где нам сделать то-то?» (особенно после того, как были добавлены планеты).
Это привело нас к наиболее очевидной дополнительной функции:

Поиск по карте(Коварекс)

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

Другие доступные для поиска материалы

После поиска продукции мы добавили несколько вещей, которые оказались полезными после игрового тестирования:
- Теги карты, которые объединяются в одну группу, когда находятся поверх линии сборочных автоматов одного и того же продукта.
Остановки поездов, которые вынуждены находиться в конце списка, так как в некоторых случаях их бывает МНОГО.
Мы могли бы подумать о том, чтобы добавить больше к поиску, например, расположение логистических сундуков, содержащих какой-то предмет, но мы решили пока не лезть в эту кроличью нору. Главным образом потому, что это естественным образом привело бы к необходимости сделать все элементы в контейнерах доступными для поиска, и это стало бы кошмаром производительности, не говоря уже о возможном огромном спаме результатов поиска.
Конечно, у вас могут быть хорошие идеи относительно других вещей, которые мы могли бы сделать доступными для поиска, вы можете сообщить нам об этом!

Булавки(Коварекс)

Как мы показываем в части поиска, рядом с результатом поиска есть маленькие булавки, которые связаны с соответствующей функцией: Булавки.
Мотивация для булавок была такая: «Я на большой базе, ищу предмет и пытаюсь туда попасть. На полпути я как бы теряю свое место, и мне приходится искать его снова, чтобы не сбиться с пути». Это было неправильно. Если бы я мог как-то обозначить место, куда хочу пойти.
Итак, функция была создана, конечно это не мега нововведение, но дьявол кроется в деталях:
- Вы можете закрепить результат поиска с помощью кнопки «Закрепить», но есть также ярлык для закрепления любой позиции или объекта: по умолчанию ALT + щелчок правой кнопкой мыши.
- Каждая булавка показывает свое местоположение на экране, а когда она находится за кадром, она показывает стрелку на краю экрана с указанием расстояния до нее. Это в основном подходит для тех случаев, когда вы просто хотите бежать к месту назначения.
- Поскольку мы не ожидаем существования сумасшедшего количества меток, мы добавили список всех ваших меток прямо под мини-картой, где его можно редактировать или удалять. случаев, когда вы просто хотите бежать к месту назначения.
- Булавку можно отредактировать, изменив заголовок, а также вы можете решить, чтобы стрелка для булавки не всегда отображалась. В основном это касается случаев, когда вы используете булавку как долгосрочную закладку.
Наиболее типичное использование булавок:
- Вы просто временно закрепляете что-то (возможно, результат поиска).
- Вы закрепляете что-нибудь как напоминание о том, что хотите сделать дальше.
- Вы закрепляете свою машину или спайдертрон, чтобы найти его.
- Вы закрепляете своих друзей в многопользовательской игре, чтобы всегда знать их местоположение.- Когда вы умираете, он автоматически определяет местоположение вашего трупа, так что вы действительно можете его найти.

Но у нас есть теги и пинги, не слишком ли это?

Наличие тегов карты, пингов и булавок может показаться немного запутанным, но я по-прежнему считаю, что все они должны существовать одновременно, поскольку у них есть свои собственные варианты использования.
- Теги карты являются общими для всех на карте и предназначены для постоянного обозначения некоторой позиции.
- Когда вы умираете, он автоматически определяет местоположение вашего трупа, так что вы действительно можете его найти.
- Когда вы умираете, он автоматически определяет местоположение вашего трупа, так что вы действительно можете его найти.
- Пинги — это очень временный способ показать кому-то место в многопользовательской игре.
- Булавки уникальны для каждого игрока, и каждый игрок может выбрать то, что считает важным.

Новый графический интерфейс оповещений(Клонан)

Старая система оповещений была достаточно простой и при своей простоте достаточно функциональной.
Если вы нажмете на мигающий слот оповещения, откроется карта с «самым важным» оповещением.
Однако в отношении космической эры, как и во всем остальном, нам нужно идти дальше. Открытие карты случайной планеты при нажатии на предупреждение не так уж и полезно. Возможно, вас не волнует повреждение стен на Наувисе, но разрушение вашей космической платформы — это совсем другая история.
Теперь, когда вы нажмете на слот для оповещений, откроется новый обзор оповещений:
Список предметов разделен по планетам, и нажатие на предмет приведет вас к нужному месту на карте. Существует также кнопка для закрепления оповещения, поэтому вы можете использовать функцию «Пин», как упоминалось ранее.
Оповещения по-прежнему разделены по категориям, поэтому такие вещи, как недостающие материалы и предупреждения о повреждении, отображаются в отдельных слотах для предупреждений, как и сейчас.
Как всегда, закрепляйте свои мысли в привычных местах.
Форум Редит
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме (+1000 постов - )