Factorio is a very deep game, and the scale is gradually expanding. New challenges require a change of approach and an update of the technologies used
Создатели Factorio снова вышли на связь. На этот раз дневник посвящён техническому вопросу, рассматривается генерация мира (карт).
Сейчас ведётся работа над Factorio Space Age, предстоит отправиться к звёздам. Это подразумевает исследование новых миров и надо обеспечить разнообразие. До присоединения к студии разработчик работал над модом Space Exploration. Тогда перед ним стоял вопрос, какой подход использовать для создания планет: сделать даже одну новую — это огромный объём работы, поэтому приступая к созданию 14+ новых типов разработчик решил инвестировать в создание инструментов, которые могли бы упростить процесс.
Задачу удалось успешно выполнить, также был реализован визуализатор noise-выражений, используемых при создании карт («шум» здесь не про звук, а случайные числа — помогает обеспечить плавные переходы и т.п.). Организован предварительный просмотр карты, позволяющий проконтролировать изменения, оценить качество перехода между биомами и т.п.
Свой опыт и инструменты он перетащил в студию создателей Factorio. По оценке разработчика, его инструменты помогут ускорить работу с планетами для Factorio Space Age примерно в 10 раз.
Он также отметил, что с нуля было переписано около 90% движка noise-выражений. Теперь с системой удобнее работать, можно легко добавить новые типы noise-выражений и её можно рассматривать как «прочную основу», которую можно было бы повторно использовать в других проектах, если бы захотелось.
Приводит некоторые цифры, например с момента создания прототипа первого поколения Vulcanus прошло несколько итерацией, вместе со всеми оптимизациями и улучшениями в С++ то, что занимало 18.35 мс / чанк («кусочек»), теперь занимает 2.83 мс.
№1 обычный вид Nauvis; №2 вид с высотами: синим обозначена высота ниже нуля (чем темнее, тем глубже), жёлтым «высоко», а зелёным «очень высоко».
Поставили ёлочку в Factorio.