Важно Справедливая оптимизация

harati

Главный администратор
В Minecraft существует важное противоречие между желаниями игроков и реальностью. Небольшое число сравнительно хорошо (в плане производительности) написанных модов уже порядком надоело. А "вкусные" моды, зачастую, крайне непроизводительны и, в целом, написаны тяп-ляп. Особенно это касается сетевых хранилищ (Ender IO, AE2 и другие), для корректной реализации которых нужно знать в разы больше математики, чем себе могут вообразить авторы этих модов.

Поэтому всегда приходится идти на компромисс между производительностью и удобством/новизной модов. Приходилось, точнее, до появления самописного модо-плагина OtterCutter. В русском варианте выдрорезка. Название и его история сами по себе являются локальным мемом, ищущий всегда найдёт : )

otter.jpeg

Основная идея простая ― предоставлять каждому игроку гарантированное процессорное время, в которое будет обрабатываться его имущество (всё на его участке и мобы, находящиеся рядом с ним). Это решает наиболее распространённую проблему ― когда кто-то строит очень неоптимальную фабрику/дом, а страдает весь сервер. Теперь такого не будет, неоптимальные строения будут создавать проблемы (замедление всех механизмов) только своему создателю.

Базовые взаимодействия с сервером (разрушение/установка блоков, выбрасывание/поднимание предметов, движение) не будут лагать абсолютно у всех, независимо от загруженности их участков.

Более того, такой подход поощряет строительство оптимальных конструкций из качественных модов. Ничего не мешает вам сделать фабрику на AE2 + EnderIO + ещё парочки модов сомнительной оптимальности. Но будьте готовым, что она будет работать ощутимо медленнее, чем у соседа, использовавшего более эффективные решения. Подобное ограничение не является искусственным (администрации нравится Х, но не нравится Y), а естественным - при одинаковом количестве пользы лучше то, что эффективнее, а решает сам игрок, чего он хочет и к чему стремится. Если вы, к примеру, намеренны строить эффективную фабрику с большими объёмами продукции, то о производительности стоит задуматься сразу.

Для того, чтобы посмотреть статистику по по своему имуществу/расходу ресурсов им, введите /oc report.

Естественно, система имеет много технических нюансов, которые выходят за рамки новости. Что-то будет добавлено в виде отдельного гайда, что-то остается как предмет для вашего исследования : )

P.S. Система активна только на серверах 1.12.2
 
Последнее редактирование:

makkarpov

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

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

Владельцы назначаются по приватам, в которых находятся сущности и блоки, а так же по близости к игроку в небольшом радиусе. Если какая-то сущность не имеет владельца или он оффлайн - она включается в "дикую" группу, которая тикает отдельно.
 
  • Like
Реакции: snipervld и isKONSTANTIN

makkarpov

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

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

А дальше очередь и сервер, который эту очередь разбирает, пока хватает времени, а некоторых владельцев еще и по их использованным лимитам отсекает (точнее, перемещает в самый конец. Даже если человек израсходовал свой лимит, он может тикнуть, если серверу совсем делать нечего). Кончилось время - остаток очереди перемещается на следующий тик, а сервер переходит к обработке других задач а-ля взаимодействий игроков с миром.
 
  • Like
Реакции: isKONSTANTIN

makkarpov

Главный администратор
По каким критериям определяется степень "отвратительности" мода? Подразумеваются случаи, когда Ърезка режет то, что является потенциально важным элементом геймплея, и его ограничение превращает игру в УГ и симулятор гринда времени.

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

Критерий обрезки я писал выше - если измеренное реальное время, которое тикало имущество юзера, превышает отсечку - то переносится на следующий тик. Т.е. отсечка исключительно по времени, а не потому, что нам мод не нравится.

2. Что делать, если резка ошибочно назвала меня выдрой, и деревья падают по нескольку минут?

1. Попросить, чтобы деревья добавили в приоритет, как реалтаймовые.
2. Смотреть oc report, почему же ты выдра.

3. Насколько оно фактически полезно? Выглядит так, будто вреда для юзеров больше, чем пользы для сервера.

Должно нести пользу в виде существенной оптимизации отзывчивости сервера. Как будет по факту - будем смотреть и дорабатывать дальше.
 
  • Like
Реакции: isKONSTANTIN и SSKirillSS

pawka

Игрок
Когда поставил пару ловушек для рыб, а у персонала сгорела жопа, что аж написали плагин
 

Gaknes

Бывший главный администратор
Прошу прощения, не удержался.

screen_shot_2014-12-13_at_9.05.34_pm.png


А в остальном - ничего нового. Тема планировалась как пояснительная, и я рассчитывал, что узнаю что-то новое о системе (мне, вроде как, говорили, что я неправильно представляю суть этой системы, но чёт...), а получился лишь очередной тезис (про процессорное время), обмазанный кучей бесполезного юридического текста.

Всё.png
 
  • Like
Реакции: isKONSTANTIN и AltronZ

BURAKKU

Новичок
Так же вопрос насколько эффективно будет распределяются время между игроками? Ведь логично, что новичку, которых копает шахту его нужно меньше чем челу с огромным заводом. И как вообще происходит это распределение? P.s надеюсь, что там не тупо время делится на равные части
 

AltronZ

Игрок
Так же вопрос насколько эффективно будет распределяются время между игроками? Ведь логично, что новичку, которых копает шахту его нужно меньше чем челу с огромным заводом. И как вообще происходит это распределение? P.s надеюсь, что там не тупо время делится на равные части
Как я понял ограничение на время у всех одинаковое. У чела с огромным заводом, если он выходит за ограничение, завод просто будет работать медленнее чтобы у новичка в шахте не лагало
 

AltronZ

Игрок
Так же вопрос насколько эффективно будет распределяются время между игроками? Ведь логично, что новичку, которых копает шахту его нужно меньше чем челу с огромным заводом. И как вообще происходит это распределение? P.s надеюсь, что там не тупо время делится на равные части
а ограничение (как я понимаю) рассчитывается делением на равные части
 

makkarpov

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

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

Т.е. если чел с шахтой не израсходовал свой лимит - он пойдет остальным. Если израсходовал - то, в общем-то, имеет право, почему ему должно выделять меньше?
 

Mephistopheles

Игрок
Нифига не понял но оч интересно,с выходом этой темы (хоть я и на начальном этапе и имею ряд механизмов) у меня появились жёсткие провисания ФПС в регионе возле мехов,сносил папку перенастраивал вроде все норм но хрен там плавал ... Это как вообще ? Что делать эта "справедливая оптимизация" тормозит ещё больше технарей которые 100500 мехов понатыркали или нет не пойму... У меня в 1 чанке не больше 17 механизмов и все в простое ... А ФПС убежал ....
 

Gaknes

Бывший главный администратор
Нифига не понял но оч интересно,с выходом этой темы (хоть я и на начальном этапе и имею ряд механизмов) у меня появились жёсткие провисания ФПС в регионе возле мехов,сносил папку перенастраивал вроде все норм но хрен там плавал ... Это как вообще ? Что делать эта "справедливая оптимизация" тормозит ещё больше технарей которые 100500 мехов понатыркали или нет не пойму... У меня в 1 чанке не больше 17 механизмов и все в простое ... А ФПС убежал ....

Эта штука влияет на серверные показатели (в основном TPS). FPS - не серверный показатель, а клиентский.

Т.е. проблема у вас в чём-то другом, и по статистике это скорее всего что-то локальное, вроде давно не обновлявшихся драйверов видеокарты, Java и тому подобного.
 

makkarpov

Главный администратор
Нифига не понял но оч интересно,с выходом этой темы (хоть я и на начальном этапе и имею ряд механизмов) у меня появились жёсткие провисания ФПС в регионе возле мехов,сносил папку перенастраивал вроде все норм но хрен там плавал ... Это как вообще ? Что делать эта "справедливая оптимизация" тормозит ещё больше технарей которые 100500 мехов понатыркали или нет не пойму... У меня в 1 чанке не больше 17 механизмов и все в простое ... А ФПС убежал ....

В общем-то да, как выше написали - это исключительно серверный мод, на клиенте его файлов нет вообще.
 

Mephistopheles

Игрок
Эта штука влияет на серверные показатели (в основном TPS). FPS - не серверный показатель, а клиентский.

Т.е. проблема у вас в чём-то другом, и по статистике это скорее всего что-то локальное, вроде давно не обновлявшихся драйверов видеокарты, Java и тому подобного.
кхм странно но пару дней назад все летало... сносил лаунчер ставил по новой настраивал все норм на на короткое время... зашел на магик все супер летает... а на Hipower если на спавн тп то норм как в рг возвращаюсь все камнем висну =(
 

Mephistopheles

Игрок
Эта штука влияет на серверные показатели (в основном TPS). FPS - не серверный показатель, а клиентский.

Т.е. проблема у вас в чём-то другом, и по статистике это скорее всего что-то локальное, вроде давно не обновлявшихся драйверов видеокарты, Java и тому подобного.
ну если дело в этом то такие именно дрова и софт нужно обновлять ?
 

Gaknes

Бывший главный администратор
  • Like
Реакции: Mephistopheles