Клиентские игры

Когда ставлю блоки в Майнкрафт, небольшой но заметный пролаг

Строю большую карту, и в один момент заметил что когда ставлю или ломаю любой блок, фриз на пол секунды примерно, это не критично но очень мешает, да и может стать сильнее
не знаете как можно пофиксить?
шейдеры я не использую, играю на 1 12 2
Devlz-X-I-I-I
Devlz-X-I-I-I
590
прогрузку чанков поменьше поставь
Дмитрий Бабушкин
Дмитрий Бабушкин
423
Лучший ответ
Резкие кратковременные пролаги при размещении/ломании блоков напрямую связаны с проблемами в скорости работы алгоритмов расчёта освещения – так называемого «светового движка».

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

Примечательно, что довольно тяжёлым в этих расчётах является расчёт освещения неба. Если упростить, то каждый раз при изменении блоков Майнкрафт запускает условный «луч» с 272 высоты вертикально вниз (на 16 блоков выше максимальной высоты мира), рассчитывая освещение для каждого блока, рядом с которым он пройдёт. Чем длиннее путь луча, тем дольше по времени происходят вычисления. Если преградить ему путь, заслонив большой горизонтальной платформой на максимальной высоте территорию, где размещается/разрушается блок (поместив её в полную тень), то можно будет заметить, что пролаги прекратятся. А единовременное размещение такой платформы (например, командой /fill ~-15 255 ~-15 ~15 255 ~15 minecraft:stone), напротив, вызовет сильнейшее зависание.
Довольно подробно об алгоритмах работы игрового освещения в Майнкрафте можно прочитать здесь.

͟Ч͟т͟о͟ ͟с͟ ͟э͟т͟и͟м͟ ͟д͟е͟л͟а͟т͟ь͟?
Как мы выяснили, причиной является слишком долгий процесс расчёта освещения. Увы, проблема находится на уровне кода игры, и сами мы (игроки) ничего с этим сделать не можем. К счастью, сообществом модмейкеров сейчас активно разрабатывается сразу два более оптимизированных алгоритма освещения, входящих в состав модов Starlight и Phosphor. Достаточно просто установить один из них, используя загрузчик Fabric (как установить?), чтобы устранить проблему. В сравнении с ванильным световым движком они позволяют получить ощутимый прирост в скорости вычислений, который можно наблюдать на этих графиках:

Общая производительность Phosphor:


Сравнение скоростей генерации чанков с использованием различных движков:


Сравнение скоростей расчёта света для небесных «лучей»:


Сравнение скоростей расчёта света от блока-источника:


Из этих диаграмм видно, что самым эффективным световым движком является Starlight. Однако он до сих пор находится на стадии бета-тестирования.
Также Phosphor имеет версию для Forge.
SJ
Syrgatai Jolborsov
35 383