Таймлайн | День 52 🎬
Сегодня по некоторым причинам, пост делаю я dan_bat :>
Расскажу я вам про таймлайн, который я делаю уже около 2 недель. Суть его в том чтобы вы могли делать кастомные анимации, катсцены и многое другое, не прибегая к коду, чем то это будет похоже на BBS. Вообще Hollow на своем бусти уже рассказывал про таймлайн и то где он будет использоваться, но там не было концепта дизайна...
К счастью с недавних пор у нас в команде появился дизайнер Axel Encore, который уже приложил руку к HollowEngine, если вы активно следили за постами, вы могли увидеть красивый дизайн дерева файлов и системы блоков, тут огромное ему за это спасибо❤️
Так что концепт дизайна у нас теперь тоже есть! Сегодня, если рассказывать про то что уже сделано, то это большая часть логики: Бесконечный таймлайн, система ключей, система групп, блокировка и скрытие треков и обработка свойств ключей.
Сегодня по некоторым причинам, пост делаю я dan_bat :>
Расскажу я вам про таймлайн, который я делаю уже около 2 недель. Суть его в том чтобы вы могли делать кастомные анимации, катсцены и многое другое, не прибегая к коду, чем то это будет похоже на BBS. Вообще Hollow на своем бусти уже рассказывал про таймлайн и то где он будет использоваться, но там не было концепта дизайна...
К счастью с недавних пор у нас в команде появился дизайнер Axel Encore, который уже приложил руку к HollowEngine, если вы активно следили за постами, вы могли увидеть красивый дизайн дерева файлов и системы блоков, тут огромное ему за это спасибо❤️
Так что концепт дизайна у нас теперь тоже есть! Сегодня, если рассказывать про то что уже сделано, то это большая часть логики: Бесконечный таймлайн, система ключей, система групп, блокировка и скрытие треков и обработка свойств ключей.
🤯6❤3
Просто к пониманию бесконечного таймлайна: в теории вы сможете сделать 18 часовую катсцену, но вряд ли это вообще кому-то будет нужно. Сейчас по сути осталось задизайнить и после уже начать делать интеграцию и реальную логику, ради который этот таймлайн и делался. Если говорить про то сколько займет времени дизайн, то циферка выйдет не маленькая...
Сегодня я начал делать верхнюю линию сия чуда и получилось так что из 892 строк кода получилось 1106...
В такие моменты хочется спросить: "Боже надеюсь это ружье...". В общем, "да": таймлайн делается и находится на хорошей стадии реализации. Надеюсь, что я успею доделать его до конца каникул, и вы сможете протестировать его уже в HollowEngine, а не посмотреть его на видео, которые я буду вам кидать XD.
На этом у меня сегодня все, больше мне вам пока рассказать нечего, если опустить все детали разработки...
Передавайте хорошие пожелания нашей маленько команде разработчиков и в частности пожелайте здоровья Hollow.
Увидимся в следующих постах!
Сегодня я начал делать верхнюю линию сия чуда и получилось так что из 892 строк кода получилось 1106...
В такие моменты хочется спросить: "Боже надеюсь это ружье...". В общем, "да": таймлайн делается и находится на хорошей стадии реализации. Надеюсь, что я успею доделать его до конца каникул, и вы сможете протестировать его уже в HollowEngine, а не посмотреть его на видео, которые я буду вам кидать XD.
На этом у меня сегодня все, больше мне вам пока рассказать нечего, если опустить все детали разработки...
Передавайте хорошие пожелания нашей маленько команде разработчиков и в частности пожелайте здоровья Hollow.
Увидимся в следующих постах!
❤9
This media is not supported in your browser
VIEW IN TELEGRAM
Шейпкеи или же морф таргеты 🎹 | День 53
В последние дни я немного приболел, так что так и не доделал обещанную бету, но теперь я снова тут, и завтра возвращаюсь к разработке 🙃
А пока вот доработал фичу, что просил у меня некий Анонимчик - поддержка шейпкеев для моделей 🫣
Если коротко, это некоторые модификации самих моделей, которые позволяют плавно менять положение некоторых вершин. Как это работает вы можете увидеть в ролике. То есть при желании можно не делать 5-10 моделей под: женскую/мужскую версию, slim/обычный скин, 2 слой скина, всякие декорации и т.п. А просто создать одну модель с готовыми настройками в редакторе 🤯
P.S. Да, это значит, что теперь при желании можно сделать даже редактор персонажа при входе в игру 🔥
В последние дни я немного приболел, так что так и не доделал обещанную бету, но теперь я снова тут, и завтра возвращаюсь к разработке 🙃
А пока вот доработал фичу, что просил у меня некий Анонимчик - поддержка шейпкеев для моделей 🫣
Если коротко, это некоторые модификации самих моделей, которые позволяют плавно менять положение некоторых вершин. Как это работает вы можете увидеть в ролике. То есть при желании можно не делать 5-10 моделей под: женскую/мужскую версию, slim/обычный скин, 2 слой скина, всякие декорации и т.п. А просто создать одну модель с готовыми настройками в редакторе 🤯
P.S. Да, это значит, что теперь при желании можно сделать даже редактор персонажа при входе в игру 🔥
❤7🔥2
Media is too big
VIEW IN TELEGRAM
Блоки-завершения ⛔️ | День 54
Сегодня уже практически доработал автозапуск скриптов и глобальные/локальные переменные. Пока что ещё есть пара мелочей, которые стоит поправить, но думаю уже получается достаточно интересно 🤔
На выходных уже буду заниматься моделями и анимациями для нпс, а также багами, которые вы уж точно найдёте 🫠
P.S. В ближайшие 10-15 минут выложу билды в сообществе 👀
Сегодня уже практически доработал автозапуск скриптов и глобальные/локальные переменные. Пока что ещё есть пара мелочей, которые стоит поправить, но думаю уже получается достаточно интересно 🤔
На выходных уже буду заниматься моделями и анимациями для нпс, а также багами, которые вы уж точно найдёте 🫠
P.S. В ближайшие 10-15 минут выложу билды в сообществе 👀
❤5🔥2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Шаблоны и Редактор НПС ♟ | День 55
Сегодня я немного поработал над редактором нпс. Теперь их можно создавать через специальные файлы в системе шаблонов. Если коротко, то через шаблоны можно создавать различные уже настроенные предметы, блоки, самих нпс и многое другое. И для каждого настраивать различные компоненты (фрагменты с логикой)
Пока что интерфейс ещё сыроват, но мы пока думает, как его сделать удобнее 😉
Ну а тем временем, на Boosty вышел новый пост с не менее интересной фичей, ради которой мне пришлось вспоминать физику и 4 часа сидеть с дебаггером меняя один параметр на другой...
Сегодня я немного поработал над редактором нпс. Теперь их можно создавать через специальные файлы в системе шаблонов. Если коротко, то через шаблоны можно создавать различные уже настроенные предметы, блоки, самих нпс и многое другое. И для каждого настраивать различные компоненты (фрагменты с логикой)
Пока что интерфейс ещё сыроват, но мы пока думает, как его сделать удобнее 😉
Ну а тем временем, на Boosty вышел новый пост с не менее интересной фичей, ради которой мне пришлось вспоминать физику и 4 часа сидеть с дебаггером меняя один параметр на другой...
❤2🤯2
Таймлайн 🖼| День 56
Всем привет с вами Дан бат :>
Сегодня мы опять поговорим про Таймлайн, но не про его концепт, а уже физический вариант. Если вы помните, то я остановился на его дизайне, который лично меня добил. Конечно, код я все же написал и сегодня я готов вам представить пред финальную версию Таймлайна, которая попадет в HE, скорее всего, именно в таком виде :>
С прошлого поста была проделана огромная работа, которая в ходе разработки, заставляла меня переписывать огромные части уже имеющегося кода... И все же он перед вами!!!
Пока что как таковой логики для интеграции нет, она будет добавлена на неделе. Я надеюсь что Таймлайн появится в HE в ближайшие недели, но это не точно, мало ли что может произойти. Надеюсь дизайн вам нравится, так как над ним старались как минимум 3 человека :>
Спасибо что следите за разработкой HE 2.0 и поддерживаете нас в разработке!!!
P.S. Меня попросили написать, чтобы я, больше, не писал так, как будто Hollow забирают в дурку... Так что желайте "Спокойного отдыха" XD
Всем привет с вами Дан бат :>
Сегодня мы опять поговорим про Таймлайн, но не про его концепт, а уже физический вариант. Если вы помните, то я остановился на его дизайне, который лично меня добил. Конечно, код я все же написал и сегодня я готов вам представить пред финальную версию Таймлайна, которая попадет в HE, скорее всего, именно в таком виде :>
С прошлого поста была проделана огромная работа, которая в ходе разработки, заставляла меня переписывать огромные части уже имеющегося кода... И все же он перед вами!!!
Пока что как таковой логики для интеграции нет, она будет добавлена на неделе. Я надеюсь что Таймлайн появится в HE в ближайшие недели, но это не точно, мало ли что может произойти. Надеюсь дизайн вам нравится, так как над ним старались как минимум 3 человека :>
Спасибо что следите за разработкой HE 2.0 и поддерживаете нас в разработке!!!
P.S. Меня попросили написать, чтобы я, больше, не писал так, как будто Hollow забирают в дурку... Так что желайте "Спокойного отдыха" XD
❤10😨2
❤2
Готовлю редактор нпс к новому обновлению 🛠 | День 57
Недавно был закончен дизайн для редактора нпс, так что на текущий момент я занимаюсь его реализацией в игре.
Но в последние дни я всё чаще слышу вопросы о релизе мода, в связи с чем появилась мысль, немного упростить задумку и сделать релиз в ближайшие несколько дней.
Вопрос заключается в том, нужен ли сейчас редактор моделей и анимаций? Задумка у меня следующая: будет компонент для нпс, в котором можно будет открыть редактор модели, который позволит скрыть/показать определённые кости, настроить некоторые части модели (например, настройка костей для рэгдолла или для отображения предметов в руках), а для анимаций планируется граф-подобная система, как в Unity (пока дизайна нет, так что это тоже займёт некоторое время), суть в том, что можно на холсте указать анимации и стрелочками указать переходы, из какой анимации в какую может быть переход и при каких условиях этот переход будет осуществляться.
Вопрос в том, нужно ли сейчас заморачиваться с такими системами, или пока Вам достаточно указать путь к модели и несколько стандартных анимаций (стояние, ходьба, бег и т.п.) без возможности их как либо настраивать?
Недавно был закончен дизайн для редактора нпс, так что на текущий момент я занимаюсь его реализацией в игре.
Но в последние дни я всё чаще слышу вопросы о релизе мода, в связи с чем появилась мысль, немного упростить задумку и сделать релиз в ближайшие несколько дней.
Вопрос заключается в том, нужен ли сейчас редактор моделей и анимаций? Задумка у меня следующая: будет компонент для нпс, в котором можно будет открыть редактор модели, который позволит скрыть/показать определённые кости, настроить некоторые части модели (например, настройка костей для рэгдолла или для отображения предметов в руках), а для анимаций планируется граф-подобная система, как в Unity (пока дизайна нет, так что это тоже займёт некоторое время), суть в том, что можно на холсте указать анимации и стрелочками указать переходы, из какой анимации в какую может быть переход и при каких условиях этот переход будет осуществляться.
Вопрос в том, нужно ли сейчас заморачиваться с такими системами, или пока Вам достаточно указать путь к модели и несколько стандартных анимаций (стояние, ходьба, бег и т.п.) без возможности их как либо настраивать?
❤5
Я не думал, что опрос отправится сразу, так что не успел всё подготовить))
❤9👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Предпросмотр анимаций и первые наброски редактора нпс ⏯️ | День 58
Перенёс пока базовый набросок интерфейса в игру, а также сделал возможность редактировать нпс даже не заходя в мир (по умолчанию сущность может быть создана только в мире)
Пока что ещё всё выглядит далеко от идеала, да и есть пара мелких багов с дёрганьем, которые я пока не смог исправить, но в конце концов, города ведь возводят не за день 🙃
Перенёс пока базовый набросок интерфейса в игру, а также сделал возможность редактировать нпс даже не заходя в мир (по умолчанию сущность может быть создана только в мире)
Пока что ещё всё выглядит далеко от идеала, да и есть пара мелких багов с дёрганьем, которые я пока не смог исправить, но в конце концов, города ведь возводят не за день 🙃
❤9
This media is not supported in your browser
VIEW IN TELEGRAM
Улучшаю парсер Markdown ✅⬇️| День 59
Пока исправляю всякие небольшие баги, в том числе и в системе разметки Markdown, теперь здесь активно могут использоваться таблицы с центрированием, а в недалёком будущем появятся ещё всякие картинки, предметы, сущности, крафты и т.п.
Кроме того, эту разметку можно будет использовать и в диалогах, т.е. нпс сможет явно упомянуть какой-нибудь предмет или иконку, что, как по мне довольно полезно 🤔
Пока исправляю всякие небольшие баги, в том числе и в системе разметки Markdown, теперь здесь активно могут использоваться таблицы с центрированием, а в недалёком будущем появятся ещё всякие картинки, предметы, сущности, крафты и т.п.
Кроме того, эту разметку можно будет использовать и в диалогах, т.е. нпс сможет явно упомянуть какой-нибудь предмет или иконку, что, как по мне довольно полезно 🤔
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Макет редактора нпс завершён 🧶| День 60
Практически закончил с редактором нпс, остались только некоторые баги с отображением и дёрганьем модельки, но это в целом уже не так долго (надеюсь ). Думаю скоро уже перейду к редактору анимаций 👀
Практически закончил с редактором нпс, остались только некоторые баги с отображением и дёрганьем модельки, но это в целом уже не так долго (
🤩6❤2👍2
Будет ли HollowEngine для Hytale? 🫤 | День 61
Пока я занимаюсь лишь мелкими правками, а макет редактора анимаций ещё дорабатывается, в посте рассказывать особо нечего... Так что сегодня пост про мои мысли на тему Hytale'а и его моддинга!
Сразу предупрежу, что не буду говорить о багах, вылетах, сомнительной стилистике/текстурах, всё же это ранняя версия и многое могут переделать. Прежде всего, что мне понравилось - высокая производительность в сравнении с ванилой и любыми Minecraft сборками. Я буквально захожу в мир, открываю карту, а там уже прогружено множество чанков... И в целом, догнать эту прогрузку летая по миру у меня практически не получалось, что сильно меня порадовало. Но ещё больше, меня радует наличие в игре из коробки теней, динамического и цветного освещения, причём fps при этом существенно выше чем у того же Sodium+Iris. Я уже декомпилировал jar сервера и подробно изучил его ядро. В отличии от Minecraft с его (по большей части) ООП, в Hytale используется ECS, то есть есть некая сущность, на которую крепятся всякие компоненты, причём они крайне разнообразные, помимо ожидаемых здоровья, трансформации (координаты и поворот), скорости и т.п. тут есть и довольно неожиданные для меня подходы, например, на сущность можно наложить компонент телепортации или смерти 🤔
Также поведение мобов куда более интересное в сравнении с Minecraft и как будто здесь даже подходы совсем другие, например, глобальный патчфиндинг, который кэширует пути. Пока не знаю, насколько это реализуемо в том же Minecraft, где буквально всё висит на игроке, и ты не можешь послать условного нпс в соседнюю деревню не выгрузив чанки, а даже если и заставишь, это будет сильно тормозить сервер. В Hytale в свою очередь ECS позволяет симулировать хоть тысячи сущностей одновременно и это не будет так уж сильно нагружать сервер (в сравнении с Minecraft)
Но к сожалению, есть и достаточно весомые минусы, особенно для меня, как мододела. В первую очередь - это полное отсутствие клиентского моддинга. Сделано это для защиты пользователей и клиента в целом, но это также значит, что никаких тебе кастомных GUI'шек, отрисовщиков моделей, эффектов, анимаций и т.п. Всё ограничено встроенным функционалом: их GUI фреймворк, их система моделей и анимаций, их эффекты. Это значит что любые мои наработки касательно визуала - абсолютно бесполезны в рамках Hytale, ни интерфейсов из Kool, ни gltf моделей, ни партиклов на compute-шейдерах. Да даже мелкие фичи, вроде мода MouseTweaks, там не повторить, потому что с сервера нельзя нормально отслеживать мышь игрока. И ладно, ещё если бы их системы были качественными и надёжными, но увы: интерфейсы не поддерживают графы (условно говоря меню квестов как FTB Quests или блоки кода как в HE), нельзя применить какие-нибудь фильтры вроде обрезки или шейдеров, а ещё нет никакой документации, а сама система закрытая из-за чего я даже не могу посмотреть список виджетов или их параметров💀; встроенная система моделей не имеет ни скиннинга со скелетной анимаций, ни шейпкеев (ну или опять таки, в самих файлах и документации я ничего не нашёл); по системе эффектов тоже пока ничего не ясно, можно ли будет создавать свои шейдеры для них и интегрировать с отрисовщиком мира?
В общем для меня этого достаточно, чтобы отказаться от моддинга Hytale в целом. Как игра - она очень даже не плохая, но для моего творчества эта платформа увы пока не годится 🥲
Не исключено, что в будущем ситуация станет лучше и систему интерфейсов доработают, документацию допишут, проблемные места поправят, но пока я пас, есть дела и поинтереснее.
Пока я занимаюсь лишь мелкими правками, а макет редактора анимаций ещё дорабатывается, в посте рассказывать особо нечего... Так что сегодня пост про мои мысли на тему Hytale'а и его моддинга!
Сразу предупрежу, что не буду говорить о багах, вылетах, сомнительной стилистике/текстурах, всё же это ранняя версия и многое могут переделать. Прежде всего, что мне понравилось - высокая производительность в сравнении с ванилой и любыми Minecraft сборками. Я буквально захожу в мир, открываю карту, а там уже прогружено множество чанков... И в целом, догнать эту прогрузку летая по миру у меня практически не получалось, что сильно меня порадовало. Но ещё больше, меня радует наличие в игре из коробки теней, динамического и цветного освещения, причём fps при этом существенно выше чем у того же Sodium+Iris. Я уже декомпилировал jar сервера и подробно изучил его ядро. В отличии от Minecraft с его (по большей части) ООП, в Hytale используется ECS, то есть есть некая сущность, на которую крепятся всякие компоненты, причём они крайне разнообразные, помимо ожидаемых здоровья, трансформации (координаты и поворот), скорости и т.п. тут есть и довольно неожиданные для меня подходы, например, на сущность можно наложить компонент телепортации или смерти 🤔
Также поведение мобов куда более интересное в сравнении с Minecraft и как будто здесь даже подходы совсем другие, например, глобальный патчфиндинг, который кэширует пути. Пока не знаю, насколько это реализуемо в том же Minecraft, где буквально всё висит на игроке, и ты не можешь послать условного нпс в соседнюю деревню не выгрузив чанки, а даже если и заставишь, это будет сильно тормозить сервер. В Hytale в свою очередь ECS позволяет симулировать хоть тысячи сущностей одновременно и это не будет так уж сильно нагружать сервер (в сравнении с Minecraft)
Но к сожалению, есть и достаточно весомые минусы, особенно для меня, как мододела. В первую очередь - это полное отсутствие клиентского моддинга. Сделано это для защиты пользователей и клиента в целом, но это также значит, что никаких тебе кастомных GUI'шек, отрисовщиков моделей, эффектов, анимаций и т.п. Всё ограничено встроенным функционалом: их GUI фреймворк, их система моделей и анимаций, их эффекты. Это значит что любые мои наработки касательно визуала - абсолютно бесполезны в рамках Hytale, ни интерфейсов из Kool, ни gltf моделей, ни партиклов на compute-шейдерах. Да даже мелкие фичи, вроде мода MouseTweaks, там не повторить, потому что с сервера нельзя нормально отслеживать мышь игрока. И ладно, ещё если бы их системы были качественными и надёжными, но увы: интерфейсы не поддерживают графы (условно говоря меню квестов как FTB Quests или блоки кода как в HE), нельзя применить какие-нибудь фильтры вроде обрезки или шейдеров, а ещё нет никакой документации, а сама система закрытая из-за чего я даже не могу посмотреть список виджетов или их параметров💀; встроенная система моделей не имеет ни скиннинга со скелетной анимаций, ни шейпкеев (ну или опять таки, в самих файлах и документации я ничего не нашёл); по системе эффектов тоже пока ничего не ясно, можно ли будет создавать свои шейдеры для них и интегрировать с отрисовщиком мира?
В общем для меня этого достаточно, чтобы отказаться от моддинга Hytale в целом. Как игра - она очень даже не плохая, но для моего творчества эта платформа увы пока не годится 🥲
Не исключено, что в будущем ситуация станет лучше и систему интерфейсов доработают, документацию допишут, проблемные места поправят, но пока я пас, есть дела и поинтереснее.
❤3
Ну и чтобы не быть голословным, вот небольшой мод, над которым я недавно работал, вернее лучшее чего я смог достичь с текущей системой интерфейсов. В целом можно довести эту систему до ума (но именно как список квестов, а не удобная графовая система), но когда тебе приходится редактировать интерфейсы буквально в блокноте, а любая ошибка в нём кикает тебя с сервера и требует перезагрузки этого самого сервера, то желания этим заниматься постепенно пропадает 🙃
Так что да, никуда я не уйду и как делал HollowEngine, так и буду делать 🙂
Так что да, никуда я не уйду и как делал HollowEngine, так и буду делать 🙂
❤6
Редактор анимаций и переходов между ними 🎞 | День 62
Сегодня я начал графовую систему для анимаций нпс, по итогу было решено сделать что-то напоминающее систему из Unity: граф из анимаций и стрелки, которые отображают переходы между этими анимацями при определённых условиях.
Самое сложное я уже реализовал - это узлы, которые можно перетаскивать, стрелки, которые не перекрывают друг друга, а также прогрутка и приближение, короче говоря за день сделал то, что я делал дней 5 раньше для блоков кода.
Следующий этап - параметры анимаций и переходов. И тут есть 2 варианта:
1) Реализовать это через Kotlin код, условно в условии перехода из анимации
2) Реализовать это через какой-нибудь конструктор, вроде
Лично мне кажется второй вариант не удобным, поскольку написать короткую строку проще, чем выбирать всякие параметры в редакторе, с другой стороны требовать ради этого компилятор Kotlin тоже не хочется, а вы что думаете? 🤔
P.S. насчёт варианта с кодом, возможно имеет смысл там несколько заготовок сделать, которые будут выбираться из списка, или хотя бы "историю выражений" добавить
Сегодня я начал графовую систему для анимаций нпс, по итогу было решено сделать что-то напоминающее систему из Unity: граф из анимаций и стрелки, которые отображают переходы между этими анимацями при определённых условиях.
Самое сложное я уже реализовал - это узлы, которые можно перетаскивать, стрелки, которые не перекрывают друг друга, а также прогрутка и приближение, короче говоря за день сделал то, что я делал дней 5 раньше для блоков кода.
Следующий этап - параметры анимаций и переходов. И тут есть 2 варианта:
1) Реализовать это через Kotlin код, условно в условии перехода из анимации
Walk в анимацию Run, Вы пишете условие одной строкой: entity.isMoving() && entity.speed >= 0.3.2) Реализовать это через какой-нибудь конструктор, вроде
[Флаг [Сущность двигается?]] и [Параметр [Скорость сущности] [>=] [0.3]].Лично мне кажется второй вариант не удобным, поскольку написать короткую строку проще, чем выбирать всякие параметры в редакторе, с другой стороны требовать ради этого компилятор Kotlin тоже не хочется, а вы что думаете? 🤔
P.S. насчёт варианта с кодом, возможно имеет смысл там несколько заготовок сделать, которые будут выбираться из списка, или хотя бы "историю выражений" добавить
This media is not supported in your browser
VIEW IN TELEGRAM
P.S. Скоро появится опрос, а пока держите ролик 👀
❤5
Как реализовать переходы между анимациями?⚙️
Anonymous Poll
48%
📎 Через Kotlin код
52%
⚙️ Через какой-нибудь список параметров
Компоненты, сущности и системы ⛳️ | День 63
Суммировав результаты опроса в Discord и Telegram, побеждает всё же второй вариант с очень маленьким отрывом, так что с большой вероятностью в будущем будут оба варианта, но пока я ограничусь
Но пока что я решил на какое-то время взять перерыв от гуишек, поскольку последний месяц буквально каждый день только ими и занимаюсь 😑
Хотя есть и не менее важные задачи, например - работа с данными сущностей. В классическом Minecraft всё очень скудно в этом плане, например, захотели вы сделать, чтобы ваш нпс мог стрелять из лука, как скелет, кидаться огненными шарами как гаст и взрываться как крипер, если рядом игрок - для этого вам придётся взять код из каждой сущности и написать новую. И так для каждой механики, брать код, ctrl+C, ctrl+V... В общем не удобно.
Для этого и существует ECS (Entity Component System), вместо того, чтобы описывать кем является сущность (одновременно лучник, маг, взрыватель), вы описываете что она умеет (стрелять из лука, запускать огненные шары, взрываться), нужно лишь прописать некоторые условия (например, стрелять, если есть стрелы в инвентаре)
В движке ещё с начала осени была подобная система, но достаточно примитивная и с низкой производительностью. Сейчас же я решил попробовать взять за основу Geary, достаточно простой и удобный фреймворк с разнообразным функционалом. Можно как просто прикреплять компоненты, так и указывать отношения между сущностями (условно репутация с нпс или атакуемые цели), можно легко фильтровать сущности по разным признакам и компонентам. Кроме того, эта система достаточно легко справляется с тысячами сущностей или систем, что явно понадобится, когда движок выйдет за рамки базового функционала. На текущий момент я уже реализовал подключение ванильных сущностей и игроков к ECS, а также реализовал сохранение этих самых компонентов внутри игры. Осталось самое сложное - реализовать синхронизацию компонентов между сервером и клиентом.
Кроме того, в Geary уже есть готовая система префабов (шаблоны тех же нпс и их наследование), к которой я ещё у себя толком не приступал, так что это сэкономит нам кучу времени.
Суммировав результаты опроса в Discord и Telegram, побеждает всё же второй вариант с очень маленьким отрывом, так что с большой вероятностью в будущем будут оба варианта, но пока я ограничусь
флагами и переменными для сравнения 🤔Но пока что я решил на какое-то время взять перерыв от гуишек, поскольку последний месяц буквально каждый день только ими и занимаюсь 😑
Хотя есть и не менее важные задачи, например - работа с данными сущностей. В классическом Minecraft всё очень скудно в этом плане, например, захотели вы сделать, чтобы ваш нпс мог стрелять из лука, как скелет, кидаться огненными шарами как гаст и взрываться как крипер, если рядом игрок - для этого вам придётся взять код из каждой сущности и написать новую. И так для каждой механики, брать код, ctrl+C, ctrl+V... В общем не удобно.
Для этого и существует ECS (Entity Component System), вместо того, чтобы описывать кем является сущность (одновременно лучник, маг, взрыватель), вы описываете что она умеет (стрелять из лука, запускать огненные шары, взрываться), нужно лишь прописать некоторые условия (например, стрелять, если есть стрелы в инвентаре)
В движке ещё с начала осени была подобная система, но достаточно примитивная и с низкой производительностью. Сейчас же я решил попробовать взять за основу Geary, достаточно простой и удобный фреймворк с разнообразным функционалом. Можно как просто прикреплять компоненты, так и указывать отношения между сущностями (условно репутация с нпс или атакуемые цели), можно легко фильтровать сущности по разным признакам и компонентам. Кроме того, эта система достаточно легко справляется с тысячами сущностей или систем, что явно понадобится, когда движок выйдет за рамки базового функционала. На текущий момент я уже реализовал подключение ванильных сущностей и игроков к ECS, а также реализовал сохранение этих самых компонентов внутри игры. Осталось самое сложное - реализовать синхронизацию компонентов между сервером и клиентом.
Кроме того, в Geary уже есть готовая система префабов (шаблоны тех же нпс и их наследование), к которой я ещё у себя толком не приступал, так что это сэкономит нам кучу времени.
🤯4❤2