Перейти к публикации
Andrey

industrial Останавливаем лагодромы

Рекомендованные сообщения

Andrey

image.jpeg

Пока игроки испытывают сервер на выносливость, мы проверяем игроков на прочность.

Игроки индустриальных сборок хорошо умеют приводить игровой сервер в негодность, строя различного рода «лагодромы», главным звеном которых являются транспортные системы (трубы и провода). Игроки, как правило, любят подключить все свои механизмы и хранилища в одну сеть, а сервер пускай сам думает: что и куда отправить – это создаёт огромную нагрузку, занимая половину и больше тика.

 

Откуда нагрузка?
Давайте разберёмся, чем занимаются любые транспортные системы в игре.

  • Проверка целостности компонентов всей системы (трубы/проводка).
  • Поиск подходящего маршрута для отправки предмета.
    • Поиск всех возможных вариантов маршрута
    • Проверка предмета на соответствие всем фильтрам, установленным на трбах
    • Перебор инвентаря каждого хранилища в целях поиска свободного места

Как видите, не так просто отправить предмет из точки A в точку B. А чем крупнее система у игрока, тем больше проверок приходится делать – а это всё драгоценное время.

 

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

Протяжённость: 256 – общее кол-во труб/проводов системы
Подключения: 64 – число хранилищ (механизмов) подключенных к системе

Остановка произойдёт при превышении любого из условий. Работа системы будет возобновлена как только всё будет возвращено в рамки лимитов.

 

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

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

 

Планы
Планируется проделать работу со следующими транспортными системами предметов/энергии:

  1. Thermal Dynamics ✅
  2. EnderIO ✅
  3. Applied Energistics
  4. Энергосети IndustrialCraft2 Experimental

Вот как это отразилось на примере Modern (числами указаны подключения/протяжённость).

image.png

Блокировка (отмечены красным) всего 10 систем позволила повысить TPS с 12 до 18-20 🎉


🖊️ Ура! Теперь у Вас есть подпись ☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Evade

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
CaveJohnson376
38 минут назад, Evade сказал:

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

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

Надеюсь, моя идея не самая ужасная и может даже неплохая.

Изменено пользователем CaveJohnson376
мелкая поправочка))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andrey
47 минут назад, Evade сказал:

А проверка выполняется по событиям установки труб или каждые n секунд?

Проверка стоит на обновление. Есть список всех систем, там уже модом всё посчитано (присуствует список всех копонентов системы). Сервер пропускает мимо систему (дабы не тратить на неё время), превышающую лимит.

Сильно вдаваться в подробности не стоит. Суть проста: работает или не работает. Обращайте на это внимание.


🖊️ Ура! Теперь у Вас есть подпись ☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
makatymba2001

И по классике жанра: эти изменения отразятся на Харде?

Изменено пользователем makatymba2001
Логика сообщений

mak2_4.png.638c2a45f439315e21d4b3a38c2d49bc.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andrey
1 минуту назад, makatymba2001 сказал:

И по классике жанра: как эти изменения отразятся на Хард?

Похоже, что да. Тут тоже проблема есть.

image.png


🖊️ Ура! Теперь у Вас есть подпись ☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
makatymba2001

Это просчёт каналов по МЭ сетям? Или работа интерфейсов/шин/туннелей и такого подобного?


mak2_4.png.638c2a45f439315e21d4b3a38c2d49bc.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andrey

@makatymba2001 там всё вместе взятое.


🖊️ Ура! Теперь у Вас есть подпись ☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andreyxolebe1
Только что, TheAndrey сказал:

@makatymba2001 там всё вместе взятое.

Ясно, понятно. Спасибо за ответ.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sheodar

Автоматизация 😀


Хочешь сменить мини-карту? Конвертируй свои старые маркера.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
kozachok

Такое ощущение, что если это коснется харда, сразу встанут все базы топов))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
vkar
5 часов назад, kozachok сказал:

Такое ощущение, что если это коснется харда, сразу встанут все базы топов))

И не топов. Для харда данные ограничения вообще ничтожны

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
artem386

Это сломает всю мою(да и не только) МЭ сеть, ведь количество МЭ кабелей на моей базе равно примерно 1000 штук, 

А количество подключенных к ним шин, интерфейсов - далеко выходит за рамки 64 штук.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
makatymba2001

Лаги от этого всего вполне логичны. На всех базах МЭ сделаны таким образом, что "одна, большая, основная сеть, которая управляет всем". Кол-во просчётов действительно велики. Нужно будет придумывать там, где это возможно, локальные сети. Например, сеть для переработки руды, нефтехимии, АссемблиЛайны, реакторы... Или я от думал, отдельную сеть для извлечения продуктов и их транспортировка в основную МЭ.Это явно уменьшит нагрузку. Но дае в таком случае 64 канала - это очень мало. Что-то в районе 128 - 196 должно хватить.

Изменено пользователем makatymba2001

mak2_4.png.638c2a45f439315e21d4b3a38c2d49bc.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
_dimka_

А как мне проверить какая у меня протяженность труб в регионе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andrey

Пойти их посчитать. Или же дождаться остановки системы.


🖊️ Ура! Теперь у Вас есть подпись ☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Jok98

Шикарненько :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Rukkuz

А что там с проводами? ~150 проводов от одного МФЭХа до другого - это нормальная система?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Andrey

Начали блокировать системы EnderIO.

image.png

 

Вот так выглядит система с 203 подключениями:

image.jpeg


🖊️ Ура! Теперь у Вас есть подпись ☺️

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Skrimer

А есть ли лимит на провода (количество в одной системе) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...