TGViewer
Phase Of Horizon | HollowEngine Phase Of Horizon | HollowEngine @hollowengine · 372 subscribers
Post #138 301
Компоненты, сущности и системы ⛳️ | День 63

Суммировав результаты опроса в Discord и Telegram, побеждает всё же второй вариант с очень маленьким отрывом, так что с большой вероятностью в будущем будут оба варианта, но пока я ограничусь флагами и переменными для сравнения 🤔

Но пока что я решил на какое-то время взять перерыв от гуишек, поскольку последний месяц буквально каждый день только ими и занимаюсь 😑
Хотя есть и не менее важные задачи, например - работа с данными сущностей. В классическом Minecraft всё очень скудно в этом плане, например, захотели вы сделать, чтобы ваш нпс мог стрелять из лука, как скелет, кидаться огненными шарами как гаст и взрываться как крипер, если рядом игрок - для этого вам придётся взять код из каждой сущности и написать новую. И так для каждой механики, брать код, ctrl+C, ctrl+V... В общем не удобно.
Для этого и существует ECS (Entity Component System), вместо того, чтобы описывать кем является сущность (одновременно лучник, маг, взрыватель), вы описываете что она умеет (стрелять из лука, запускать огненные шары, взрываться), нужно лишь прописать некоторые условия (например, стрелять, если есть стрелы в инвентаре)

В движке ещё с начала осени была подобная система, но достаточно примитивная и с низкой производительностью. Сейчас же я решил попробовать взять за основу Geary, достаточно простой и удобный фреймворк с разнообразным функционалом. Можно как просто прикреплять компоненты, так и указывать отношения между сущностями (условно репутация с нпс или атакуемые цели), можно легко фильтровать сущности по разным признакам и компонентам. Кроме того, эта система достаточно легко справляется с тысячами сущностей или систем, что явно понадобится, когда движок выйдет за рамки базового функционала. На текущий момент я уже реализовал подключение ванильных сущностей и игроков к ECS, а также реализовал сохранение этих самых компонентов внутри игры. Осталось самое сложное - реализовать синхронизацию компонентов между сервером и клиентом.

Кроме того, в Geary уже есть готовая система префабов (шаблоны тех же нпс и их наследование), к которой я ещё у себя толком не приступал, так что это сэкономит нам кучу времени.
  • 🤯 4
  • ❤ 2
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 →