OptiFabric Reforged
Если вы годами играли на Forge только ради OptiFine, а потом перешли на Fabric и обнаружили, что привычные шейдеры, зум и тонкая настройка графики просто исчезли — эта статья для вас. OptiFabric Reforged решает давнюю головную боль: он позволяет запускать OptiFine на Fabric-загрузчике, не собирая вручную патченные jar-файлы и не отказываясь от любимых Fabric-модов.
Раньше связка «OptiFine + Fabric» считалась почти нерабочей. Патчи OptiFine компилируются под официальные обфусцированные имена, а Fabric работает в промежуточном пространстве имён (intermediary). Плюс Fabric API внедряется в те же самые классы. В итоге два загрузчика конфликтуют: разные формы конструкторов, иные имена синтетических полей, встроенные вспомогательные методы, подмена создания объектов собственными подклассами OptiFine. Это не косметические расхождения — при некорректном ремапе в одном классе оставались незамапленными 35 методов, что выливалось в 281 сломанный абстрактный контракт и 254 потерянных виртуальных переопределения.
Зачем нужен OptiFabric Reforged для Minecraft
OptiFabric Reforged берёт на себя всю грязную работу по совместимости. Вы просто кладёте мод и собственный jar OptiFine в папку mods, и он сам разруливает остальное: никакого ручного патчинга, никакого установщика OptiFine, никакого Forge. OptiFine при этом не входит в состав мода и не распространяется вместе с ним — сборку под вашу версию игры нужно взять с официального сайта.
Отдельная история — линия 26.x. Начиная с Minecraft 26.1 игра стала необфусцированной: официальные имена совпадают с runtime-именами, yarn и настоящего intermediary больше нет (в 26.1.2 публикуется только заглушка 0.0.0). Поэтому эта ветка вообще не использует маппинги, работает в официальном пространстве имён и несёт собственный mod id — optifabric_reforged. Это не прихоть: некоторые моды прописывают "breaks": {"optifabric": "*"}, и Fabric Loader сопоставляет их именно по id, так что смены отображаемого имени было бы недостаточно.
Поддерживаемые версии Minecraft и загрузчик
Мод развивается как отдельный проект под каждую линию релизов, и jar-файлы не взаимозаменяемы — версия Minecraft зашита прямо в имя файла. Вот актуальная картина:
- Линия 1.20.6 — OptiFabric-1.1.4+mc1.20.6.jar, требует Fabric Loader 0.19.3 и выше, Java 21+. Доступны только preview-сборки.
- Линия 1.21.x — охватывает 1.21 – 1.21.11 (десять релизов), файл вида OptiFabric-2.2.8+mc<версия>.jar, Fabric Loader 0.19.5 и выше, Java 21+.
- Линия 26.x — OptiFabric-Reforged-2.2.6+mc26.1.2.jar и OptiFabric-Reforged-2.2.6+mc26.2.jar (по одному jar на версию), Fabric Loader 0.19.5 и выше, Java 25.
Загрузчик здесь только один — Fabric. Forge и NeoForge не поддерживаются и не планируются, поскольку весь смысл проекта в том, чтобы подружить OptiFine именно с Fabric-экосистемой.
Производительность: цифры, а не обещания
Разработчики прогнали честный бенчмарк через сторонний мод FPS Benchmark (fpstest-1.0): один трёхминутный скриптованный прогон на конфигурацию, 19 кинематографичных сегментов (лес, деревня, бой, редстоун, пещера, Нижний мир, Энд), детерминированный сид 27182. Все запуски — на одной машине с байт-идентичным options.txt, менялся только набор модов.
- Vanilla Fabric (базовая линия) с одним Fabric API: средний FPS 3631, 1% low 774, 0.1% low 442, худший кадр 17.2 мс, минимальный FPS 58.
- OptiFabric + OptiFine (Fabric API + OptiFabric 2.2.10 + OptiFine 1.21.1 HD U J1): средний FPS 5040, 1% low 1098, 0.1% low 713, худший кадр 3.3 мс, минимальный FPS 302.
- OptiFabric + OptiFine + Lithium + FerriteCore + C2ME (рекомендуемый набор): средний FPS 4475, 1% low 1077, 0.1% low 721, худший кадр 3.1 мс, минимальный FPS 319.
- Sodium + Lithium (альтернативный рендерер): средний FPS 5680, 1% low 1017, 0.1% low 349, худший кадр 12.5 мс, минимальный FPS 80.
Что это значит на практике? OptiFabric + OptiFine даёт в среднем на 38.8% больше кадров, чем чистый Fabric, а худший кадр у него в пять раз лучше (3.3 мс против 17.2 мс). То есть это не «налог» за функции OptiFine — собственные оптимизации мода реально работают. Против сборки на Sodium средний FPS примерно на 13% ниже, зато хвост стабильнее: 0.1% low 713 против 349, худший кадр 3.1–3.3 мс против 12.5 мс, минимальный FPS 302 против 80. Проще говоря, Sodium чуть быстрее в среднем, а OptiFabric + OptiFine — ровнее.
Три «производительных» мода в этом сценарии показали нейтрально-отрицательный результат (5040 → 4475). Это ожидаемо: бенчмарк намеренно держит генерацию мира и тики лёгкими, а именно там C2ME, Lithium и FerriteCore обычно и выигрывают на реальном долгоживущем мире. Не читайте эту строку как «те моды бесполезны».
Тестовая среда одинакова во всех прогонах: Minecraft 1.21.1, Fabric Loader 0.19.5, Java 22.0.2, максимальная куча 5836 МБ, Intel i5-12600KF, AMD Radeon RX 7800 XT (драйвер 25.12.1.251128), Windows 10, дальность прорисовки 8, VSync выключен, maxFps:260, шейдеры отключены, идентичный options.txt, сид 27182. Сырые отчёты с покадровыми сэмплами опубликованы вместе с исходниками проекта. Это одна машина, один прогон на конфигурацию, один бенчмарк — воспринимайте цифры как ориентир, а не как спецификацию.
Как установить OptiFabric Reforged
Процесс предельно простой и не требует навыков программирования:
- Установите Fabric Loader нужной версии (0.19.5+ для линий 1.21.x и 26.x, 0.19.3+ для 1.20.6).
- Скачайте OptiFabric Reforged строго под вашу версию Minecraft — ориентируйтесь на имя файла.
- Возьмите подходящую сборку OptiFine с официального сайта (для 1.20.6 и 26.1.2 пока только preview).
- Положите оба jar-файла в папку mods и запустите игру.
Никаких установщиков OptiFine запускать не нужно, никакого Forge тоже. Если вы не хотите возиться с версиями и зависимостями вручную, лаунчер foxygame.net умеет ставить OptiFabric Reforged в один клик — он сам подберёт совместимую сборку под вашу версию Minecraft и не даст перепутать jar-файлы разных линий. Каталог дополнений там же регулярно обновляется, так что свежие релизы под 1.21.x и 26.x появляются без ручного поиска.
Совместимость и типичные подводные камни
OptiFabric Reforged дружит далеко не со всем подряд, и это нормально. Часть модов конфликтует с OptiFine по определению: Sodium, Iris, Indium, Sodium Options API, Zoomify и подобные рендереры просто не могут работать одновременно с OptiFine — они решают одну задачу разными способами. Моды вроде Biomes O' Plenty, Carpet-аддонов и ряда библиотек требуют дополнительных зависимостей и без них не запустятся.
Отдельная категория — моды, которые формально «не тестировались»: Aether, BetterEnd, BetterNether, JourneyMap, Cobblemon-аддоны, YUNG's-структуры, Sophisticated Backpacks и десятки других. Это не значит, что они сломаны — просто их совместимость с OptiFine на Fabric не проверялась в рамках бенчмарка. На практике большинство из них работает, но возможны визуальные артефакты или редкие краши.
Ещё один нюанс — линия 26.x с её отсутствием маппингов. Если вы используете моды, которые жёстко завязаны на yarn-имена, они могут не собраться под 26.1.2 и 26.2. Зато всё, что написано под официальное пространство имён, будет работать как есть.
Итог
OptiFabric Reforged — это мост между двумя мирами, которые долгое время считались несовместимыми. Он возвращает на Fabric всё, за что мы любим OptiFine: шейдеры, зум, детальную настройку графики и приличный прирост производительности. Да, против Sodium он немного проигрывает в среднем FPS, но выигрывает в стабильности кадрового времени. А главное — вам больше не нужно выбирать между удобством Fabric-модов и функциональностью OptiFine. Скачайте OptiFabric Reforged под свою версию, положите рядом OptiFine — и играйте так, как вам нравится.