Alt-F4 #3

опубликовали JD-Plays, T-A-R, RaiguardTherenas, nicgarner

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

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

Event: Molten Silicon JD-Plays

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

Что ж, у нас хорошие новости. В эти выходные у нас есть несколько друзей, которые собираются вместе, чтобы сделать что-то простое: полностью расплавить кремний нашего сервера! Присоединяйтесь к нам на мероприятие «Расплавленный кремний»( Molten Silicon), где наша единственная цель — собрать как можно больше игроков на один сервер и запустить ракету. Да, и, конечно же, расплавить ЦП сервера! Каждому игроку будет чем заняться, от строительства базы до уничтожения кусаr. Наш настоящий враг, вероятно, тоже будет всегда рядом, поэтому нам понадобитесь вы, чтобы присоединиться к нашей команде лесорубов!

Так что, если у вас есть несколько свободных часов в эти выходные, и вы хотите попытаться помочь побить предыдущий рекорд — 521  игрок одновременно, присоединяйтесь к нашему серверу в 11:00 по UTC  в эту субботу 5 сентября. Вы можете легко идентифицировать его, потому что это будет самый большой из работающих серверов!

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

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

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

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

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

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

Комбинация конвейеров, движущихся в противоположных направлениях, и пробелов на карте заставили новенького паучков неловко раздвоиться, бесконечно вытягивая ноги. Пришло время сообщить разработчикам об этих результатах свежим отчетом об ошибке 1.0. В итоге он стал одним из самых просматриваемых отчетов об ошибках, но был быстро отмечен как повторяющийся: not-a-bug. Разработчик V453000 уже ответил на один из первых отчетов об ошибке 1.0 (через 30 минут после выпуска), чтобы указать, что ограничение их передвижения нежелательно, и что наши пауки на самом деле работают нормально. Но тот факт, что мы «могли», не снимает вопроса о том, «должны ли мы»…

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

Обзор модов: Editor Extensions Raiguard

Все знают о Creative Mod. Он предоставляет вам множество различных «чит-элементов», которые вы можете использовать для тестирования своих заводских макетов. Он существует довольно давно и на протяжении многих лет хорошо служит людям.

Однако, если вы используете 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 делает это, создавая котлы, а затем заполняя их электричеством при каждом тике с помощью сценария. Однако теперь в игре есть встроенный объект, который может делать это автоматически: интерфейс электрической энергии (EEI). Эта сущность может волшебным образом производить и потреблять электроэнергию из ничего, и ее параметры настраиваются во время выполнения.

В EEI есть две вещи, которые я хотел улучшить — графический интерфейс и приоритет использования. Графический интерфейс EEI функционален, но сбивает с толку, и объекту может быть назначен только один приоритет использования. Конечно, я могу исправить первую проблему, создав собственный графический интерфейс, но вторая проблема решается несколько сложнее.

То, что вы видите как аккумулятор Infinity, на самом деле является одной из пяти возможных сущностей, каждая из которых имеет свой приоритет использования. В зависимости от того, как вы его сконфигурируете в графическом интерфейсе, небольшой скрипт выполнит горячую замену объекта на другой, который выглядит идентично, но имеет другой приоритет использования. Это позволяет одному «объекту» делать все, начиная от производства, потребления и хранения настраиваемого количества энергии (до 999 йоттаватт!).

Хранение

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

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

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

Используя сундуки Infinity и Aggregate, вы можете получить именно то поведение, которое вы хотите для тестирования своих схем.

Конвейеры

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

Чтобы решить эту проблему, я фактически использовал другой мод — Miniloader. Многие концепции разделяются между Miniloader и Infinity loader, поэтому это объяснение даст вам представление о том, как работает этот мод.

Загрузчик Infinity — это как минимум пять сущностей одновременно:

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

Когда вы размещаете бесконечный загрузчик, на самом деле вы размещаете «фиктивный комбинатор». Это постоянный комбинатор, замаскированный под загрузчик. При размещении сценарий немедленно уничтожает этот комбинатор и заменяет его невидимым. Этот комбинатор — это то, с чем вы фактически взаимодействуете, и он сохраняется в схемах, поэтому фильтры можно сохранить. Затем добавляется объект-загрузчик вместе с невидимым ящиком бесконечности и как минимум двумя невидимыми фильтр манипуляторами, скорость которых повышена до макс.

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

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

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

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

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

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

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

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

Итоги

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

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

Сотрудничество

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

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

Comments: