TGViewer
Phase Of Horizon | HollowEngine Phase Of Horizon | HollowEngine @hollowengine · 372 subscribers
Post #221 396
📓 Еженедельный девлог №2 | Переменные, локализация и instancing

📊 Статистика: 10 коммитов, 5 356 добавлений и 3 759 удалений.

За последние 7 дней в HollowEngine я работал по следующим задачам: система переменных в блоках кода, подход к локализации, сохранение компонентов и новый рендер моделей через инстансинг.

🧠 Блоки кода и переменные
Я немного доработал систему переменных в блоках кода. Появились новые виды переменных, из-за чего сами скрипты стали заметно гибче: теперь можно аккуратнее работать с данными текущего контекста, сервера и сущностей, ранее были доступны только переменные одной ветки. Но всё ещё продолжается доработка NBT-переменных сущностей.

Параллельно я подчистил валидацию и диагностику графов этих самых блоков. При наличии ошибок, они будут появляться в `hollowengine/logs/codeblocks-validation.log`.

Из видимых изменений:
• появились новые variable blocks и scoped/context-переменные
• улучшена работа output-переменных событий
• доработан анализ графа и сообщений об ошибках
• поправлены проблемы с восстановлением скриптов после сбоев
• добавлены команды и тесты для проверки новой логики


🌍 Новая система локализации
Отдельно переработал lang-систему. Вместо двух огромных файлов en_us.json и ru_ru.json на 1500 строк, локализация теперь разложена по небольшим JSON-файлам по категориям: GUI, code blocks, IDE, теги, команды и так далее.

Так что теперь работать с переводами движка куда проще, одно дело, когда у тебя в моде пара десятков предметов, блоков и несколько механизмов с интерфейсами, а другое, когда у тебя одних только блоков кода штук 150... При этом, всё совместимо с текущей системой переводов Minecraft, поскольку работает через Gradle-скрипт для объединения нескольких lang-файлов, так что бы они собирались в один общий файл без повторов.


🧱 Компоненты и сохранение сущностей
Ещё одно важное исправление - ленивая инициализация ECS-сущностей. Теперь в ECS добавляются только сущности у которых уже есть какие либо компоненты, т.е. на больших сборках нагрузка станет меньше, а обработка нпс - быстрее.


🎨 Инстансинг и поддержка Iris
Самая большая задача недели - начало нормальной поддержки инстансинга для моделей.

Сейчас в рендере происходит сбор одинаковых примитивов, чтобы потом вместо того, чтобы по одному их кидать через `Java -> JNI -> OpenGL -> GPU` сразу отправить большую пачку из десятков, сотен, а то и тысяч моделей. Не стоит пока ждать огромного прироста производительности, посколькe BlockBench-модели состоят из большого количества кубов, каждый из которых даже через инстансинг производительность особо не повысит в сравнении с уже существующим механизмом батчинга, а одновременно обрабатывать и скиннинг, и инстансинг движок пока не умеет. Но в случае с большим количеством статичных высоко полигональных моделей прирост производительности может быть в 10, а то и в 100 раз лучше, чем то, что было раньше.

И главное - это всё работает с шейдерпаками Iris! Движок сам вмешивается в его пайплайн, находит шейдеры отвечающие за тени и g-buffer и модифицирует их под инстансинг, при этом стараясь сохранить совместимость с кастомными шейдерами.

P.S. на Oculus тоже должно работать, но я не проверял, если порт кривой, значит работать не будет, если порт надёжный - работать будет 🙃


🖼 Ещё по мелочи
Помимо крупных задач, был исправлен баг с изображениями при перезагрузке ресурсов в Kool UI.


На этом за неделю всё. Получилось меньше фич, чем в прошлом девлоге, но зато эта неделя хорошо повлияла на производительность и стабильность
  • ❤ 3
  • 🐳 1
More from @hollowengine
  1. Sep 25, 2026Я конечно сам в этих методиках пока только разбираюсь, но как будто получается неплохо? 🤔
  2. Sep 25, 2026Система эффектов ☄️ | День 11 Добавил поддержку шейдеров, шлейфов, объектов и другие штуки…
  3. Sep 24, 2026Новый интерфейс движка 🛞 | День 10 Да, я опять его переделал, и что вы мне сделаете? В пе…
  4. Sep 23, 2026Эмиттеры партиклов 🎮 | День 9 В общем, сегодня доработал ядро системы эффектов до уровня…
  5. Sep 22, 2026Ну вот, и даже ничего не сгорело, не зря год назад запарился и написал систему инстансинга…
  6. Sep 22, 2026Зря вы мне доверили систему эффектов и партиклов 😱 (День 8)
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →