TheAndrey 16326 Опубликовано: 29 марта 2019 Пока игроки испытывают сервер на выносливость, мы проверяем игроков на прочность. Игроки индустриальных сборок хорошо умеют приводить игровой сервер в негодность, строя различного рода «лагодромы», главным звеном которых являются транспортные системы (трубы и провода). Игроки, как правило, любят подключить все свои механизмы и хранилища в одну сеть, а сервер пускай сам думает: что и куда отправить – это создаёт огромную нагрузку, занимая половину и больше тика. Откуда нагрузка? Давайте разберёмся, чем занимаются любые транспортные системы в игре. Проверка целостности компонентов всей системы (трубы/проводка). Поиск подходящего маршрута для отправки предмета. Поиск всех возможных вариантов маршрута Проверка предмета на соответствие всем фильтрам, установленным на трбах Перебор инвентаря каждого хранилища в целях поиска свободного места Как видите, не так просто отправить предмет из точки A в точку B. А чем крупнее система у игрока, тем больше проверок приходится делать – а это всё драгоценное время. Лимит для транспортных систем Описать правилами лимит на размеры транспортных систем сложно, а уж следить за его соблюдением почти нереально. Поэтому мы вводим техническое ограничение, при превышении которого, транспортная система будет остановлена. Протяжённость: 256 – общее кол-во труб/проводов системыПодключения: 64 – число хранилищ (механизмов) подключенных к системе Остановка произойдёт при превышении любого из условий. Работа системы будет возобновлена как только всё будет возвращено в рамки лимитов. Мне этого не хватает! Обойти лимит возможно и даже нужно. Мы хотим, чтобы игроки делили большие транспортные системы на малые. Чем будет меньше система, тем она быстрее работает. Если у Вас имеется автоматизированный «завод», то следует использовать для него отдельную (замкнутую) систему, по которой будут перемещаться нужные ему ресурсы, а не включать его в общую систему дома. Передавать ресурсы между системами можно при помощи «шлюзов», например поставив сундук в который одна система будет загружать ресурсы, а другая - забирать. Главное, чтобы не было прямого соединения труб обоих систем (иначе это станет одной). Планы Планируется проделать работу со следующими транспортными системами предметов/энергии: Thermal Dynamics EnderIO Applied Energistics Энергосети IndustrialCraft2 Experimental Вот как это отразилось на примере Modern (числами указаны подключения/протяжённость). Блокировка (отмечены красным) всего 10 систем позволила повысить TPS с 12 до 18-20 1 2 Поделиться сообщением Ссылка на сообщение
Evade 10 Опубликовано: 29 марта 2019 А проверка выполняется по событиям установки труб или каждые n секунд? Почему спрашиваю: в первом варианте, как я понимаю, установка каждой новой трубы будет запускать заново процес перерасчёта всей протяжённости системы, что также будет создавать некую нагрузку, а учитывая что трубы любят ставить одну за другой очень быстро, то кол-во перерасчётов будет достигать огромных цифр(учитывая кол-во игроков). Поделиться сообщением Ссылка на сообщение
Гость Опубликовано: 29 марта 2019 (изменено) 38 минут назад, Evade сказал: А проверка выполняется по событиям установки труб или каждые n секунд? Почему спрашиваю: в первом варианте, как я понимаю, установка каждой новой трубы будет запускать заново процес перерасчёта всей протяжённости системы, что также будет создавать некую нагрузку, а учитывая что трубы любят ставить одну за другой очень быстро, то кол-во перерасчётов будет достигать огромных цифр(учитывая кол-во игроков). Соответсвенно надо сделать два состояния системы: включена и выключена, при этом при включении системы происходят все расчеты, которые происходят при изменении параметров системы. А при выключении системы она перестает функционировать. При добавлении устройства(например, трубы) труба происходит одно из двух: труба не подключается т.к. у них разные состояние, либо вся система выключается и требует ручного включения ее обладателя. Надеюсь, моя идея не самая ужасная и может даже неплохая. Изменено 29 марта 2019 пользователем Гость мелкая поправочка)) Поделиться сообщением Ссылка на сообщение
TheAndrey 16326 Опубликовано: 29 марта 2019 47 минут назад, Evade сказал: А проверка выполняется по событиям установки труб или каждые n секунд? Проверка стоит на обновление. Есть список всех систем, там уже модом всё посчитано (присуствует список всех копонентов системы). Сервер пропускает мимо систему (дабы не тратить на неё время), превышающую лимит. Сильно вдаваться в подробности не стоит. Суть проста: работает или не работает. Обращайте на это внимание. Поделиться сообщением Ссылка на сообщение
SleepyG11 595 Опубликовано: 29 марта 2019 (изменено) И по классике жанра: эти изменения отразятся на Харде? Изменено 29 марта 2019 пользователем makatymba2001 Логика сообщений Поделиться сообщением Ссылка на сообщение
TheAndrey 16326 Опубликовано: 29 марта 2019 1 минуту назад, makatymba2001 сказал: И по классике жанра: как эти изменения отразятся на Хард? Похоже, что да. Тут тоже проблема есть. Поделиться сообщением Ссылка на сообщение
SleepyG11 595 Опубликовано: 29 марта 2019 Это просчёт каналов по МЭ сетям? Или работа интерфейсов/шин/туннелей и такого подобного? Поделиться сообщением Ссылка на сообщение
TheAndrey 16326 Опубликовано: 29 марта 2019 @makatymba2001 там всё вместе взятое. Поделиться сообщением Ссылка на сообщение
andreyxolebe1 0 Опубликовано: 29 марта 2019 Только что, TheAndrey сказал: @makatymba2001 там всё вместе взятое. Ясно, понятно. Спасибо за ответ. Поделиться сообщением Ссылка на сообщение
Sheodar 1070 Опубликовано: 29 марта 2019 Автоматизация Хочешь сменить мини-карту? Конвертируй свои старые маркера. Поделиться сообщением Ссылка на сообщение
kozachok 278 Опубликовано: 29 марта 2019 Такое ощущение, что если это коснется харда, сразу встанут все базы топов)) Поделиться сообщением Ссылка на сообщение
vkar 17 Опубликовано: 30 марта 2019 5 часов назад, kozachok сказал: Такое ощущение, что если это коснется харда, сразу встанут все базы топов)) И не топов. Для харда данные ограничения вообще ничтожны Поделиться сообщением Ссылка на сообщение
artem386 18 Опубликовано: 30 марта 2019 Это сломает всю мою(да и не только) МЭ сеть, ведь количество МЭ кабелей на моей базе равно примерно 1000 штук, А количество подключенных к ним шин, интерфейсов - далеко выходит за рамки 64 штук. Поделиться сообщением Ссылка на сообщение
SleepyG11 595 Опубликовано: 30 марта 2019 (изменено) Лаги от этого всего вполне логичны. На всех базах МЭ сделаны таким образом, что "одна, большая, основная сеть, которая управляет всем". Кол-во просчётов действительно велики. Нужно будет придумывать там, где это возможно, локальные сети. Например, сеть для переработки руды, нефтехимии, АссемблиЛайны, реакторы... Или я от думал, отдельную сеть для извлечения продуктов и их транспортировка в основную МЭ.Это явно уменьшит нагрузку. Но дае в таком случае 64 канала - это очень мало. Что-то в районе 128 - 196 должно хватить. Изменено 30 марта 2019 пользователем makatymba2001 1 Поделиться сообщением Ссылка на сообщение
_dimka_ 0 Опубликовано: 30 марта 2019 А как мне проверить какая у меня протяженность труб в регионе? Поделиться сообщением Ссылка на сообщение