Как сделать пластик в satisfactory

Satisfactory пластик как сделать

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

Это означает, что серверу нужно в реальном времени обрабатывать данные обо всех объектах на заводе. То, с чем пришлось разбираться в Coffee Stain — это уникальная ситуация, с которой вряд ли сталкивались разработчики типового многопользовательского шутера.

В своём блоге на Gamasutra сетевой программист Coffee Stain Гафхар Даваллиус рассказал о том, как в студии оптимизировали сетевой код игры. Мы выбрали главное из материала.

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

Первый — это полная синхронизация карты между всеми игровыми клиентами. В таком случае на компьютерах игроков бы воспроизводилась локальная симуляция. Так поведение всех объектов было бы на 100% предсказуемым — а вся информация бы обновлялась только тогда, когда происходят непредвиденные явления (например, действия игрока).

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

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

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

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

Поэтому, после выбора модели неткода, перед разработчиками встали следующие задачи.

Также создателям нужно было разработать систему, которая бы вычленяла важную информацию отдельно для каждого игрока. Если бы эти задачи не были решены корректно, то клиенты бы недополучали пакеты с данными, а также испытывали задержку — гораздо большую, чем пинг.

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

На двух примерах Даваллиус объяснил, что сделали в Coffee Stain. В первую очередь разработчики переработали систему инвентаря. В Satisfactory помимо игрока предметы могут хранить контейнеры и некоторые объекты фабрики: информация о них обновляется в реальном времени, так как все ресурсы поступают напрямую в хранилища.

Чтобы снизить нагрузку на клиенты, авторы сделали так, чтобы у игрока не обновлялись данные инвентарей, которые он не видит в текущий момент времени. Благодаря этому перестал перегружаться процессор — ему больше не нужно было обрабатывать вообще все изменения.

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

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

Здесь разработчикам помогло то, что лишь небольшое количество информации сложно предсказать заранее. Чтобы обновлять данные о предметах на транспортной ленте, создатели применили метод дельта-кодирования. Простыми словами, на сервер отправляется не вся информация целиком, а лишь разница между нынешним и прошлым состоянием клиента.

Например — вместо того, чтобы отсылать данные про все 25 предметов на конвейере, мы отправляем лишь сведения о двух новых предметах, которые на нём появились, и об одном, который с него сошёл. То есть, мы используем только 12% всей информации.

Кроме того, игра не воссоздаёт движение всех ресурсов на транспортной ленте, а лишь симулирует его в каждом из клиентов — благодаря знанию позиции каждого из них.

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

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

Сейчас в сравнении с релизной версией в сетевом коде Satisfactory многое изменилось. К примеру, на том же конвейере обновления стали посылаться не двадцать раз в секунду, а всего лишь три. Пакеты с информацией отправляются реже, а данных в них теперь больше. Несмотря на то, что у транспортных лент появилась задержка (и то заметная лишь на аппаратном уровне), потеря сведений свелась к минимуму.

Также появилась неточность в расположении предметов на конвейере — однако это удалось устранить благодаря системе, которая предсказывает их позицию согласно уже известным паттернам.

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

Как настроить дозагрузку
контента для тяжёлой игры

Комментарий удален по просьбе пользователя

Да, лучше почитать дневники разрабов Factorio

Комментарий удален по просьбе пользователя

попить с этими чешскими чуваками баварского пива в Варшаве

Комментарий удален по просьбе пользователя

Адресок подскажи, а то в сл. месяце как раз там буду.

Комментарий удален по просьбе пользователя

А еще у них самая вкусная рулька.

Благодарю. Обязательно зайду.

Вельвет наливают в каждом втором приличном пабе европы.

Комментарий удален по просьбе пользователя

Просто пиво на азоте?

Комментарий удален по просьбе пользователя ред.

Описание алгоритмов дано, дальше уже реализация, которая никому и не нужна.

Дельта-кодирование (англ. Delta encoding) — способ представления данных в виде разницы (дельты…

Первый — это полная синхронизация карты между всеми игровыми клиентами. В таком случае на компьютерах игроков бы воспроизводилась локальная симуляция. Так поведение всех объектов было бы на 100% предсказуемым — а вся информация бы обновлялась только тогда, когда происходят непредвиденные явления (например, действия игрока).

Тут мне кажется не хватает небольшого пояснения:
Синхронизация всех клиентов с сервером происходит на старте игры/при подключении клиента к серверу. Сервер пересылает клиенту актуальное состояние мира, после чего клиент может симулировать мир локально, без необходимости синхронизации с сервером несколько раз в секунду кроме случаев, когда игроки производят какие-то действия (но и даже так, можно было бы передавать только действия игроков, без необходимости передавать полный стейт игрового мира).
Но такой подход будет работать только при 100% детерминированной модели игрового мира, т.е. когда при одинаковых входных условиях мы всегда будем наблюдать абсолютно одинаковое развитие событий. К сожалению 100% детерминированности для сложной игры не добиться (по разным причинам, вплоть до разницы в вычислениях с плавающей запятой на разных архитектурах процессоров), о чём, собственно и идёт речь далее в статье.

А ещё первый вариант больше подвержен читерству (подмене данных клиента).

Спасибо за замечание, поправил 🙂

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

Так там нет такой нагрузки, как в сф. Большинство машин «черные ящики», трубы не тянутся километрами с тысячами объектов внутри, предметы передвигаются стаками. Хотя лагомашина из труб билдкрафта вполне себе работала, когда в нее кучу предметов закидывают и заставляют по кругу циркулировать, с выбором в мир и загрузкой снова в трубы. ред.

трубы не тянутся километрами с тысячами объектов внутри

Это потому что они лагают. И загрузка чанков дорого стоит, особенно на серверах в мультиплеере.

предметы передвигаются стаками

Хотя лагомашина из труб билдкрафта вполне себе работала

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

Satisfactory пластик как сделать

Эта публикация удалена, так как она нарушает рекомендации по поведению и контенту в Steam. Её можете видеть только вы. Если вы уверены, что публикацию удалили по ошибке, свяжитесь со службой поддержки Steam.

Этот предмет несовместим с Satisfactory. Пожалуйста, прочитайте справочную статью, почему этот предмет может не работать в Satisfactory.

Этот предмет виден только вам, администраторам и тем, кто будет отмечен как создатель.

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

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

крафт огромного количества резины и пластика без побочек вроде полимерной смолы
+1 альтернативный с побочками

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

2,074уникальных посетителей
40добавили в избранное

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Альтернативный способ, с побочками и вложением резины и пластика

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Альтернативный способ, с побочками и вложением резины и пластика

Источник

Лучшая схема для пластика и резины в Satisfactory

Показать панель управления

Комментарии • 75

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

выгода на 1 единицу нефти сколько ты можешь сделать пластика. хочешь строй выгодно или по своему, мне все равно

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

@Dr.Perec что мне надо было я понял а на счет выгоды однозначного мнения быть не может. так что нравится тебе твое творение лепи на здоровье.

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

слушал слушал да не понял ничего) а как ты получишь пластик более выгодно? ну люди ну смешите меня иногда)

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

А у меня вопрос ты развивался или что-то другое.

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Всё бы ни чего, но вот топлива с топовой воронки разогнанной на фул- не хватает на 8 пар. Что уж говорить о 26 парах😂

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

осталось 2 утилизатора подключить, все равно столько пластика/резины не расходуется.

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

этот ролик не для дебилов, тебе не понять

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Да только нужен альт рецепт

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Привет)
Такой вопрос, у меня идет точный расчет всех поступающих и выходящих ресурсов в минуту.
На первоначальном этапе это сделать просто, так как заранее известна скорость конвейера, скорость производства деталей и т.д.
Теперь изучил поезда, и тут встал ступор с расчетами. Не подскажешь как лучше высчитать?
У меня была мысль, засечь время от отъезда поезда до его приезда, но может быть есть практичный способ)
Заранее спасибо!

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

с поездами все просто, сколько заходит столько и выходит, самое главное чтобы не потреблялось больше, чем может привезти поезд за цикл, но это изи контролить с помощью количества вагонов

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

А как установить цвет строений перед постройкой как у тебя на видео, а не перекрашивать поле пистолетом с краской?

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Тогда надо как то закольцевать и трубы с топливом вокруг последних заводов чтоб и тем и тем, иначе голод, на одну сторону 2,5 трубы и на другую также

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

вопрос, а если к одной зацикленной паре заводов ставить по одному заводу на выход, зацикленное дуо делят выход на два, половина продукции уходит на отдельный завод, и оттуда полная партия уходит на базу/склад/ и тд. И по факту мы имеем 4 завода в схеме для производства резины и пластика одновременно. или по заводам тогда не выгодно?

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Схема крутая, только я не понял сколько надо топлива (схем с того видоса) для 100% работы?

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

Встречал где то схему с одной трубы делали по 300 топлива, пластика и резины. Правда только на картинке и без физической реализации

Как сделать пластик в satisfactory. Смотреть фото Как сделать пластик в satisfactory. Смотреть картинку Как сделать пластик в satisfactory. Картинка про Как сделать пластик в satisfactory. Фото Как сделать пластик в satisfactory

15.500 мегаватт энергии на все про все, ну и всего 490 заводов, 60 помп, и уйма свободного места, но в целом это годно

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *