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

By HytaleCharts Team Category: technical 8 min read

Един критичен въпрос отеква сред разработчиците на Discords: Къде е документацията на API? Това ръководство обхваща всичко, което знаем за разработката на Hytale.

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