Итоги 2024 и планы на 2025!
Что же, похоже год подходит к концу и пришло время подводить итоги и строить планы на будущее...
Этот год пожалуй был довольно успешным для движка, без каких либо вложений и пиара мода движок получил своё довольно не малое сообщество. И за это время было сделано огромное количество разнообразных механик:
Legacy:
Legacy:
1) Была наконец доведена до ума реализация glTF моделей (скелетная анимация; шейп-кеи; PBR материалы; смешивание анимаций) - большинство людей не использовали даже 30% от возможностей этой системы, но моё дело сделать качественный инструмент.
2) Реплеи и редактор поз - почти никто этим не пользовался, к тому же такие фичи больше подходят для машиним, чем для сюжетных катсцен. К тому же системы были не удобные и документации по ним почти не было)
(Да простит меня бенди за его сворованный скриншот)
3) Замена моделей игрока - по сути тоже самое, что и glTF модели, но пришлось повозиться для совместимости с другими модами)
4) Простые эффекты, вроде тряски экрана и работы с игровым временем.
(*представьте себе скриншот тряски камеры*)
5) Базовая система управления камерой - всё ещё баганная, но для статичных кадров вполне работает, к сожалению времени её доделать так и не нашлось :)
(*представьте себе скриншот с анимацией камеры*)
6) Effekseer... Сколько боли в этих буквах... Поверьте, не только у вас с ней есть странности и баги, привести её в хоть сколько-нибудь рабочее состояние тоже была задача не из лёгких)
7) Интеграция ImGui - одно из самых важных событий в истории движка. Где-то 70% всех интерфейсов написано на нём. Он конечно со своими странностями, но довольно надёжное решение, если вам нужно сделать удобный интерфейс на скорую руку.
8) Постпроцессинг - очень мощный интерфейс для наложения различной пост-обработки кадра, виньетка, сепия, помехи, шум и другие эффекты, практически без ограничений, всё зависит лишь от ваших знаний)
9) Визуальное программирование, которое в последствии было удалено - тоже интересная была идея, но с огромным количеством недостатков... (подробнее писал в канале "частые вопросы" в Discord) Сделал я её с нуля, как эксперимент где-то за 6 часов... На удивление это оказалось чуть ли не самой узнаваемой фишкой движка и многие приходили ради неё. Грустно конечно, но я не вижу за ней будущее, по крайней мере если бы я её довёл до ума, все сюжеты были бы очень однобокими и неестественными, что-то на уровне Custom NPCs без возможности дальнейшего роста :(
Это была первая половина года, с тех пор к Legacy я почти не притрагивался, все силы ушли в разработку 2.0, которая всё ещё не вышла... И чем же я был занят всё это время? Почему она ещё не вышла и сколько ещё ждать?
Начнём с того, что было сделано:
1) Новая система торговли, более адаптированная под наших нпс. Ради неё я чуть ли не полностью переписал систему инвентарей, а всё потому, что ванильная система ограничена определёнными размерами слотов и их расположением. Текущая стала гораздо удобнее.
2) Квестовая система - что-то вроде FTB Quests, но без веток, т.е. каждый нпс может выдавать квесты с различными заданиями и наградами. На данный момент задумка заморожена, потому что сложно придумать как грамотно работать это при нескольких игроках и как синхронизировать прогресс между ними.
3) Модификация биомов - редактирование различных параметров окружения, вроде цветов неба, воды, листвы, размер солнца/луны и т.п. Пока просто демонстрация, в реальных условиях оно работать не будет, к тому же фича совместима не со всеми шейдерами
(Примерно на этом моменте я понял, что лето кончилось и свою цель с релизом под конец лета я упустил, движок был довольно сырым, скриптинг полуживой, на нодах далеко не уедешь... На этот момент я немного впал в апатию, из-за несбывшихся ожиданий, но что поделать, сил оставалось лишь на всякого рода оптимизацию и мелкие вещи, которые делаются за пару часов, к тому же ещё и учёба начала много времени есть)
Постепенно вернувшись в обычное состояние я вернулся к очень ненавистной для меня системе скриптинга, уж очень много с ней недопониманий :)
4) Новый скриптовой движок - примерно в начале октября я для себя открыл такую штуку, как плагины для компилятора. Очень мощный инструмент, для таких отбитых разработчиков как я :D
Благодаря ей у меня появилась возможность разбирать на фрагменты написанный вами код и модифицировать его по своему усмотрению. Главная проблема, по которой мне так не нравится тема скриптинга это то, что я хочу позволить вам простыми командами описывать логику действий (условно написать в скрипте `wait(5.hours)` и чтобы скрипт приостановился на 5 часов) и чтобы при этом его прогресс сохранялся вместе с миром (например если игрок вышел из игры через 4 часа 55 минут ему не пришлось ждать заново), и таких нюансов с сохранением - море. Поэтому мне пришлось разработать очень хитрый алгоритм, который преобразовывает ваш последовательный код в тиковый (обновляющийся каждый тик), а также немного подшаманить с переменными.
И в целом у меня получилось, оно вполне стабильно работает, без существенного ущерба производительности и времени компиляции, но всё ещё далеко до идеала.
5) Новый редактор кода - промучившись ещё около 2 недель, я наконец с горем пополам заставил ImGui выдавать подсказки к коду, но с некоторыми ограничениями, условно говоря при появлении подсказок терялся фокус с редактора кода и пока вы не закроете подсказки вы не сможете продолжать писать код, что крайне не удобно. (Это стало последней каплей, перед тем, чтобы отказаться от ImGui :D)
6) Bedrock партиклы - наконец появилась поддержка языка Molang (язык для написания различных математических выражений, чаще всего используется для различных анимаций и эффектов). Что в свою очередь позволило создать новую систему частиц, которую в отличии от Effekseer я могу контролировать и с которой гораздо проще взаимодействовать, хоть и возможностей в целом у неё меньше.
7) Новый поисковик пути - мне наконец хватило знаний, чтобы хоть как-то влезть в эту тему и научить нпс прыгать через препятствия на пути к цели. Потенциально это может позволить как строить более естественные маршруты для нпс, так и отрыть больше различных механик, вроде автоматического ломания блоков при наличии у нпс необходимого инструмента, установки блоков или выполнения всяких вотердропов)
После этого я пропал ещё примерно на 2 недели в связи с некоторыми заморочками по учёбе. К тому же меня сильно вымотала работа с баганным ImGui, скриптами, компиляторами, сложными алгоритмами, которые всё равно не поймут простые пользователи... Захотелось немного поработать над графикой. После чего я наткнулся на тот самый игровой движок, и тогда я задумался, если и движок и игра написаны на JVM (т.е. на любом из языков: Java, Kotlin, Scala, Groovy) и использует под капотом LWJGL, то может быть я смогу хотя бы частично создать с ним совместимость, ведь там столько разных возможностей в сравнении с большинством других модов...
Немного освоившись и наладив совместимость между сторонним движком и игрой, я сделал свой первый интерфейс за 2 минуты, и это при учёте что у меня не было ни документации, ни связи с сообществом :)
После чего меня н̶а̶к̶р̶ы̶л̶о̶ осенило, я же могу сделать полноценную поддержку и других систем движка, которые помогут HollowEngine справляться с гораздо большими нагрузками и выполнять любую работу в десятки раз быстрее. Настал декабрь, и тут понеслось:
8) Появился новый редактор кода с умной подсветкой кода и более гибким дополнением кода. Все интерфейсы были перенесены на реализацию из движка Kool.
9) (частично совместимо с Iris) Kool стало возможным использовать не только для интерфейсов, но и для постоянного окружения, вроде настраиваемых скайбоксов.
10) (частично совместимо с Iris) Добавление glTF моделей с более правильными PBR материалами и гораздо более оптимизированными
11) Гораздо более оптимизированная отрисовка (только элементов движка) - например тут почти миллион анимированных пчёл (грубо говоря кубов с текстурой) и движку по силам вытягивать это в 110 FPS
12) (не совместимо с Iris) Новая система освещения - 281 FPS с освещением и тенями, довольно впечатляюще, как по мне...
13) Виджет для трансформации моделей - всё по стандартам, поворот, масштаб и перемещение.
Ну и на этом пожалуй всё, сейчас началась зачётная сессия, времени на кодинг пока у меня почти не остаётся.
Теперь пожалуй самое время поговорить о будущем, планах и "когда уже релиз?")
Прежде всего, сам мод сейчас в некоторой суперпозиции между альфа и бета версией, ха. В целом говорят где-то на гите валяется версия какая-то псевдо рабочая версия, но если говорить откровенно я ей не доволен. Редактор кода хоть и рабочий, но пользоваться им пока мне не удобно. Скриптинг стал гораздо проще, но пока довольно нестабилен, поскольку нужны тестеры и мотивация работать над доработкой плагина для компилятора. Остальные системы тоже грубо говоря в полурабочем состоянии. В принципе за неделю всё это можно довести до ума, но я немного выгорел по этой теме связанной с компиляторами и скриптами, так что пока, чтобы не тратить время в пустую занялся визуальной частью своих модов.
Если говорить о краткосрочных целях, это пожалуй:
- Сделать более-менее стабильную связь между игрой и движком Kool.
- Доработать скриптинг до вменяемого состояния и выпустить уже полноценную версию мода, с которой можно работать.
До лета я хотел бы успеть:
- Сделать полную интеграцию Kool с Minecraft, настраиваемое освещение, свои шейдерпаки, физика, высокая производительность, удобные интерфейсы и их скрипинг.
- Система структур и катсцен, потенциальная интеграция с BBS модом и поддержка GLTF моделей катсценах из BBS.
Ну а в долгосрочных целях это пожалуй:
Ну а в долгосрочных целях это пожалуй:
- Взаимозаменяемая интеграция с Iris/Optifine: моя задумка в том, чтобы можно было отключать или заменять различные компоненты шейдеров, например взять тени и освещение из Kool, а небо и воду из активного шейдерпака Iris. К сожалению эти шейдерпаки крайне сильно связывают мне руки и ограничивают различные фишки, например захотел я добавить красивый эффект трансформации неба, а это невозможно, потому что Iris уже заменил своим шейдером небо) Так что всё что я могу в этом случае сделать, попробовать частично заменить некоторые его части на свои, чтобы и ваши любимые шейдерпаки были, и чтобы при необходимости можно было временно или полноценно отключить некоторый их функционал. Пока что у меня удалось разве что подменить отрисовку чанков, сохранив небо из обычного шейдера :)
- Постепенный выход за пределы СНГ сообщества, в первую очередь, потому что у нас крайне мало талантливых разработчиков, а мне уже давно не хватает рук, чтобы держать всё вышеперечисленное в одиночку) Ну и конечно хотелось бы увидеть, какие проекты будут делать люди.
А на этом у меня всё, пожалуй год выдался довольно насыщенным по количеству приобретённых мной знаний в сравнении с предыдущим, да и контента, как мне кажется вышло в разы больше и его качество выше раза в 2-3, хотя в прошлом году было на 1 релиз больше :)
MrStepus
Вопрос: а интеграция геймеров будет только с ирис или в будущем появиться и совместимость с окулосом(это тот же ирис только на фордж).
Show more replies
Hollow Horizon, Будет ли Hollow Engine 2.0 в открытом доступе, на том же Modrinth?
Hollow HorizonReplying to Богдан
Богдан, да, скорее всего когда мод будет в около-стабильном состоянии он будет автоматически публиковаться не только на GitHub, но и на Modrinth с CurseForge.