Skip to content
Перейти к содержимому
Вернуться в блог
Как использовать ViaFabric для кросс-версионной игры в Minec

Как использовать ViaFabric для кросс-версионной игры в Minec

Alexandru Maftei
Alexandru Maftei
@ice
Обновлено
14 просмотров
TL;DR:ViaFabric - это мод для Fabric, позволяющий играть на любой клиентской версии Minecraft, подключаясь к серверам с разными версиями. Необходим для игроков, управляющих мирами через обновления, моддинговых сообществ или присоединяющихся к серверам, застрявшим на старых выпусках.
🐙 Открытый проект Minecraft

ViaVersion/ViaFabric

Реализация клиентской и серверной части ViaVersion для Fabric

⭐ 383 звёзд💻 Java📜 GPL-3.0
Посмотреть на GitHub ↗

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

Что делает ViaFabric

Ситуация следующая: вы хотите играть в 1.20.4, так как ваши любимые моды стабилизировались именно на этой версии. Но сообщественный сервер, к которому вы присоединяетесь, только что обновился до 1.21, и ваш клиент отказывается подключаться. ViaFabric, мод с лицензией GPL и 383 звёздами на GitHub, переводит ваш протокол на лету, чтобы обе стороны могли общаться.

Мод работает как клиентский, так и серверный, или и тот, и другой. Установите его в клиент Fabric, и вы сможете подключаться к любым поддерживаемым версиям без проблем. Установите его на сервер Fabric, и игроки с разными клиентскими версиями смогут присоединиться. Он построен на ViaVersion, фреймворке перевода протокола, который решает проблемы версий с тех пор, как снэпшоты Minecraft ещё не были вещью.

Этот мод отлично выполняет одну задачу.

Он переводит основной протокол между версиями, позволяя несоответствующим клиентам и серверам понимать друг друга. Вы не устанавливаете новый контент или не меняете игровой процесс - просто удаляете ворота версий.


Зачем вам это нужно

Представьте мир модов, в который вы вложили сорок часов на 1.19.2. Моды, которые вам нравятся, портятся в 1.21. Обновляется фреймворк. Улучшается производительность. Вы хотите эти обновления, но перезапуск значит отказ от вашей базы, достижений, прогресса. ViaFabric позволяет продолжать игру в вашем мире 1.19, используя функции и исправления клиента 1.21.

Или представьте, что вы присоединяетесь к серверу, застрявшему на 1.18 ради стабильности, в то время как локально у вас запущена 1.21. Нормально бы вы не прошли. С ViaFabric вы проходите - ваш клиент преобразует пакеты, чтобы они совпадали с протоколом сервера.

Экосистема моддинга быстро разбивается по версиям. Одна версия имеет отличную поддержку модов. Другая - критические патчи безопасности. Некоторые версии находятся в сладком месте, где всё стабильно и зрелое. Быть заблокированным на одной версии означает упустить сообщества, функции, патчи, происходящие в других местах.


Установка и начало работы

Вам нужен установленный Fabric Loader для вашей версии Minecraft. Если у вас его нет, скачайте его с официального сайта Fabric и позвольте ему исправить ваш лаунчер. Затем просто положите ViaFabric в папку с модами.

bash
# Базовые шаги:
# 1. Установите Fabric для вашей версии
# 2. Скачайте ViaFabric с Modrinth или CurseForge
# 3. Положите .jar-файл в .minecraft/mods/
# 4. Запустите через профиль Fabric

Для серверов всё одинаково - добавьте jar в серверные моды, перезапустите, и клиенты с несоответствующими версиями смогут присоединиться.

Проект поддерживает ветки версий, организованные по году и диапазону версий. Если вы на 1.20.6, ветка вер/1.14-1.21 содержит релизы для вас. Запускаете последнюю версию 26.x? Ищите вер/26.x. Если эмулируете 1.8.9 или 1.12.2, есть посвящённая ветка вер/1.8-1.12.


Как работает перевод

Minecraft-клиент и сервер общаются через протокол - конкретный язык пакетов и структур данных. Каждая версия имеет немного разный протокол. Когда клиент 1.20 встречает сервер 1.21, они буквально говорят на разных языках. ViaFabric сидит между ними и преобразует пакеты в реальном времени. Ваш клиент отправляет пакеты 1.20; ViaFabric переводит их в 1.21; сервер понимает. Обратное происходит с ответами сервера.

Для администраторов серверов есть функция интеграции с античитом. ViaFabric может отправлять вашу версию протокола на сервер через пользовательские сообщения полезной нагрузки, позволяя плагинам сервера знать, какую версию вы используете. Некоторые системы античита флагируют подозрительные несоответствия (например, заявление о 1.8, при отправке пакетов, эксклюзивных для 1.21) и используют эту информацию для проверки игроков.

ViaVersion включён, так что нет поиска зависимостей.

Хотите ещё больше гибкости версий? Сложите на ViaBackwards сверху - он позволяет старым серверам принимать новые клиенты, или используйте ViaRewind для ещё большей обратной совместимости.


Настоящие ограничения и распространённые подводные камни

Вот что разрушает ожидания людей: ViaFabric переводит протокол, а не функции. Если блок или предмет не существует в целевой версии, он не материализуется. Подключите клиент 1.21 с новыми блоками к серверу 1.19, и эти блоки либо превратятся в другие предметы, либо исчезнут. Ваш инвентарь переживёт, но непознанные предметы станут странными.

Версия Java важна для древних релизов. Проект явно указывает, что вам будут нужны сборки Java 8, если вы нацеливаетесь на 1.8.9 или 1.12.2.

Не работают кастомные реализации сервера.

Если сервер использует полностью проприетарные расширения протокола или изменённую структуру пакетов, ViaFabric не сможет перевести это. Он работает только со стандартными серверами Minecraft, следующие за стандартными протоколами vanilla. Сильно модифицированные серверы, добавляющие кастомные предметы кастомными способами, вызовут проблемы синхронизации.

Модифицированные реестры ломают перевод протокола. Сервер, запускающий тяжёлые моды, которые регистрируют кастомные предметы, блоки и заклинания вне протокола vanilla, не будет синхронизироваться правильно с клиентами ViaFabric. Переводы протокола предполагают использование стандартных структур данных.


Сообщество и тестирование

Сообщество Minecraft охватывает версии. Будь вы как игроки за такими скинами, как adderall_abuser, ironmouse, или testuser, вы, вероятно, часто прыгаете между версиями - пробуя старые серверы с друзьями, тестируя новые снэпшоты, или поддерживая миры через обновления. Вот где ViaFabric процветает.

Хотите протестировать версию, прежде чем полностью привязаться? Скачайте ViaFabric для обеих, запустите тестовый мир, и проверьте, как ваши моды, построения и рабочий процесс переживают переход.

Популярные члены сообщества, такие как joakim2tusen и housecz_zero, часто управляют несколькими мирами через версии. ViaFabric удаляет трения из этого рабочего процесса.

Сервер Discord ViaVersion стоит присоединиться, если вы столкнётесь с проблемами совместимости версий. Сообщество активно, обслуживающие реактивны, и большинство проблем задокументированы.


Когда ViaFabric не то, что вам нужно

Если вы запускаете модпаки, ViaFabric решает несоответствие версий, но не моды. Вам всё равно нужно установить каждый мод локально.

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

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

Об авторе
Alexandru Maftei
Alexandru MafteiВедущий автор

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Поделитесь с друзьями!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

Похожие статьи

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy