Весь прогресс съела учёба | День 9
Сегодня толком поработать не удалось, среди изменений лишь исправление багов каретки, исправление подвисаний при первой активации компилятора и открытии файлах, исправления всплывающих подсказок и правки в их дизайне (кстати весь дизайн теперь вынесен в общий файл, что в будущем позволит создавать Ваши цветовые схемы и менять шрифты).
Также в связи с тем, что появилось много дел по учёбе, я думаю немного отодвинуть дроп связанный с системой анимаций на выходные, но завтра приблизительно в 18:00 будет дроп с базовым редактором без контекстных скриптов (вроде того, что в ролике из прошлого поста) для того, чтобы Вы могли сами оценить новый редактор в целом и собрать полный набор его косяков 🙃
В остальном, посты продолжат выходить каждый день, пока я не выложу все 3 дропа, а уже после этого, я, пожалуй, возьму небольшой перерыв 🫠
Сегодня толком поработать не удалось, среди изменений лишь исправление багов каретки, исправление подвисаний при первой активации компилятора и открытии файлах, исправления всплывающих подсказок и правки в их дизайне (кстати весь дизайн теперь вынесен в общий файл, что в будущем позволит создавать Ваши цветовые схемы и менять шрифты).
Также в связи с тем, что появилось много дел по учёбе, я думаю немного отодвинуть дроп связанный с системой анимаций на выходные, но завтра приблизительно в 18:00 будет дроп с базовым редактором без контекстных скриптов (вроде того, что в ролике из прошлого поста) для того, чтобы Вы могли сами оценить новый редактор в целом и собрать полный набор его косяков 🙃
В остальном, посты продолжат выходить каждый день, пока я не выложу все 3 дропа, а уже после этого, я, пожалуй, возьму небольшой перерыв 🫠
👍5🔥1
Первый дроп 🌠 | День 10
Я немного опоздал со вчерашними сроками, но там появились непредвиденные сложности со старыми миксинами, которые теперь не применяются на новый компилятор))
Но в целом компилятор и IDE теперь работают 👀
Хоть и есть пока небольшие косяки в редакторе, но в целом уже хотя бы что-то
Установка:
1) Добавить HollowEngine в папку с модами;
2) Положить файл
Примечания:
1) Скрипты пока можно запускать только внутри мира
2) Текущий скрипт буквально не имеет никаких встроенных методов, переменных, нпс, и т.п. Это пустышка просто чтобы поиграться с редактором! Но вы можете получить экземпляр сервера импортировав
3)
4) Пока я не добавил систему кэширования игра будет загружаться существенно дольше, это нормально.
P.S. На Fabric пока не проверял, но на Forge всё работает куда быстрее чем раньше 🔥
Я немного опоздал со вчерашними сроками, но там появились непредвиденные сложности со старыми миксинами, которые теперь не применяются на новый компилятор))
Но в целом компилятор и IDE теперь работают 👀
Хоть и есть пока небольшие косяки в редакторе, но в целом уже хотя бы что-то
Установка:
1) Добавить HollowEngine в папку с модами;
2) Положить файл
HollowEngineCompiler.jar в папку hollowengine.Примечания:
1) Скрипты пока можно запускать только внутри мира
2) Текущий скрипт буквально не имеет никаких встроенных методов, переменных, нпс, и т.п. Это пустышка просто чтобы поиграться с редактором! Но вы можете получить экземпляр сервера импортировав
currentServer.3)
println пока нормально не захватывается, но Вы можете использовать logI, logW и logE для разного вида логгирования.4) Пока я не добавил систему кэширования игра будет загружаться существенно дольше, это нормально.
P.S. На Fabric пока не проверял, но на Forge всё работает куда быстрее чем раньше 🔥
🤩5👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Новое обновление движка Kool, Cool или Not Cool? 😎 | День 11
Сегодня я обновил движок интерфейсов (и не только) до новой версии. Что в нём нового?
1) Асинхронный рендеринг: пока идёт передача данных на GPU и непосредственно отрисовка, одновременно с этим уже может готовиться следующий кадр не простаивая ресурсы впустую🔥
(Это касается только интерфейсов движка, в последствии этот движок также будет использоваться для партиклов, физики и ещё нескольких фич)
2) Новые инструменты для анимаций в интерфейсов вдохновлённые JetPack Compose, от DanBat'а:
3) Встроенная поддержка
4) Исправления многих багов и вылетов
Сегодня я обновил движок интерфейсов (и не только) до новой версии. Что в нём нового?
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
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжаю обновлять Kool и исправлять баги 🐞 | День 12
На текущий момент вроде как весь функционал перенесён на новую версию движка, за исключением
Скорее всего в будущем бекпортирую эту фичу, но пока она не в приоритете.
Тем временем, DanBat недавно закончил полный список интерполяций/сглаживаний с предпросмотром, чему также в ближайшем будущем найдётся применение (анимации в UI, работа с камерой, анимации нпс и другие моменты).
Ну а я пока что перенёс всю логику анимаций на новую систему и поправил небольшие косяки с ней.
К тому же рабочая неделя подходит к концу, так что на выходных уже смогу сосредоточиться на системе анимаций и событий, так что в лучшем случае в понедельник уже буду обновлять под них документацию 🤔
На текущий момент вроде как весь функционал перенесён на новую версию движка, за исключением
.ttf шрифтов (вместо них, как и раньше MSDF-шрифты), проблема тут в том, что сам Minecraft использует старую версию LWJGL 3.3.1, когда уже активно применяется 3.3.6, из-за чего некоторые её фичи не доступны. Ради этого обновляться на 1.21.10 я не хочу)))Скорее всего в будущем бекпортирую эту фичу, но пока она не в приоритете.
Тем временем, DanBat недавно закончил полный список интерполяций/сглаживаний с предпросмотром, чему также в ближайшем будущем найдётся применение (анимации в UI, работа с камерой, анимации нпс и другие моменты).
Ну а я пока что перенёс всю логику анимаций на новую систему и поправил небольшие косяки с ней.
К тому же рабочая неделя подходит к концу, так что на выходных уже смогу сосредоточиться на системе анимаций и событий, так что в лучшем случае в понедельник уже буду обновлять под них документацию 🤔
🤨5⚡3
This media is not supported in your browser
VIEW IN TELEGRAM
Первые наработки системы анимаций ⚡️| День 13
Я в целом определился со структурой системы анимаций и клиент-серверным взаимодействием. Сейчас работаю над внутренней реализацией без общего API, которая уже умеет:
1) Воспроизводить анимации во всех режимах и автоматически рассчитывать переходы между анимациями
2) Настраивать отображение определённых костей
3) Прикреплять к костям разные объекты, вроде предметов или брони (в будущем и партиклы)
4) Рассчитывать процедурные анимации (поворот головы или зрачков)
5) Добавление под-моделей на основную модель + настройка всех вышеперечисленных функций для неё
Пока что не могу гарантировать, что успею всё это за выходные, но буду держать в курсе. Основная проблема сейчас это синхронизация данных, поскольку сейчас готова лишь клиентская часть, а я хочу, чтобы всё это можно было менять и со стороны сервера (кроме процедурных анимаций, они и должны вычисляться на клиенте). И нужно написать довольно сложную систему, чтобы передавать как можно меньше данных через сеть 🥲
Я в целом определился со структурой системы анимаций и клиент-серверным взаимодействием. Сейчас работаю над внутренней реализацией без общего API, которая уже умеет:
1) Воспроизводить анимации во всех режимах и автоматически рассчитывать переходы между анимациями
2) Настраивать отображение определённых костей
3) Прикреплять к костям разные объекты, вроде предметов или брони (в будущем и партиклы)
4) Рассчитывать процедурные анимации (поворот головы или зрачков)
5) Добавление под-моделей на основную модель + настройка всех вышеперечисленных функций для неё
Пока что не могу гарантировать, что успею всё это за выходные, но буду держать в курсе. Основная проблема сейчас это синхронизация данных, поскольку сейчас готова лишь клиентская часть, а я хочу, чтобы всё это можно было менять и со стороны сервера (кроме процедурных анимаций, они и должны вычисляться на клиенте). И нужно написать довольно сложную систему, чтобы передавать как можно меньше данных через сеть 🥲
🔥7❤1
Дорабатываю компоненты для сущностей 📦 | День 14
Те кто давно следит за развитием движка уже давно знают, что он перешёл с Forge Capability / Fabric Cardinal Components на мою собственную универсальную систему компонентов. Собственно, начав переносить функционал системы анимаций на эти самые компоненты, я понял, что их нужно доработать, чтобы Вам было проще с ними работать:
1) Обновил некоторую часть API по взаимодействию между компонентами, теперь
2) Добавил возможность обрабатывать события внутри компонентов (они срабатывают только если сам компонент добавлен и активен)
3) Добавил хотсвап скриптовых компонентов (т.е. при изменении компонента он обновится сразу у всех сущностей без необходимости перезахода в мир или убийства нпс)
Вполне вероятно сегодня ещё более подробно распишу, как с подобной системой работать, но уже на Boosty, а тут у меня символы заканчиваются 🙃
Ну а на этом у меня пока всё 🫡
Те кто давно следит за развитием движка уже давно знают, что он перешёл с Forge Capability / Fabric Cardinal Components на мою собственную универсальную систему компонентов. Собственно, начав переносить функционал системы анимаций на эти самые компоненты, я понял, что их нужно доработать, чтобы Вам было проще с ними работать:
1) Обновил некоторую часть API по взаимодействию между компонентами, теперь
owner компонента доступен всегда, а не только при прикреплении компонента.2) Добавил возможность обрабатывать события внутри компонентов (они срабатывают только если сам компонент добавлен и активен)
3) Добавил хотсвап скриптовых компонентов (т.е. при изменении компонента он обновится сразу у всех сущностей без необходимости перезахода в мир или убийства нпс)
Вполне вероятно сегодня ещё более подробно распишу, как с подобной системой работать, но уже на Boosty, а тут у меня символы заканчиваются 🙃
Ну а на этом у меня пока всё 🫡
🔥9❤1
Двести тысяч компонентов готовы и ещё миллион на подходе 📦📦📦 | День 15
Сегодня я потратил очередные 5 часов, чтобы наладить синхронизацию компонентов, чтобы обработать все случаи их создания и удаления на клиенте и сервере и... Оно теперь работает как надо 👀
Система анимаций ещё дорабатывается, но базовый компонент с моделькой нпс уже готов, так что выпускаю промежуточный дроп с небольшим примером, буду рад, если Вы протестируете его работу на Forge/Fabric или может даже добавите чего-нибудь от себя. Это поможет быстрее прийти к релизу и исправить все ошибки!
Инструкция:
1) Установите моды (HollowEngineCompiler.jar в папку
2) Удалите папки
3) Закиньте шаблон скрипта в
4) Если вы уже зашли в мир, то пропишите команду
5) Добавьте компонент на любую сущность командой
P.S. Жду в комментариях объяснение от нейронки, что делает код из скрипта 😃
P.P.S. Косяк с дублированием сообщений в видео исправлен в скрипте, кто первый угадает в чём дело, того могу добавить в следующем ролике про движок на YouTube, как нпс 👀
Ну и напоследок, напоминаюо моём Boosty о том, что скоро я займусь самими событиями для ваших историй и если вы ещё не голосовали за то, как оно будет работать, то сейчас последний шанс ⏰
Сегодня я потратил очередные 5 часов, чтобы наладить синхронизацию компонентов, чтобы обработать все случаи их создания и удаления на клиенте и сервере и... Оно теперь работает как надо 👀
Система анимаций ещё дорабатывается, но базовый компонент с моделькой нпс уже готов, так что выпускаю промежуточный дроп с небольшим примером, буду рад, если Вы протестируете его работу на Forge/Fabric или может даже добавите чего-нибудь от себя. Это поможет быстрее прийти к релизу и исправить все ошибки!
Инструкция:
1) Установите моды (HollowEngineCompiler.jar в папку
hollowengine, сам мод в папку mods, дополнительно ничего устанавливать не надо)2) Удалите папки
hollowcore и hollowengine/.cache если они есть3) Закиньте шаблон скрипта в
hollowengine/scripts4) Если вы уже зашли в мир, то пропишите команду
/reload, чтобы перезагрузить компонент5) Добавьте компонент на любую сущность командой
/hollowengine componentP.S. Жду в комментариях объяснение от нейронки, что делает код из скрипта 😃
P.P.S. Косяк с дублированием сообщений в видео исправлен в скрипте, кто первый угадает в чём дело, того могу добавить в следующем ролике про движок на YouTube, как нпс 👀
Ну и напоследок, напоминаю
boosty.to
Внеплановый опрос - Hollow Horizon
Как Вы помните, до релиза я хотел сделать 3 вещи: 1) Новая система анимаций (готова, осталось написать биндинги) 2) Улучшение и оптимизация редактора кода (осталось доработать обфускацию и пару мелких правок интерфейса) 3) Скриптинг событий, игроки и нпс…
❤1
Результаты внепланового опроса 🗓 | День 16
Ну что же, у нас 2 претендента, состояния и блоки кода. Какой из них я выберу? Вероятно - оба?
Подробнее расписал свои мысли здесь
Интересно узнать Ваше мнение по этому поводу под этим постом. Стоит этот крюк в разработке затрачиваемых усилий, или стоит и дальше идти в сторону скриптинга состояний?
Ну что же, у нас 2 претендента, состояния и блоки кода. Какой из них я выберу? Вероятно - оба?
Подробнее расписал свои мысли здесь
Интересно узнать Ваше мнение по этому поводу под этим постом. Стоит этот крюк в разработке затрачиваемых усилий, или стоит и дальше идти в сторону скриптинга состояний?
boosty.to
Результаты внепланового опроса - Hollow Horizon
Прошла неделя с опроса и как я вижу люди разделились на 2 лагеря, скриптинг через состояния и блоки кода с небольшим отрывом в пользу первого. Думаю стоит обсудить оба варианта более детально. В связи с этим я немного почитал эту тему блоков кода и как…
👍2
Media is too big
VIEW IN TELEGRAM
Система блоков кода уже почти готова 😶 | День 17
Прежде всего напомню, что скриптинг не отменяется, просто пока жду выхода Kotlin 2.3.0 в релиз. Ну а пока я с нуля запилил UI для системы блоков кода, что из этого вышло вы можете увидеть в ролике.
К слову пока это всё кодил, пришёл к выводу, что многие вещи теперь делаются гораздо проще:
- Приостановки скрипта: Каждый блок легко приостановить или сохранить.
- Добавление переменных и функций: В целом можно автоматизировать аннотациями в коде.
- Контекст из игры: В UI легко получить данные обо всех текстурах, моделях, звуках и других ассетах, что позволит ещё до запуска их проверить.
- Баги и отладка: Можно даже визуально отобразить на каком блоке сейчас находится выполнение.
p.s. это пока лишь набросок интерфейса, который ещё будет дорабатываться, да и пока это мой первый опыт в создании перетаскиваемых UI в Kool 🙃
Короче говоря, ждём обновление 👍
Прежде всего напомню, что скриптинг не отменяется, просто пока жду выхода Kotlin 2.3.0 в релиз. Ну а пока я с нуля запилил UI для системы блоков кода, что из этого вышло вы можете увидеть в ролике.
К слову пока это всё кодил, пришёл к выводу, что многие вещи теперь делаются гораздо проще:
- Приостановки скрипта: Каждый блок легко приостановить или сохранить.
- Добавление переменных и функций: В целом можно автоматизировать аннотациями в коде.
- Контекст из игры: В UI легко получить данные обо всех текстурах, моделях, звуках и других ассетах, что позволит ещё до запуска их проверить.
- Баги и отладка: Можно даже визуально отобразить на каком блоке сейчас находится выполнение.
p.s. это пока лишь набросок интерфейса, который ещё будет дорабатываться, да и пока это мой первый опыт в создании перетаскиваемых UI в Kool 🙃
Короче говоря, ждём обновление 👍
❤5🔥1🤝1
Экспериментирую с блоками кода и сообщениями 📡 | Ночь 17
Написал пока интерпретатор на корутинах, вроде выглядит прикольно, хотя над дизайном ещё работать и работать, чёта он мне глаза слепит, да и
Написал пока интерпретатор на корутинах, вроде выглядит прикольно, хотя над дизайном ещё работать и работать, чёта он мне глаза слепит, да и
margin давно надо поправить)❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Дорабатываю интерфейсы 🖥 | День 18
Сегодня у меня было довольно много работы по учёбе, так что только недавно освободился. В целом я немного доработал интерфейс: добавил анимаций, поправил баги с выходом за границы окна, сделал чтобы блоки растягивались под общий размер. Ну и понемногу работаю над самими нпс, моделями, новыми блоками и их сохранением.
Ну а пока можете предлагать в комментариях свои идеи, предложения или дополнения по этой системе 👀
Я, например, думаю сразу добавить для блока «координаты» кнопку, чтобы вставить туда координаты игрока 💡
Сегодня у меня было довольно много работы по учёбе, так что только недавно освободился. В целом я немного доработал интерфейс: добавил анимаций, поправил баги с выходом за границы окна, сделал чтобы блоки растягивались под общий размер. Ну и понемногу работаю над самими нпс, моделями, новыми блоками и их сохранением.
Ну а пока можете предлагать в комментариях свои идеи, предложения или дополнения по этой системе 👀
Я, например, думаю сразу добавить для блока «координаты» кнопку, чтобы вставить туда координаты игрока 💡
❤6🔥1
Экспериментальная версия с нпс ✨| День 19
Ну что же, выпускаю систему блоков кода в открытый доступ 🚀
Пока это прям самый минимум:
- Создание нпс
- Управление ходьбой
- Управление взглядом
- Использование и ломание блоков
- Вывод сообщений в чат
Ну и прочие операторы, которые я показывал ранее.
Это всё ещё очень ранняя версия без сохранения контекста выполнения, состояний, и большого количества других функций, но она уже показывает, как именно будет работать система - и её задумку можно оценить уже сейчас. Так что жду вашего фидбека, интересно, что получится в итоге 👀
https://www.youtube.com/watch?v=byOGJ5uz-e0
Ну что же, выпускаю систему блоков кода в открытый доступ 🚀
Пока это прям самый минимум:
- Создание нпс
- Управление ходьбой
- Управление взглядом
- Использование и ломание блоков
- Вывод сообщений в чат
Ну и прочие операторы, которые я показывал ранее.
Это всё ещё очень ранняя версия без сохранения контекста выполнения, состояний, и большого количества других функций, но она уже показывает, как именно будет работать система - и её задумку можно оценить уже сейчас. Так что жду вашего фидбека, интересно, что получится в итоге 👀
https://www.youtube.com/watch?v=byOGJ5uz-e0
🔥6