Оригинал статьи: https://factorio.com/blog/post/fff-393
Здравствуйте,
У меня возникло непреодолимое желание рассказать вам небольшую историю. Я уверен, что вы пришли сюда за историями, не так ли?
История
Давным-давно, в стране, где дым, загрязнение и геноцид являются нормой, жили-были разработчики. Они добавили в свою игру различные методы логистики, и эти методы не всегда гармонировали между собой.
В сообществе создавались лагеря, и иногда возникали споры. Однажды и эти разработчики высказали свою точку зрения, которую можно было назвать лишь топливом для костра. В ход пошли факелы и вилы… Были идеи, как утихомирить этот спор, но из этого мало что вышло. За исключением 96 форумных страниц споров, вместе с фильтрами и приоритетами выхода сплиттеров.
Но некоторые идеи убить сложнее, чем другие, и однажды в пятницу один из разработчиков копнул слишком глубоко. «Ради лулза и дискордных реакций!» подумал он в пылу обсуждений на FFF и погнал своего коня вперед. Безумие последовало за ним.
Наступило время ереси, Boskid сходит с ума за точкой невозврата. Это была гифка, опубликованная в Дискорде с первыми экспериментальными изменениями.
Справедливость восторжествовала, так как в ответ я дал этому благородно-безумному рыцарю основания, почему его ересь не выдерживает критики. Причины уже неоднократно обсуждались в прошлом. Хотя я также поделился своей симпатией к этому виду греха, ведь он мне тоже не раз снился.
Ужас прошел по нашему внутреннему каналу #random, и Коварекс Могучий тоже откликнулся с любопытством и интересом.
И вы знаете, как это обычно происходит. Повторение причин, по которым это не может быть сделано, заставляет вас думать, как это сделать, снова… и я действительно нашел способ, который мы не рассматривали раньше.
Святой Грааль теперь будет называться Bulk Inserter (Объёмный? Укладочный? Упаковочный? Оставим пока «Bulk-манипулятор»).

Bulk-манипулятор
Bulk-манипулятор- единственный способ загрузить конвейер сложенными предметами. Новая ключевая деталь, благодаря которой он работает, заключается в том, что Bulk-манипулятор перекладывает предметы только тогда, когда его рука заполнена. Это гарантирует, что на конвейер будут загружаться только полные стопки предметов.
Внезапно все кусочки встают на свои места:
- Манипуляторы могут помещать предметы только в пустые места на конвейере, но не в существующие стопки.
- Боковая загрузка и сплиттеры вообще не изменяют высоту стопки.
- Если с конвейером взаимодействуют только Bulk-манипулятор, то стопки будут только максимально полными.
- Если у манипулятора, берущего предметы с конвейера, рука меньше, чем размер стопки на конвейере, он возьмет только столько предметов, сколько может унести его рука, оставив неполную стопку на месте.
- Если вы хотите уложить конвейер по максимуму, вы можете поднимать и снова опускать предметы с помощью Bulk-манипулятора.
У нас появился новый тип бонуса к исследованиям — количество предметов в стопке. Изначально вместе с Bulk-манипулятором вы получаете бонус +1, а со временем дойдете до +3, что означает, что вы можете иметь максимум стопки из 4 предметов в каждой. Моды могут увеличить это число, но мы пришли к выводу, что 4 — это уже огромный бафф для конвейера, не ломающий графику.
Bulk-манипулятор имеет большую вместимость, чем Пакетный манипулятор (16 против 12), так что он явно лучше, но его использование немного сложнее в местах, где передается несколько предметов — он может застрять в ожидании «неправильного» типа предмета. Поэтому при его использовании нужно быть немного осторожным.
Вы, наверное, заметили, что руки манипуляторов отображают более одного предмета, что очень приятно, так как можно спрогнозировать, когда он повернётся. Это относится ко всем манипуляторам, а не только к Bulk-манипуляторам. Количество отображаемых предметов уменьшено вдвое, чтобы это не выглядело слишком нелепо.
Вечером того же дня мы созвонились с Boskid и Rseding, где я представил им эту идею, и они сказали, что это технически осуществимо. Boskid занялся реализацией Bulk манипуляторов, Rseding заставил буры автоматически выдавать стопки предметов, а я отправился думать над графикой.
Но как будет выглядеть Bulk-манипулятор?
После некоторых раздумий я попытался сделать более мощную руку, с большим количеством пальцев, чтобы можно было удерживать больше предметов вместе, но этого оказалось недостаточно. Графика манипулятора растягивается так сильно, что очень трудно сделать так, чтобы другая форма действительно имела значение, так что я понял, что все будет зависеть от цвета.
Как вы, наверное, знаете, мы уже используем множество цветов для инсертов. Так какой же будет следующим? Ни розовый, ни черный не подходят, а другие цвета кажутся слишком похожими на те, что у нас уже есть.

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

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

Все, что оставалось для графики, — это иконки для технологии.
Для программирования нужно было сделать так, чтобы сложенные элементы рисовались правильно, а это легче сказать, чем сделать. У меня было два основных условия, как это должно выглядеть. Более простым было то, что предметы, расположенные глубже в стопке, должны выглядеть темнее. Posila — один из тех, кто потерял половину своих волос, сортируя отрисовку сложенных предметов по слоям, но с помощью своей темной магии и жертвования волосами он снова одержал победу.
Ускоренный конвейер
Когда мы начали работу над Space Age, одной из очевидных вещей, которые необходимо было добавить, был новый более быстрый конвейер.
Основная причина, по которой мы никогда не добавляли конвейер быстрее экспресс-конвейера, заключалась в том, что он просто начинает выглядеть слишком быстро, а движение ленты становится довольно странным или даже выглядит так, будто предметы движутся в обратном направлении.
Графика — это нечто большее, чем простое перекрашивание. На пустой ленте новые конвейеры имеют вдвое большее расстояние между стрелками, чем экспресс или быстрые конвейеры, а также небольшие штрихи вроде темных стрелок, которые помогают увидеть правильное движение ремня.
Подземные конвейеры этого уровня могут проходить на 2 тайла дальше, чем экспресс-конвейеры, что очень удобно во многих местах.
Когда лента полная, при их скорости в 60 предметов/секунду становится очень трудно понять, движутся они или нет. Мы заметили, что у предметов со случайными иконками, таких как сырая руда, этой проблемы нет. После недолгих размышлений у Hrusa возникла идея рандомизировать цвета предметов на ремнях. С первого взгляда вы не заметите этого эффекта, но он очень помогает увидеть движение.
Заключение
Мы давно хотели увеличить пропускную способность конвейеров, и «Качество» увеличило это желание в 6,25 раза (машины могут работать в 2,5 раза быстрее * скорость модулей может увеличиться в 2,5 раза). Не говоря уже о том, что некоторые производства Space Age создают предметы гораздо быстрее, чем сборочные автоматы.
Какое-то время мы ограничивали наши надежды, просто добавив более быстрые конвейеры, но мы знали, что в идеале нам нужно что-то большее, и укладка конвейеров всегда была идеальным кандидатом, просто мы не видели способа, как это реализовать.
Одним из наших опасений было то, что если пропускная способность транспортного пояса увеличится в несколько раз, вам никогда не понадобится использовать более 1-2 лент почти для любого предмета, что значительно снизит сложность логистики. С добавлением планет в Space Age мы теперь можем легко заблокировать вещи, находящиеся довольно далеко в технологическом древе, что касается как Bulk-манипулятора, так и более быстрых конвейеров, причем каждый из них может быть разблокирован на отдельной планете.
Кроме того, мы всегда не решались добавлять больше сущностей, но теперь Space Age добавляет их довольно много, и еще один уровень манипулятора не так уж и много, особенно если учесть, что мы в свою очередь убрали 2 фильтрующих манипулятора
Люди, создающие фабрики, оптимизированные для работы с UPS (обновлениями в секунду), в конце концов придумали использовать логистическую сеть, чтобы заставить манипуляторов заполнять руку перед взмахом. Этот новый тип манипуляторов теперь может делать это из коробки, что дает небольшую оптимизацию производительности.
Возможно, это моя личная страсть, но я также считаю, что предметы друг на друге выглядят абсолютно безумно в хорошем смысле этого слова. Очевидно, что некоторые предметы выглядят более странно, чем другие, и мы можем подумать о том, чтобы что-то с этим сделать, если у нас будет время, но главное, что функция работает, и с ней очень весело играть.
В итоге наша давняя мечта о стопках предметов на конвейерах наконец-то стала реальностью, и конвейеры с дронами жили долго и счастливо.
Comments: