TGViewer
Phase Of Horizon | HollowEngine Phase Of Horizon | HollowEngine @hollowengine · 373 subscribers
Post #240 559
🛞 Еженедельный девлог №6 | Мод стал больше похож на "движок", но меньше похож на "сюжетный"

📊 Статистика: 12 коммитов , 7400 добавлений, 961 удаление 💎

Сегодня только пятница, но я думаю изменений уже достаточно для этой недели 😳
А всё потому, что эти изменения продвинули его на две головы выше, чем ранее. По крайней мере в моём представлении о том, как движок должен выглядеть и использоваться.
Начал я с доработки компонентов и сущностей. Если раньше для каждой ванильной сущности создавалась своя ECS-сущность (далее буду называть её объектом, чтобы не путать с ванильными), то сейчас логика немного другая, ECS-сущности это по сути независимые объекты 🌎
И эти объекты могут привязываться с помощью специальных "якорей", пока их 2 вида: EntityAnchor и WorldAnchor, первый привязывает объект к ванильной сущности, а второй к мировым координатам. А для смещения используется компонент Transform. Он меняет объект относительно "якоря", т.е. относительно сущности, либо мира. Это позволяет настраивать перемещение, размеры, повороты.

Очевидно, настраивать всё это командами или скриптами/конфигами неудобно, поэтому я добавил в мод такую штуку как - gizmo 🪩
Это виджет, который вы могли видеть во многих 3D редакторах, с помощью которого можно менять положение объекта. Думаю с его помощью работать куда удобнее.
Ну и чтобы эти объекты не были просто пустышками, я добавил пока 2 компонента влияющих на визуал, это модели и свет.
Модели пока скорее просто как декорации, без взаимодействий и коллизий, но думаю уже очень удобно, если в условной локации вам нужно добавить листы бумаги, или какие-нибудь настенные часы.

А вот свет это уже задачка в разы сложнее, чем я думал, инстансинг моделей, которым я занимался недавно, на фоне этого теперь кажется мелкой фичей, которая делается за пол часа 😂
Если коротко, в Январе я уже пробовал что-то такое сделать, но там это была прям упрощённая версия. Сейчас уже можно добавлять точечные и направленные источники света с разным цветом и яркостью. Кроме этого, я даже добавил тени от них, хотя пока что они довольно требовательные, один такой источник по сути вынужден 6 раз рендерить мир, чтобы тень исходила в любом направлении в зависимости от положения источника. Так что вполне вероятно в будущем я добавлю "запекание" цвета, чтобы не пересчитывать его каждый кадр, правда тогда он уже будет работать только на блоки и декорации ✈️
Пока что освещение поддерживает только кастомный шейдерпак Complementary, поскольку разные шейдерпаки используют разные подходы и я чисто технически не могу сделать универсальную систему. В будущем скорее всего добавлю поддержку и других шейдерпаков, если на то будет спрос

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

Небольшая демка 👀
https://www.youtube.com/watch?v=QSXHrsZ15VY
  • 🔥 8
  • ❤ 3
  • 👍 2
More from @hollowengine
  1. Sep 23, 2026Эмиттеры партиклов 🎮 | День 9 В общем, сегодня доработал ядро системы эффектов до уровня…
  2. Sep 22, 2026Ну вот, и даже ничего не сгорело, не зря год назад запарился и написал систему инстансинга…
  3. Sep 22, 2026Зря вы мне доверили систему эффектов и партиклов 😱 (День 8)
  4. Sep 21, 2026Ещё больше визуальных доработок ✨ (День 7) Продолжаю вчерашние доработки и исправления, на…
  5. Sep 20, 2026Доработка панелей мода 🛞 Сегодня я существенно доработал панели и окна движка, если корот…
  6. Sep 19, 2026Дядя HollowHorizon окончательно поехал крышей 🕺 Сегодня вышел HollowEngine 2.3.4, я туда…
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 →