Alt-F4 #3 - Tronparty  04-09-2020

Написали JD-Plays, T-A-R, Raiguard, отредактировали Therenas, nicgarner,
перевели pocarski

Содержание

Добро пожаловать в третье издание Alt-F4. На этих выходных будет попытка побить рекорд амого большого числа игроков на одном сервере Factorio; читайте дальше о том, как присоединиться. Ещё здесь есть прямой репортаж о вечеринке Big Community Games, о которой стоило бы рассказать на прошлой неделе. Полностью виноват Therenas. И наконец, Raiguard делится с нами своим восхитительным модом. Поехали!

PS: Мы ищем мотивированных людей, готовых помочь нам перевести каждое издание Alt-F4. Если заинтересованы, то можете узнать больше в конце издания. Спасибо!

Событие: Жидкий Кремний JD-Plays

Выходные здесь, какие планы? Опять поиграете в Factorio 25 минут, а потом поймёте, что уже рассвет? Или хотите просто поиграть с друзьями?

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

Так что если у вас есть пара свободных часов на этих выходных, и вы хотите помочь побить предыдущийрекорд (521 игроководновременно), присоединяйтесь к нам в 2 часа дня по Москве в субботу 5сентября. Найти сервер будет легко, потому что он будет самым большим!

Обратный отсчёт истёк

Информация о сервере появится незадолго до начала в канале #information Дискорда Red Circuit. Для более общей информации, посетите наш сайт.

Не ломайте новые игрушки T-A-R

Первый Alt-F4 был приятным сюрпризом когда мой упрямый мозг зашёл на factorio.com в пятницу 21 августа, зная, что меня там не будет ждать свежий 361-ый FFF. Я решил поддержать инициативу, и лучший способ это сделать был действовать быстро. Так что вот полевой репортаж об одном из свежих “точно-не-багов” в 1.0.

Вторая вещь после официальной вечеринки в Праге - старый добрый мультиплеер. Множество вечеринок появились в списке серверов в ту пятницу, все со свежими картами и инженерами со всего мира, объединяющимися для застилания мира бетоном. Дискорд Big Community Games разогнался больше всех и достиг 201 игрока, что хорошо, потому что нужна солидная фабрика, чтобы съесть всю науку, нужную для лучшего добавления в 1.0. (Подсказка: это паук!)

Благословлённый богатыми месторождениями и изобретательными пометками на карте (описывающими цвета команд и их должности), сервер начался как перевозбуждённый муравейник с инстинктом строить металлургические цеха. Послание на карте около спавна сделало прекрасную работу по организации растущей группы инженеров. Очень быстро рядом с научной фабрикой была построена другая, изолированная фабрика, чтобы кормить военно-промышленный комплекс. Это дало и солдатам, и строителям стабильное снабжение для защиты и роста базы.

И база росла. Через 11 часов уже была не только ракета, но и 20 пауков, полный завал оборудованием и бронёй и тонны пуль и взрывчатки. К тому времени уже окрестили Залив Bilka, Италию и Озеро Twinsen, судя по маркерам, оставленными ветеранами на карте.

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

Сочетание конвейеров в разных направлениях и дырок в карте заставило ноги пауков разъехаться в стороны и растянуться до бесконечности. Самое время сообщить разработчикам о свежем баге. Это оказался самый просмотренный баг на форуме, но был быстро помечен как дубликат: не баг. Разработчик V453000 уже отреагировал на один из первых багов 1.0 (30 минут после выпуска) чтобы сказать, что ограничивать их движение нежелательно, и что наши пауки вели себя по плану. Тем не менее, просто потому что мы “можем” не убирает вопрос, “должны” ли мы…

В конце концов сервер был отличный, и мы истинно полюбили паука. Он теперь один из нас.

Мод недели: Editor Extensions Raiguard

Все знают про Creative Mod. Он даёт игроку разнообразие ‘читерских’ предметов, предназначеных для тестирования фабрик. Он существует уже достаточно долго, и хорошо служил людям все эти годы.

Тем не менее, если вы используете Creative Mod некоторое время, вы станете замечать лаги то тут, то там. Используйте его дольше и дольше, и лаги тоже будут чаще. Рано или поздно ваша игра начнёт тормозить, в то время как вы используете больше и больше инструментов мода.

Полтора года назад мой мир начал лагать. Я тогда едва только выпустил мой первый мод, так что у меня было немного опыта с API. Из любопытства я углубился в код Creative Mod и попытался понять, что не так.

Результат: Creative Mod очень качественно сделан… для своего времени. Мод существует с версии 0.13, когда API был гораздо более ограничен. То есть, мод достигал всего, что делал, с помощью крайне малого набора инструментов. Но теперь API более зрелый и гораздо способнее. Я решил выпустить обновление Creative Mod, которое бы использовало эти новые возможности, тем самым увеличивая производительность.

Но я в скором времени понял, что обновлять Creative Mod непрактично. Для этого нужно было бы слишком много фундаментальных изменений, так что вместо этого я решил сделать полностью новый мод. Этот мод был изначально выпущен как Infinity Mode, но позже был заменён на Editor Extensions по множеству причин.

Editor Extensions не заменяет игровой редактор карт, как Creative Mod и Infinity Mode, но всместо этого дополняет его. Таким образом, EE не имеет “окна читов” как Creative Mod и Infinity Mode. Весь этот фунционал — и не только — зарыт среди его множества меню.

Главный плюс Editor Extensions - это его производительность; она на несколько порядков лучше чем у Creative Mod. Я пройдусь по некоторым методам, с помощью которых я этого достиг.

Электричество

Моей первой целью было создание источников и поглотителей электроэнергии. Creative Mod делает это путём создания бойлеров, которые заполняются электричеством каждый шаг при помощи специального кода. Но у игры теперь есть встроенное устройство, которое может делать то же самое автоматически: Интерфейс Электроэнергии (ИЭ). Это устройство может волшебным образом производить и поглощать электричество, и его параметры можно менять в процессе работы.

Я хотел улучшить 2 параметра ИЭ: панель управления и приоритет использования. Панель управления ИЭ работает, но неудобна, и устройству может быть присвоен только один приоритет использования. Конечно, первая проблема решается новой панелью управления, но вторую решить несколько сложнее.

То, что вы видите как бесконечный аккумулятор - на самом деле одно из пяти возможных устройств, каждое со своим приоритетом использования. В зависимости от настроек, маленький код заменит устройство на другое, внешне неотличимое, но с другим приоритетом использования. Это позволяет одному “устройству” производить, потреблять и хранить настраиваемое количество энергии (аж до 999 йоттаватт!).

Сундуки

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

В версии 0.16, в игру добавили бесконечный сундук, который может делать всё то же самое плюс ещё немного. Он имеет бесконечные фильтры, у которых есть режимы “не меньше”, “не больше” и “ровно”. Это сгружает всю манипуляцию предметами на саму игру, полностью уничтожая необходимость внешнего кода!

EE дополняет базовый бесконечный сундук, добавляя логистические варианты и особый вид бесконечного сундука под названием совокупный сундук. Совокупный сундук содержит по одному стаку каждого предмета в игре. Маленький код выставляет его фильтры при построении, а со всем остальным разбирается игра. Также существуют логистические варианты этого сундука.

При помощи бесконечных и совокупных сундуков, вы можете достичь ровно тех условий, которые нужны вам для тестирования.

Конвейеры

Часто вам нужно быстро и легко заполнить или опустошить конвеер для тестирования. В базовой игре это делается при помощи бесконечного сундука и погрузчика (спрятанное устройство, доступное через редактор карт). Но эти погрузчики достаточно просты, и если вам нужны разные предметы на разных сторонах конвейера, приходится строить два погрузчика и два бесконечных сундука. Это четыре устройства, а потом ещё нужно настраивать сундуки.

Чтобы это решить, я отталкивался от другого мода: Miniloader. Очень много идей для бесконечного погрузчика взяты из мода Miniloader, так что это объяснение даст вам взглянуть и на тот мод тоже.

Бесконечный погрузчик - на самом деле как минимум пять устройств одновременно:

Слева направо: сам погрузчик, бесконечный сундук, два фильтрованных пакетных манипулятора и постоянный комбинатор. Всё это играет роль в работе бесконечного погрузчика.

Когда вы строите бесконечный погрузчик, на самом деле вы строите “фальшивый комбинатор”. Это постоянный комбинатор, который выглядит как погрузчик. Внешний код тут же уничтожает комбинатор и заменяет его на другой, невидимый, комбинатор. Этот комбинатор - это то, с чем вы взаимодействуете, и он сохраняется в чертежах, чтобы фильтры не сбивались. Затем добавляется погрузчик и невидимый бесконечный сундук и как минимум два фильтрованных пакетных манипулятора с максимальной скоростью.

Когда вы настраиваете фильтры бесконечного погрузчика, вы на самом деле настраиваете фильтры на манипуляторах и бесконечном сундуке. Манипуляторы будут брать из сундуков и очень быстро класть на конвейеры, а вы будете думать, что предметы материализуются из воздуха.

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

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

В результате получается удобное, лёгкое в использовании устройство которое может производить и уничтожать предметы на конвейере, почти не влияя на производительность.

Читы персонажа

В то время как Editor Extensions в основном предназначен для использования в редакторе карт, его можно использовать и в обычной игре. Используя режим читов (включается если набрать /cheat или /cheat all в консоли), можно получить доступ ко всему описанному выше.

Инструменты, о которых я не упомянул, включают супер-оборудование:

С его помощью можно стать неуязвимым, получить суперскорость и ясно видеть в темноте. Супер-робопорт вместе с роботами-суперстроителями позволяет очень быстро сооружать и сносить. Можно получить большинство сверхспособностей редактора, оставаясь в своём удобном теле. А если вы решите убрать мод из игры, оборудование просто исчезнет, и единственным следом мода будет бесконечное дотягивание.

Заключение

Editor Extensions - результат более чем года тестирования построек в игре и модов. Есть много, много вещей, о которых я здесь не рассказал, включая возможность привязать переключение редактора к клавише, синхронизацию инвентарей, бесконечные трубы и специальный сценарий для тестирования, но это сделает статью ещё длиннее, чем она уже есть. Я надеюсь, что вам было интересно, и что вы взглянули на то, как работает API для модов Factorio.

Разработчики балуют нас тем, что можно сделать с их игрой, и API становится всё способнее с каждым обновлением. Спасибо за чтение, и спасибо разработчикам за эту возможность!

Участие

Мы всегда ищем людей, которые хотят поделиться с сообществом Factorio чем-нибудь интересным. Если это вы, то заходите к нам в Дискорд (или проект GitHub), чтобы начать. Почти любая тема годится, так что бояться нечего!

Ещё мы собираемся начать общественные переводы на этой неделе, что сделает Alt-F4 доступным гораздо большей публике, чем только английская версия. Мы уже подготовили к этому сайт, так что всё, что нам нужно - это переводчики. Если вы не против, заходите на наш Дискорд и ищите канал #translation.