Scorge для Minecraft: языковой загрузчик Scala для Forge

Scorge в Minecraft: языковой загрузчик Scala для Forge Если вы пишете моды на Scala и хотите подружить их с экосистемой Forge, рано или поздно вы сталкиваетесь с тем, что движок ожидает «родной» для Java способ загрузки кода. Scorge решает эту задачу: это языковой загрузчик для Scala в связке с M...

Скачать Scorge для Minecraft 1.16.3, 1.15.2

Оригинальное название: Scorge

Версии Minecraft: 1.15.2, 1.16.3

Загрузчик: Forge

ФайлВерсияЗагрузчикРазмер
Scorge-3.1.2.jar1.15.2Forge6.0 МБСкачать
Scorge-3.1.3.jar1.16.3Forge6.2 МБСкачать

Scorge в Minecraft: языковой загрузчик Scala для Forge

Если вы пишете моды на Scala и хотите подружить их с экосистемой Forge, рано или поздно вы сталкиваетесь с тем, что движок ожидает «родной» для Java способ загрузки кода. Scorge решает эту задачу: это языковой загрузчик для Scala в связке с Minecraft Forge. По сути, он помогает Forge корректно подхватывать мод, написанный на Scala, и подключать нужные библиотеки так, чтобы сборка, запуск в одиночке и на серверах оставались предсказуемыми.

Зачем вообще нужен отдельный загрузчик языка

В мире моддинга важны не только блоки, биомы и механики обновлений, но и то, как именно код попадает в игру. Forge использует свои правила загрузки модов и провайдеров языков, и без специального моста Scala-мод может «не дойти» до нужного этапа инициализации. Scorge как раз и выступает таким мостом: он встраивается в цепочку FML и позволяет Forge увидеть ваш мод как полноценную часть модпака, а не как набор отдельных файлов, которые приходится тащить вручную.

Какую версию Scala поддерживает Scorge

Актуальная поддерживаемая версия Scala для Scorge — 2.13.4. Это важно держать в голове при обновлении зависимостей и при переносе проекта между версиями Minecraft: несовпадение версий языка часто даёт самые неприятные ошибки — от странных крашей при старте до проблем на сервере, когда клиент и сборка собраны по-разному.

Какие библиотеки уже «вшиты»

Scorge поставляется с затенёнными (shaded) библиотеками, чтобы уменьшить конфликты зависимостей в больших сборках. Сейчас в комплекте обычно фигурируют:

  • scala-library — базовая стандартная библиотека Scala;
  • scala-java8-compat — совместимость и удобные мосты между миром Java 8 и Scala.

Такой подход помогает, когда в одном модпаке смешаны десятки модов и разные версии инструментов: меньше шансов, что две копии одной и той же библиотеки начнут спорить друг с другом.

Политика версий Scala: что ждать от обновлений

У Scorge довольно чёткая линия развития. Ориентир — поддерживать последний мажорный релиз Scala, но с привязкой к стабильности Forge: версия Scala «фиксируется» до следующего стабильного релиза загрузчика/экосистемы, чтобы не устраивать хаос в середине жизненного цикла версии Minecraft. Кроме того, релиз-кандидаты и milestone-версии Scala не поддерживаются — если вы любите экспериментальные ветки языка, для модов под Forge это обычно плохая идея: стабильность сборки важнее экзотических фич компилятора.

Когда библиотеку просят добавить в Scorge — и когда её лучше оставить в моде

Если вы хотите расширить набор библиотек на уровне Scorge, правило простое по смыслу, хоть и строгое по формулировкам: новая библиотека должна быть для Scala 2, и у вас должны быть веские технические причины, почему она должна жить именно в Scorge, а не поставляться вместе с вашим модом. С другой стороны, если библиотеку нужно убрать, это делается на смене версии Minecraft, чтобы не ломать обратную совместимость внутри одной линейки MC, и тоже с понятным техническим обоснованием.

На практике это защищает игроков и администраторов серверов: никто не хочет, чтобы «вчера работало — сегодня сломалось» из-за перетасовки общих зависимостей посреди популярной версии игры.

Как подключить Scorge: Maven, папка mods и classpath

Типичный путь — добавить Scorge как Maven-зависимость и следовать примеру проекта из документации загрузчика. Дальше важный нюанс, который часто удивляет новичков: из-за того, как FML подгружает language providers, Scorge нужно положить в папку mods в run-директории (или эквивалентно добавить на classpath вручную). Это не «каприз разработчика», а следствие механики загрузки: обойти ограничение корректно нельзя, зато заранее понятно, куда класть файлы при отладке и при сборке тестового клиента.

Если вы собираете модпак с кучей дополнений и не хотите вручную собирать зависимости по кусочкам, имеет смысл упростить себе жизнь на этапе установки инструментов. Кстати, если вы параллельно тестируете другие моды и сборки, этот мод можно легко установить через лаунчер foxygame.net — удобный, гибкий и современный лаунчер для Minecraft, где можно скачать моды прямо из меню, без лишних танцев с папками и ручными архивами.

Что это меняет для автора мода и для игрока

Для автора Scorge — это способ писать на Scala там, где «по умолчанию» всё заточено под Java, не превращая релиз в лотерею с classpath. Для игрока итог выглядит скучно-хорошо: мод ставится как мод, сервер поднимается как сервер, а обновления Minecraft и Forge остаются управляемыми, если вы следите за поддерживаемой версией Scala и не смешиваете экспериментальные ветки.

Вывод

Scorge — не «ещё одна модификация с блоками», а инфраструктурный кирпич для Scala-моддинга на Forge: он задаёт поддерживаемую версию языка, поставляет нужные затенённые библиотеки и объясняет, как безопасно менять зависимости между версиями Minecraft. Если вы целитесь в стабильные сборки, серверную совместимость и предсказуемые обновления, держите политику версий Scorge в голове так же привычно, как список биомов и механик в патчноутах — это сэкономит время на отладке и убережёт модпак от странных конфликтов в самый неподходящий момент.