- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 23,5 тыс.
- Подписчиков на Modrinth
- 54
- версия
- 21
- Обновлён
- 15 апреля 202615 апр.
- Опубликован
- в 2023
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
Клиентский мод для Minecraft, который убирает рывки цикла дня и ночи, вызванные лагами сервера!
Проблема
Каждую секунду (20 тиков) сервер отправляет пакет, который синхронизирует мировое время между клиентом и сервером. Поскольку у клиентов нет ориентира по тикрейту сервера, они предполагают, что сервер работает на стандартных 20 тиках в секунду. Поэтому, когда сервер лагает, эти 20 тиков обрабатываются дольше, из-за чего клиент отображает солнце впереди того места, где оно находится на сервере. Когда приходит этот пакет синхронизации, ванильный клиент резко перемещает солнце в позицию сервера, что и вызывает проблему, которую исправляет этот мод.Решение
Скользящее взвешенное среднее и немного интерполяции! Сначала мы берём выборки за последние 10 секунд количества тиков, прошедших на сервере, за каждый тик на клиенте. Затем, поскольку выборка десятисекундной давности не так актуальна, как выборка за последнюю секунду, мы взвешиваем каждую из них экспоненциально меньше по сравнению с первой. Взяв среднее этого взвешенного списка, мы можем эффективно предсказать движение солнца в течение следующей секунды. Погрешность в позиции солнца, вызванная предсказанием, варьируется, но она незаметна по сравнению с рывком назад, который происходит с ванильной логикой.Без Asahi:
С Asahi:

Учти, что этот gif из более ранней версии мода, используемая интерполяция с тех пор только улучшилась!
Circular Sun — часть ресурспака, предоставленного vanillatweaks.net
Конфиг
{
// Если время, полученное от сервера, отличается от клиентского на `skipDuration` или более секунд,
// пропустить до времени сервера, минуя интерполяцию.
// Поэкспериментируй с этим значением, если цикл дня и ночи проходит абсурдно быстро.
"skipDuration": 60,
// Количество предыдущих факторов, используемых в интерполяции скользящего среднего.
// Поэкспериментируй с этим значением, если заметишь, что солнце сильно скачет туда-сюда, не устанавливаясь на место.
"interpolateSamples": 10,
// Начальный тик цикла дня и ночи за игровой тик.
// Увеличь/уменьши это значение, если присутствует другой мод, который ускоряет/замедляет цикл дня и ночи
"initialFactor": 1.0,
// Стандартный тикрейт в отношении разрешения цикла дня и ночи.
// Измени, если играешь с модами, которые увеличивают/уменьшают стандартный тикрейт ИЛИ разрешение цикла дня и ночи (24000 тиков).
// Учти, что, насколько мне известно, нет модов, которые это делают.
"standardTickRate": 20
}Частые вопросы
Как установить Asahi?
Установите Fabric под свою версию Minecraft, скачайте Asahi под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Asahi?
У Asahi есть сборки для Minecraft 1.14–26.1.2.
Нужен ли Asahi на сервере?
Ставится только в игру; на сервер ставить не нужно