Инфо HiTech - Applied Energistics 2 или головная боль для новичков и администраторов

Тема в разделе "Обучение, гайды, полезные статьи", создана пользователем Dertiende, 3.01.2021.

Статус темы:
Закрыта.
  1. Dertiende

    Dertiende Новичок

    Сообщения:
    3
    Симпатии:
    2
    Баллы:
    3
    Всем привет. В этой статье я постараюсь объяснить принципы работы и некоторые особенности мода Applied Energistics 2.
    Допускаю, что я могу слишком сгущать краски, но за свою небольшую игровую деятельность мне несколько раз приходилось объяснять игрокам, что как работает, и почему лучше так, а не иначе.
    Этот мод отличается от базовых механик minecraft. Все ведь привыкли к механизмам по типу положил предмет - забрал результат.
    Начнём с того, с чего надо было бы начать в вики в описании этого мода.
    Applied Energistics - по своей сути - симулятор компьютера.
    Основные комплектующие слева направо:
    Может подключаться к различным механизмам, с любой стороны, поддерживающей ввод\вывод.
    Также может использоваться без механизма:
    как порт ввода в МЭ систему, если подсоединить к нему трубу на ввод
    как порт вывода из МЭ системы, если подсоединить к нему трубу на вывод и положить предмет во внутреннем меню (в квадрате со стрелкой)
    2021-01-03_00.07.36.png
    Используется для реализации функций автокрафта. А именно - хранит память обо всех составных частях предмета. Чем сложнее рецепт, тем больше требуется памяти на его обработку, поэтому таких блоков может быть несколько​
    Вторая часть так называемого ядра. Назначение данного блока достаточно туманно описывается в различных источниках. НО если говорить простыми словами - это многопоток. Чем больше таких блоков в одном ядре, тем больше потоковых операций автокрафта оно может выполнять одновременно. Т.е. одновременно измельчать уголь, крафтить стекло, плавить сталь, прессовать уран... И отсюда вытекает ещё один немаловажный факт: если у ядра много потоков, то ему не надо тратить время на переключения между различными задачами, они выполняются одновременно, что повышает скорость самих операций. Для понимания привожу простой пример: электропечь из IC2 с 17 ускорителями изначально плавит предметы быстрее, чем их передаёт ей интерфейс, в результате она простаивает какое-то время, из-за чего ощутимо теряется скорость работы. Установка данных блоков позволяет загрузить её. (тут есть такая оговорка, что на серверах максимальная скорость обработки изначально ограничена в конфиге мода, поэтому впечатляющих результатов можно и не достичь)​
    Этот блок вопреки распространённому мнению не является обязательным в МЭ системе, однако он реализует важнейшую фукнцию - USB хаба.
    Вы подаёте на него питание, и он позволяет вам подключать по 32 порта с каждой стороны +его можно расширять.
    При построении первой системы вполне можно обойтись без него​
    Собственно говоря - запитывает систему. Аналогичная функция есть у МЭ контроллера, поэтому на поздних этапах игры данный блок убирают за отсутствием необходимости.​
    Для того, чтобы хранить предметы в цифровом виде нужна память. А для того, чтобы хранить память, нужен этот блок. Такой вот дисковод.​
    2021-01-02_23.55.26.png
    Кабелей в моде AE2 всего 4 типа: стеклянный, закрытый, умный и плотный. Разбирать их особо смысла нет, но есть некоторые особенности.
    Первая особенность:
    Все кабели, кроме плотного, проводят энергию и 8 каналов для подключения устройств. Это в теории означает, что для построения малых систем нет никакой необходимости использовать умные кабели, достаточно будет стеклянных. Получается неплохая экономия ресурсов.​
    Вторая особенность:
    Все кабели, кроме закрытого, так или иначе отображают серверу свою активность. Т.е. сильно нагружают его своими постоянными обновлениями. Поэтому для больших и сложных систем я крайне не рекомендую использовать кабели из этого мода, кроме закрытого.
    32 канальный кабель можно заменить плотным кабелем из EnderIO, который по некоторым подсчётам обойдется вам дешевле.​
    Если после этого, к вам пришло понимание то, как устроена МЭ система, то все остальные её возможности вы без особого труда сможете понять из различных гайдов.

    Следующий блок данной статьи будет посвящен оптимизации уже существующих сетей и больше подойдёт для продвинутых пользователей. которые знают как это работает и имеют некоторый опыт в построении подобных систем.
    Думаю, если не первый раз на технологическом сервере, то вас тоже смущает, что при телепортации на очередной магазин счётчик фпс проседает на 30-40, а иногда и 100 единиц.
    Всему виной банальная перегруженность таких магазинов различными механизмами из AE2. С этим сейчас и будем разбираться.
    Итак, у вас есть много ресурсов, есть свободная территория, свой варп и желание заработать. Тогда вам, как продавцу необходимо:
    а) постоянно пополнять товары в магазине, желательно автоматически
    б) максимально увеличить число покупателей, т.е. людей, которых устроит ваша цена, устройство вашего магазина, и при этом у них не будет крашится игра, когда они телепортируются к вам.​
    Первый пункт достаточно легко решается установкой AE автоматизации.
    Как быть со вторым?

    Рассмотрим три особенности построения магазинов
    Чаще всего это последнее, что заботит нерадивых продавцов, а между тем штука весьма полезная и не сложная.
    При построении мы будем стремимся к максимальному отказу от шин и кабелей из AE. Как было описано выше, кабели из этого мода, кроме закрытого, сильно грузят сервер, и их концентрация в малых площадях магазина заставят игроков проклянуть вас за ужасные просадки.
    Я предлагаю следующую конструкцию:
    Мы будем передавать предметы в сундуки не через шины, а через МЭ Интерфейс, для этого подключаем его к материнской системе, в имеющиеся 9 слотов ставим нужные нам предметы, на выводе подключаем одну трубу, и подключаем её к 9 сундукам, ставя на входе предметный фильтр.
    Экономим кучу каналов, 9 шин с каждого интерфейса и время инпутлага, необходимое для инициализации каждой шины при прогрузке чанка.

    Для сохранения информативности, к сундукам подключаем шины хранения и мониторы. Всё это объединяем в отдельную МЭ систему закрытыми кабелями.
    Как итог экономим ещё немного кабеля, попутно сохраняя функционал перегруженных магазинов.
    2021-01-03_15.13.08.png
    Самый короткий, но тем не менее важный пункт. В магазинах категорически нельзя использовать любые кабели из AE, кроме закрытого.
    Как уже неоднократно писал выше, вместо 32 канального отлично подойдет плотный кабель из EnderIO. Данный кабель имеет важный плюс, он может быть уложен вместе с другими трубами EnderIO, что в некоторых ситуациях существенно сэкономит вам место.​
    В моём трёхэтажном магазине всё красиво, всё сверкает, подсоединил как надо, но фэпээсу кушает все равно сильно...
    В статье HiTech - базовые особенности развития я немного уже написал о чанках.
    Смысл проблемы в описанном выше случае в том, что три этажа это один чанк, соответственно нагрузка на него в три раза больше , чем хотелось бы.
    Поэтому ещё одно важное правило: никаких этажей в магазинах.

    Если мы воспользуемся математикой, то получим такую вот линейную зависимость -> чем больше товаров в чанке, тем меньше фпс.
    Ставить по одному товару на чанк идея бредовая. А чем больше, тем хуже для граждан.
    Ситуация безвыходная, но магазин делать надо.
    Поэтому:
    1. Магазин делим на блоки по интересам по модам или другим группам. Это обеспечит необходимую плотность, в то же время она не будет слишком высокой.
    2. Каждый блок должен располагаться минимум на 2, максимум на 4 чанках. Тут всё зависит от того, сколько вы готовы выделить территории для магазина. Ставить блоки в один чанк тоже допускается, но при условии, что у вас достаточно мало товаров и они умещаются в один ряд в круг внутри чанка.
    3. Надо как-то перемещать людей между блоками, поэтому используем различные якори, телепортеры...​
    Если говорить об оптимизации, то можно смело утверждать, что здесь всё так же, как и с магазинами, поэтому дублироваться не буду.
    В этом пункте будет несколько особенностей работы самого мода, и как это все использовать.
    Многие считают это чем-то святым, и как только руки доходят до МЭ системы, все процессы взаимодействия МЭ и мира начинают обслуживаться шинами.
    Кто читал пункты про оптимизацию, заметил, что мы по максимуму избавлялись от шин. Всё это, конечно, не просто так. Шины, как и кабели, расходуют энергию бытия, т.е. ресурсы сервера, причем из заметных плюсов у них только большая максимальная скорость. Именно максимальная, т.к. не все замечают, но скорость шины зависит от плотности траффика, через неё проходящего. Если вы ставите шину на генератор булыжника, который выдаёт максимум 64 единицы того самого в секунду, то очевидно, что любая продвинутая предметная труба, справится с такой нагрузкой, при этом затратив гораздо меньше серверного времени на различные просчёты.
    Итак:
    Жизненно важно получить высокую пропускную способность, а канал постоянно загружен (одна шина с ускорителями имеет пропускную способность порядка 2-3 стаков за раз, на каждом сервере параметр может отличаться, поэтому значения разные бывают)
    Лично я знаю только одно разумное применение шин: это генераторы булыжника и его обработка в промышленных масштабах. Например для утиля.​

    Во всех остальных случаях разумней будет поставить предметные трубы с необходимыми фильтрами и улучшениями.

    Ещё один важный момент, если шины экспорта работают практически идеально, я лично не замечал сбоев, то шины импорта вынуждены сканировать прикреплённые инвентари, и тут начинаются мелкие нюансы: граница чанка, ошибки сканирования и прочее. В результате шина либо вообще отказывается работать, либо не всегда прогружается. Поэтому лично у меня импорт только через трубы.​
    Практика показывает, что RGB подсветка данных блоков оказывает некоторое влияние на игроков, и они устанавливают контроллеры в максимальном количестве. которое доступно со всеми ограничениями.
    Но опять к оптимизации... Та самая красивая подсветка также нагружает сервер, и чем больше у вас таких блоков, тем ниже фпс поблизости. Кто -то невероятно осведомлённый может заметить, что нагрузка на сервер влияет не на фэпээсы, а на тэпээсы. Но это та самая нагрузка на сервер, которая влияет и на фпс тоже. Все дело в увеличении вызовов на отрисовку, или проще говоря сервер просит видеокарту нарисовать этот блок очень красиво, так сказать в высоком разрешении. А так как строение блока сложное, то рисоваться он будет несколькими частями. и так для каждого "красивого" блока из AE мода.

    Поэтому контроллеры следует использовать именно тогда, когда вам нужны дополнительные каналы для новых устройств. Обычно 7-8 хватает для базовых систем.
    Самое большое, что я лично использовал, когда ещё не думал об оптимизации - 20, дело было на skytech, куча руды, куча сортировщиков и прочего хлама, не нужного для обычного сервера.
    P.S. Небольшая история, касаемо той системы. Однажды мне понадобилась помощь модератора, он телепортировался к моей МЭ системе и у него крашнулась игра... Сосмыслом, как говорится.​
    Обычно как выстраивается взаимодействие с МЭ системой? Получаем слитки отсюда, потом они измельчаются, возвращаем их в МЭ, и потом отправляем на переплавку.
    В результате имеем нервный тик от постоянного мелькания единичных ресурсов в системе, что сбивает положение рецептов автокрафта и всего остального, что в системе находится в малых количествах. Если кто опытный и умеет попадать по предмету, которого в наличии одна штука, при такой скорости обновления его положения в таблице, не вводя его название в поиск - ставим лайк.
    Как и все прочее, это тоже вызывает проблемы с производительностью, да и вообще не круто, поэтому технологические цепочки обработки необходимо выстраивать напрямую между механизмами.​
    На этом пока всё.
     
    LaGGGeRFeed нравится это.
Статус темы:
Закрыта.