AsyncParticles
AsyncParticles - клиентский мод-оптимизатор для Minecraft, который ускоряет обработку и отрисовку частиц, снижая нагрузку на процессор в насыщенных эффектами сценах. Совместим с Create, Sodium и другими модами, но не работает с OptiFine и MadParticle.
Что делает AsyncParticles
AsyncParticles - клиентский мод для оптимизации частиц в Minecraft. Он переносит преобразование вершин частиц на видеокарту и может выполнять их обновление асинхронно. Это помогает снизить нагрузку на процессор и сократить объём данных, передаваемых на GPU каждый кадр. В обычной игре разница может быть незаметна, но при большом количестве эффектов - например, возле множества костров - оптимизация становится полезнее.
Это не мод на новый контент: он не добавляет предметы или мобов, а меняет обработку частиц. AsyncParticles рассчитан на клиентскую игру и может пригодиться в оптимизационной сборке вместе с Sodium, Iris, FerriteCore и EntityCulling. Скачать AsyncParticles стоит тем, у кого проседает производительность в сценах с большим количеством частиц; сам по себе мод не гарантирует одинаковый прирост FPS на любом компьютере.
Ускорение частиц и возможности
Главное изменение - обработка вершин частиц на GPU. Такой подход заменяет прежнее асинхронное извлечение вершин и, по описанию проекта, улучшает совместимость. Асинхронное извлечение частиц теперь отключено по умолчанию.
В качестве теста автор запускал сцену с 1331 костром и более чем 16 000 частиц. Результат проверяли на ноутбуке с Ultra 5 225H и RTX 5060 при разрешении 1080p. Это конкретный тестовый сценарий, а не обещание такого же результата на других системах. Лимит частиц можно изменить в настройках мода.
AsyncParticles также добавляет или оптимизирует несколько связанных с частицами функций:
- отсечение частиц, которые не должны отображаться;
- асинхронное обновление частиц;
- асинхронный кэш освещения частиц;
- задержку обновления текстур на один кадр, чтобы уменьшить длительность клиентского тика.
Есть гибкие настройки Mixin. Кроме того, мод умеет взаимодействовать с Create: контракции могут блокировать ванильные погодные эффекты, а частицы - сталкиваться с ними. Блокировка погоды доступна начиная с Create-интеграции в версии AsyncParticles v20.1.0a+. Автор отмечает, что эту часть в будущем планирует вынести в отдельный мод.
Совместимость и настройки
Настройки доступны через список модов или ModMenu. В контексте проекта указана поддержка Fabric, Forge и NeoForge; среди поддерживаемых версий Minecraft перечислены 1.20.1, 1.21-1.21.1, 1.21.4-1.21.11 и линейка 26.1.x-26.3. Перед установкой проверьте, что файл мода соответствует версии игры и загрузчику.
AsyncParticles совместим с Sodium и Embeddium, Flerovium, Iris и Oculus, Create, Create: Aeronautics, Valkyrien Skies и Particle Rain. Также указана совместимость с Particle Core версии v20.1 и новее и Valkyrien Skies v2.4. В описании рекомендованы ModernFix и Starlight/ScalableLux. Для отдельных актуальных версий может потребоваться Cloth Config API - сверяйтесь с требованиями конкретного файла.
OptiFine и MadParticle указаны как несовместимые. Не устанавливайте их вместе с AsyncParticles: конфликт может привести к сбоям или некорректной работе эффектов.
Если возникают ошибки
Мод включает диагностику. Если рекомендуемые параметры не выставлены, обычно это не приводит к вылету: в чате появится подсказка, какие настройки стоит изменить.
- Bosses Rise: включите
GPU Only Async Particle Tick. - BadOptimizations: установите
enable_particle_manager_optimization: falseвbadoptimizations.txt. Эта проблема исправлена в версиях AsyncParticles20.1.1.0и21.1.1.0. - C2ME: если игра вылетает, попробуйте установить
enforceSafeWorldRandomAccess = "false"вc2me.toml. Меняйте параметр только при наличии таких вылетов. - LodestoneLib: при соответствующем сбое установите
buffer_particles = falseвlodestone-client.toml.
Если ошибка связана с ClassInstanceMultiMap или Level.getEntities(...), можно включить в настройках Mixin параметр Make 'ClassInstanceMultiMap' Thread-Safe. Для сбоев с Level.getBlockEntity(...) предусмотрен параметр Make 'LevelChunk#blockEntities' Thread-Safe.
ConcurrentModificationException
Такая ошибка может появиться, когда обновление и отрисовка частиц одновременно обращаются к одному контейнеру, который не рассчитан на работу из нескольких потоков. Для отдельных типов частиц можно добавить полные имена классов в оба списка Mixin-настроек: particle$lockProvider и particle$lockRequired. Это включает точечную синхронизацию между методами tick() и render().
Начиная с версии vX.4.0, режим отрисовки частиц по умолчанию установлен в SYNCHRONOUSLY. Это снижает риск редких ошибок с модами, которые обращаются во время отрисовки к небезопасным для многопоточности внешним спискам или картам. Если у вас версия vX.3.0 или старее, такой режим можно выбрать вручную в настройках. Режим FASTEST имеет смысл проверять только в конкретной сборке: он может дать прирост, но с несовместимыми модами способен вызвать вылет.
Что проверить перед установкой
AsyncParticles остаётся в стадии beta, чтобы предупреждать о возможных конфликтах с другими модами. Перед добавлением в существующую сборку сохраните копию мира и проверяйте совместимость на используемых версиях Minecraft и загрузчика. Особенно внимательно отнеситесь к настройкам асинхронной обработки, если в сборке есть моды, которые меняют частицы или используют общие списки и карты при рендеринге.
В качестве зависимостей проекта указаны MixinSquared, MixinExtras и MixinConstraints. Для установки конкретной версии сверяйте список требований и совместимости именно с её файлом.
Часто задаваемые вопросы
Совместимость
Зависимости
Создатели
Детали
Версии мода AsyncParticles
Доступно 303 версий. Сначала показаны самые популярные и самые свежие.