TGViewer
Channel Public Channel
Phase Of Horizon | HollowEngine

Phase Of Horizon | HollowEngine

@hollowengine

Engine for development story-based maps & modpacks.

Support the project:
https://boosty.to/hollowhorizon/
Subscribers
378
Photos
155
Videos
98
Links
65

Showing posts older than #66 · Back to latest

Older Posts 15 shown
Post #64 830
Экспериментирую с блоками кода и сообщениями 📡 | Ночь 17

Написал пока интерпретатор на корутинах, вроде выглядит прикольно, хотя над дизайном ещё работать и работать, чёта он мне глаза слепит, да и margin давно надо поправить)
  • ❤ 7
Post #63 856
Система блоков кода уже почти готова 😶 | День 17

Прежде всего напомню, что скриптинг не отменяется, просто пока жду выхода Kotlin 2.3.0 в релиз. Ну а пока я с нуля запилил UI для системы блоков кода, что из этого вышло вы можете увидеть в ролике.
К слову пока это всё кодил, пришёл к выводу, что многие вещи теперь делаются гораздо проще:
- Приостановки скрипта: Каждый блок легко приостановить или сохранить.
- Добавление переменных и функций: В целом можно автоматизировать аннотациями в коде.
- Контекст из игры: В UI легко получить данные обо всех текстурах, моделях, звуках и других ассетах, что позволит ещё до запуска их проверить.
- Баги и отладка: Можно даже визуально отобразить на каком блоке сейчас находится выполнение.

p.s. это пока лишь набросок интерфейса, который ещё будет дорабатываться, да и пока это мой первый опыт в создании перетаскиваемых UI в Kool 🙃

Короче говоря, ждём обновление 👍
  • ❤ 5
  • 🔥 1
  • 🤝 1
Post #62 837
Результаты внепланового опроса 🗓 | День 16

Ну что же, у нас 2 претендента, состояния и блоки кода. Какой из них я выберу? Вероятно - оба?
Подробнее расписал свои мысли здесь

Интересно узнать Ваше мнение по этому поводу под этим постом. Стоит этот крюк в разработке затрачиваемых усилий, или стоит и дальше идти в сторону скриптинга состояний?
boosty.to Результаты внепланового опроса - Hollow Horizon Прошла неделя с опроса и как я вижу люди разделились на 2 лагеря, скриптинг через состояния и блоки кода с небольшим отрывом в пользу первого. Думаю стоит обсудить оба варианта более детально. В связи с этим я немного почитал эту тему блоков кода и как…
  • 👍 2
Post #57 806
Двести тысяч компонентов готовы и ещё миллион на подходе 📦📦📦 | День 15

Сегодня я потратил очередные 5 часов, чтобы наладить синхронизацию компонентов, чтобы обработать все случаи их создания и удаления на клиенте и сервере и... Оно теперь работает как надо 👀
Система анимаций ещё дорабатывается, но базовый компонент с моделькой нпс уже готов, так что выпускаю промежуточный дроп с небольшим примером, буду рад, если Вы протестируете его работу на Forge/Fabric или может даже добавите чего-нибудь от себя. Это поможет быстрее прийти к релизу и исправить все ошибки!

Инструкция:
1) Установите моды (HollowEngineCompiler.jar в папку hollowengine, сам мод в папку mods, дополнительно ничего устанавливать не надо)
2) Удалите папки hollowcore и hollowengine/.cache если они есть
3) Закиньте шаблон скрипта в hollowengine/scripts
4) Если вы уже зашли в мир, то пропишите команду /reload, чтобы перезагрузить компонент
5) Добавьте компонент на любую сущность командой /hollowengine component

P.S. Жду в комментариях объяснение от нейронки, что делает код из скрипта 😃
P.P.S. Косяк с дублированием сообщений в видео исправлен в скрипте, кто первый угадает в чём дело, того могу добавить в следующем ролике про движок на YouTube, как нпс 👀

Ну и напоследок, напоминаю о моём Boosty о том, что скоро я займусь самими событиями для ваших историй и если вы ещё не голосовали за то, как оно будет работать, то сейчас последний шанс ⏰
boosty.to Внеплановый опрос - Hollow Horizon Как Вы помните, до релиза я хотел сделать 3 вещи: 1) Новая система анимаций (готова, осталось написать биндинги) 2) Улучшение и оптимизация редактора кода (осталось доработать обфускацию и пару мелких правок интерфейса) 3) Скриптинг событий, игроки и нпс…
  • ❤ 1
Post #56 321
Дорабатываю компоненты для сущностей 📦 | День 14

Те кто давно следит за развитием движка уже давно знают, что он перешёл с Forge Capability / Fabric Cardinal Components на мою собственную универсальную систему компонентов. Собственно, начав переносить функционал системы анимаций на эти самые компоненты, я понял, что их нужно доработать, чтобы Вам было проще с ними работать:
1) Обновил некоторую часть API по взаимодействию между компонентами, теперь owner компонента доступен всегда, а не только при прикреплении компонента.
2) Добавил возможность обрабатывать события внутри компонентов (они срабатывают только если сам компонент добавлен и активен)
3) Добавил хотсвап скриптовых компонентов (т.е. при изменении компонента он обновится сразу у всех сущностей без необходимости перезахода в мир или убийства нпс)

Вполне вероятно сегодня ещё более подробно распишу, как с подобной системой работать, но уже на Boosty, а тут у меня символы заканчиваются 🙃
Ну а на этом у меня пока всё 🫡
  • 🔥 9
  • ❤ 1
Post #55 771
Первые наработки системы анимаций ⚡️| День 13

Я в целом определился со структурой системы анимаций и клиент-серверным взаимодействием. Сейчас работаю над внутренней реализацией без общего API, которая уже умеет:
1) Воспроизводить анимации во всех режимах и автоматически рассчитывать переходы между анимациями
2) Настраивать отображение определённых костей
3) Прикреплять к костям разные объекты, вроде предметов или брони (в будущем и партиклы)
4) Рассчитывать процедурные анимации (поворот головы или зрачков)
5) Добавление под-моделей на основную модель + настройка всех вышеперечисленных функций для неё

Пока что не могу гарантировать, что успею всё это за выходные, но буду держать в курсе. Основная проблема сейчас это синхронизация данных, поскольку сейчас готова лишь клиентская часть, а я хочу, чтобы всё это можно было менять и со стороны сервера (кроме процедурных анимаций, они и должны вычисляться на клиенте). И нужно написать довольно сложную систему, чтобы передавать как можно меньше данных через сеть 🥲
  • 🔥 7
  • ❤ 1
Post #54 827
Продолжаю обновлять Kool и исправлять баги 🐞 | День 12

На текущий момент вроде как весь функционал перенесён на новую версию движка, за исключением .ttf шрифтов (вместо них, как и раньше MSDF-шрифты), проблема тут в том, что сам Minecraft использует старую версию LWJGL 3.3.1, когда уже активно применяется 3.3.6, из-за чего некоторые её фичи не доступны. Ради этого обновляться на 1.21.10 я не хочу)))
Скорее всего в будущем бекпортирую эту фичу, но пока она не в приоритете.
Тем временем, DanBat недавно закончил полный список интерполяций/сглаживаний с предпросмотром, чему также в ближайшем будущем найдётся применение (анимации в UI, работа с камерой, анимации нпс и другие моменты).
Ну а я пока что перенёс всю логику анимаций на новую систему и поправил небольшие косяки с ней.

К тому же рабочая неделя подходит к концу, так что на выходных уже смогу сосредоточиться на системе анимаций и событий, так что в лучшем случае в понедельник уже буду обновлять под них документацию 🤔
  • 🤨 5
  • ⚡ 3
Post #53 891
Новое обновление движка Kool, Cool или Not Cool? 😎 | День 11

Сегодня я обновил движок интерфейсов (и не только) до новой версии. Что в нём нового?
1) Асинхронный рендеринг: пока идёт передача данных на GPU и непосредственно отрисовка, одновременно с этим уже может готовиться следующий кадр не простаивая ресурсы впустую🔥
(Это касается только интерфейсов движка, в последствии этот движок также будет использоваться для партиклов, физики и ещё нескольких фич)
2) Новые инструменты для анимаций в интерфейсов вдохновлённые JetPack Compose, от DanBat'а:
// Вы создаёте переменную
var isHovered by remember(false)
// Указываете цвет в зависимости от состояния
val color = Color(
if (isHovered) "ffb703ff"
else "219ebcff"
)
// И оно автоматически вычисляет промежуточный цвет на основе указанной задержки и сглаживания
val animColor by animateColorAsState(color, tween(0.2f))

// Присваиваем цвет виджету
modifier.backgroundColor(animColor)

3) Встроенная поддержка .ttf шрифтов
4) Исправления многих багов и вылетов
  • 👍 3
  • ❤ 1
  • 🔥 1
  • 🤡 1
Post #49 1.04K
Post #48 373
Первый дроп 🌠 | День 10

Я немного опоздал со вчерашними сроками, но там появились непредвиденные сложности со старыми миксинами, которые теперь не применяются на новый компилятор))

Но в целом компилятор и IDE теперь работают 👀
Хоть и есть пока небольшие косяки в редакторе, но в целом уже хотя бы что-то

Установка:
1) Добавить HollowEngine в папку с модами;
2) Положить файл HollowEngineCompiler.jar в папку hollowengine.

Примечания:
1) Скрипты пока можно запускать только внутри мира
2) Текущий скрипт буквально не имеет никаких встроенных методов, переменных, нпс, и т.п. Это пустышка просто чтобы поиграться с редактором! Но вы можете получить экземпляр сервера импортировав currentServer.
3) println пока нормально не захватывается, но Вы можете использовать logI, logW и logE для разного вида логгирования.
4) Пока я не добавил систему кэширования игра будет загружаться существенно дольше, это нормально.

P.S. На Fabric пока не проверял, но на Forge всё работает куда быстрее чем раньше 🔥
  • 🤩 5
  • 👍 2
  • ❤ 1
Post #47 982
Весь прогресс съела учёба 🫩 | День 9

Сегодня толком поработать не удалось, среди изменений лишь исправление багов каретки, исправление подвисаний при первой активации компилятора и открытии файлах, исправления всплывающих подсказок и правки в их дизайне (кстати весь дизайн теперь вынесен в общий файл, что в будущем позволит создавать Ваши цветовые схемы и менять шрифты).

Также в связи с тем, что появилось много дел по учёбе, я думаю немного отодвинуть дроп связанный с системой анимаций на выходные, но завтра приблизительно в 18:00 будет дроп с базовым редактором без контекстных скриптов (вроде того, что в ролике из прошлого поста) для того, чтобы Вы могли сами оценить новый редактор в целом и собрать полный набор его косяков 🙃

В остальном, посты продолжат выходить каждый день, пока я не выложу все 3 дропа, а уже после этого, я, пожалуй, возьму небольшой перерыв 🫠
  • 👍 5
  • 🔥 1
Post #45 301
Компилирую компилятор 🥸 | День 8

Ну что, скрипты успешно компилируются и запускаются, так что я думаю это прогресс! Кроме того я немного переписал дизайн редактора и добавил подсказки внутри кода.
Но пока что всё же в открытый доступ выкладывать рановато, поскольку нужно доделать несколько косяков:
1) Обфускация кода Minecraft (на текущий момент новый компилятор с ней не совместим), но в целом это делается быстро.
2) Поправить небольшие косяки с панелью подсказок, поскольку она плохо адаптируется под размеры окна

Так что в связи с этим внеплановый опрос насчёт скриптинга самих нпс на Boosty, поскольку тут ограничение по количеству символов)
https://boosty.to/hollowhorizon/posts/e45f539a-e508-457c-9459-c47bcba336ac
(пост бесплатный, как и голосование, но пожелания платных спонсоров имеют больший приоритет)
  • ❤ 5
  • 🔥 2
Older posts →
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 →