Factorio Игры mlp art Factorio Dev Diary удалённое my little pony фэндомы
если нас читают любители автоспорта, то вам повезло.
Сеть радиолокационной передачи (Коварекс)
Иногда может быть полезно отправлять сигналы цепи на большие расстояния. Лично я никогда не использовал его ни для чего, но когда мы некоторое время назад тестировали игру, Боскид настоял на том, чтобы мы включили провода в наши чертежи рельсов, потому что никогда не знаешь, когда это может пригодиться.
Я чувствовал себя неловко по этому поводу, потому что это противоречит принципу кодирования «пишите, когда вам это нужно», поскольку добавляет раздувание чего-то, что может даже не пригодиться позже. Но я понимаю, что если это действительно понадобится, потом исправить это будет гораздо сложнее.
Вот так выглядела наша железнодорожная система «на всякий случай».
Спадание проводов (Коварекс)
Поскольку все улучшения в сети побудили меня использовать ее чаще, меня все больше и больше раздражала эта проблема:
Я хочу переместить нижний набор комбинаторов, но если я сделаю это с помощью вырезания/вставки, все провода между двумя частями будут потеряны, и мне придется переподключить его.Скорость света слишком мала. Нам нужно идти прямо на смехотворной скорости! (Рсединг)
В Factorio нет такого понятия, как «слишком быстро». Начиная с первой установленной машины, все направлено на то, чтобы сделать их быстрее. Более быстрые ленты, более быстрые устройства для вставки, более быстрые сборочные машины и скоростные модули, которые делают их еще быстрее. Но этого недостаточно. Дальше добавляете маячки с модулями скорости, а потом еще и еще.
Но этого все еще недостаточно. Этого никогда не бывает достаточно. Модификации еще больше увеличивают цифры и выходят за пределы того, с чем может справиться сам движок .
Об этом сообщалось «несколько» раз ( 69490 107571 60136 ), и каждый раз мы (я) говорили примерно одно и то же: «сумасшедшие числа дают сумасшедшие результаты», «если базовая игра не столкнется с этим, мы не хотим делать это». логика крафта более сложная/хрупкая», «только не делайте этого, 1 крафт за такт — это достаточно быстро».
Но затем случилась Space Age с ее легендарными скоростными модулями, и внезапно я столкнулся с этой проблемой базовой игры, так что мне пришлось «съесть ворону» и найти решение.
Управляйте граничные случаи, но не делайте основной случай медленнее
Концептуально это простое решение: зациклить логику крафта, если ему нужно выполнять быстрее, чем 1 крафт за такт. Но с точки зрения кода все не так просто. Годы оптимизации и функций сборки машин означали, что любые внесенные изменения имели высокую вероятность что-то сломать, если я не до конца понимал, что должна была делать каждая строка кода и что она на самом деле делала.
Примерно через два дня просмотра кода, его перестановки и написания комментариев, объясняющих отдельные части, у меня появился план, как заставить его работать. Написание окончательных изменений, чтобы все работало правильно, заняло около 1 часа и сработало правильно с первой попытки. Этого не должно было случиться, и это вызвало у меня сомнения. Спустя несколько дополнительных тестов и просьбы Боскида попытаться сломать его, это подтвердилось.
Но 2 дня анализа и понимания существующего кода принесли свои плоды!
Легендарная литейная мастерская со скоростью +2500%, выполняющая 4,33 крафта за такт.