Кодирование для Hytale: API, документация и экосистема Java-плагинов

By HytaleCharts Team Category: technical 8 min read

Важнейший вопрос звучит в Discords разработчиков: Где документация по API? Это руководство охватывает все, что мы знаем о разработке для Hytale.

По мере того как приближается запуск Early Access, в Discords разработчиков раздается критический вопрос: Где документация по API? Поскольку публичного сайта docs.hytale.com еще нет, разработчики, стремящиеся создать следующую великую серверную сеть, летают вслепую. Однако подтверждение архитектуры "Legacy Engine" предоставляет значительную дорожную карту для тех, кто знает, где искать. Для разработчиков и владельцев серверов, планирующих разместить свои проекты на hytalecharts.com сразу после запуска, понимание технических ограничений API уже сейчас - это разница между запуском в первый день и запуском в 30-й день. Вот окончательное руководство по технической реальности экосистемы разработчиков Hytale. Архитектура: Java-сервер, C#-клиент. Самая важная часть технической информации - это разделение языков. Legacy Engine работает по модели Shared Source для сервера. Сторона сервера (Java): Логика сервера написана на Java. Именно здесь происходит основная работа: правила игры, экономика, данные игроков и взаимодействие с миром. Client-Side (C#): Клиент игры работает на C#. В то время как клиент имеет закрытый исходный код для предотвращения мошенничества, сервер является "Shared Source", то есть владельцы сервера, скорее всего, будут иметь доступ к коду сервера для чтения, чтобы понять, как подключиться к нему. Влияние на разработчиков: Если вы разработчик плагинов для Minecraft, использующий Spigot или Paper, то вам повезло. Ваши навыки работы с Java можно напрямую перенести. Если вы изучали C++ в ожидании теперь уже отмененного движка, то вам нужно немедленно вернуться к Java. Различие между "плагинами" и "скриптами" Официальные записи в блогах прояснили важнейшее различие в API моддинга, которое многие упускают из виду: разницу между игровой логикой и игровым поведением. Серверные плагины (Java .jar-файлы) Это мощные инструменты. По словам технического директора Slikey, серверные плагины позволяют "глубоко модифицировать" систему. Вы можете создавать мини-игры, пользовательские экономики и сложные команды с помощью Java. Статус: Чрезвычайно мощный. Именно здесь будет происходить разработка бэкенда. Визуальный скриптинг (поведение) Для описания поведения в игре (например, как атакует монстр или как работает пользовательский предмет) Hytale не использует текстовые скрипты (например, Lua). Вместо этого в ней используется система визуальных сценариев на основе узлов, похожая на Unreal Engine Blueprints. Почему? Разработчики утверждают, что текстовые сценарии заставляют дизайнеров изучать программирование. Визуальный скриптинг расширяет возможности дизайнеров, позволяя программистам сосредоточиться на Java-бэкенде. Почему? Статус: Обязательное обучение. Разработчики, отказывающиеся от визуальных узлов, будут испытывать трудности при создании пользовательских сущностей. Вакуум "API": как подготовиться без документов Как подготовиться, если нет официального Javadoc или wiki? Изучите паттерн ECS "Flecs": Записи в блоге подтверждают, что движок использует систему компонентов сущностей (Entity Component System, ECS) под названием "Flecs". Хотя реализация Hytale является индивидуальной, концепция ECS универсальна. Откажитесь от объектно-ориентированного мышления (наследование) и перейдите к мышлению, ориентированному на данные (компоненты). Старый способ (Minecraft): class Zombie extends Monster Новый способ (Hytale): ID сущности 101 имеет PositionComponent, HealthComponent, AIComponent. Учите схемы JSON: "Активы данных" для блоков, элементов и пользовательского интерфейса управляются JSON. Ознакомьтесь со сложными структурами JSON, поскольку, скорее всего, именно так вы будете определять статические данные, не обращаясь к Java-коду. Настройте среду Java 21: Хотя точная версия Java не подтверждена, современная Java (21+) является отраслевым стандартом производительности. Убедитесь, что ваша IDE (IntelliJ или Eclipse) готова к рабочему процессу на базе Java. Настройте среду Java 21. Преимущество "общего источника" Модель сервера с общим исходным кодом - это переломный момент. Она подразумевает, что после загрузки выделенного серверного программного обеспечения вы можете получить исходный код (или декомпилируемый байткод) самого серверного банка. Стратегия: В день запуска не просто запустите сервер. Декомпилируйте его. (Если это разрешено EULA). Чтение официального кода сервера будет самым быстрым способом понять API до того, как будет написана официальная документация. Вывод: Будьте готовы к документированию. Первые несколько недель раннего доступа будут определяться открытием сообщества. Поскольку официальная документация, скорее всего, будет скудной или развивающейся, разработчики, которые документируют свои находки и делятся ими на таких платформах, как hytalecharts.com, станут фактическими лидерами экосистемы. API на подходе, и он говорит на Java. А вы свободно владеете им?