Если Unity ECS так хорош, почему его нет в каждом проекте? 🔥
Ғылым және технология
Достаточно давно Unity представила новый стек технологий DOTS. Сердцем стека является Entity Component System. ECS - это data-oriented шаблон проектирования, что имеет множество отличных фич.
Но почему, учитывая все преимущества и особенности стека (о которых мы расскажем дополнительно), не каждый Unity проект - это набор пакетов DOTS? Именно на этот вопрос мы ответим в нашем бесплатном третьем вебинаре!
Что мы также обсудим во время вебинара:
• Что такое стек Unity DOTS? Какие технологии в себя включает?
• Как работает ECS в Unity?
• Реальные кейсы использования MonoBehaviour vs ECS
• Альтернативные ECS-решения для Unity
• Когда выбрать ECS? Когда MonoBehaviour подход?
Наш уже традиционный лайв будет полезен всем, кто следит за новыми технологиями Unity и кому интересен практический опыт их использования. Его проведут основатели Stan’s Asssets from KAPPS: Павел Климентенко, Алексей Яременко и Станислав Осипов!
Ссылка на вебинар будет доступна в день мероприятия на нашем Telegram-канале! Рассказывай о нас друзьям и подписывайся t.me/+zMc-ZfqSN1xkMDhi
О спикерах:
Алексей Яременко - сооснователь Stan's Assets from KAPPS, Unity-разработчик с 9-летним опытом. Сотрудничал с компаниями The Tribe Games, Moon Studios (над сиквелом ААА-игры Ori) и другими. Основная специализация: графическое программирование, написание шейдеров.
Павел Климентенко - сооснователь Stan's Assets from KAPPS, имеет 7 лет опыта в Unity разработке. Сотрудничал с компаниями Moon Studios (над сиквелом ААА-игры Ori), Rogue Sun, Roomful, и т. д. Эксперт в прототипировании, создании инструментов для редактора и оптимизации.
Станислав Осипов - сооснователь Stan's Assets from KAPPS, senior-девелопер с опытом разработки более 10 лет. Занимал позицию ECS Developer в Unity Technologies работая над такими продуктами как Project Tiny, UI Elements, UI Builder. Его основная экспертиза - работа с архитектурой Unity-приложений.
Ссылка на презентацию:
docs.google.com/presentation/...
Пікірлер: 26
Начало без воды 10:30
@derikfant831
2 ай бұрын
Спасибо
Вы как-то вскользь упомянули про гибкость, но на самом деле это очень важный момент, я так понял ECS позволяет вообще забыть (ну или сильно облегчить) про внедрение новых фич в свою архитектуру. Как обычно происходит: приходит новая фича от геймдизанера, для которой которую очень трудно впихнуть в существующую архитектуру ( или по времязатратно), поэтому при создании архитектуры ты вынужден заглядывать в будущее, чтобы оставить возможности для всякого, или плакать потом кровавыми слезами и перекраивать текущую архитектуру. В ECS тебе всего этого не надо: ты просто делаешь игру, вводишь фичи, комбинируешь их, всё без оглядки на архитектуру, потому что в ECS ввести новую фичу и при этом не сломав то что написано - супер легко, это прям киллер фича этой парадигмы я считаю и вторая по важности после производительности. Подробнее об этом рассказывает kzread.info/dash/bejne/Zqd40KR8mMm8YNI.html (время 22:30 если вдруг ссылка со временем не открылась как положено) Насчёт минуса ESC: kzread.info/dash/bejne/ip2Itc6mppS-kbw.html "время на разработку больше потому что кода который надо писать - больше", такой себе аргумент, например ява намного многословнее питона, но почему то корпоративный сектор выбирает именно её - потому что надёжность важнее и легкость дальнейшей поддержки проще, так и тут, всегда чем то приходится жертвовать. Насчёт сложности дебага и взаимодействия между MonoBehaviour и ECS : считаю самым проблемными минусами. Хотел бы спросить, а если делать проект с нуля сразу на ECS, стоят ли преимущества выделки? Ну т.е. насколько меньше проблем когда ты не внедряешь ECS в текущий проект, а с нуля пишешь сразу используя эту парадигму? Хочу сказать спасибо за такой качественный вебинар, приятно удивлён и даже подпишусь пожалуй.
Большое спасибо за видео. Узнал для себя много нового :)
Спасибо, парни. Очень информативно и интересно
Спасибо, было интересно и информативно!)
В 38:17 видно что Вы добавили компоненты scale, translation & rotation, и у вас есть localToWorld в матрице которого всё это уже хранится. По идее как-то так можно сделать в системе localToWorld.Value = float4x4.TRS(position, rotation, scale);
Спасибо. С удовольствием послушал
Возник вопрос про распределение логики и данных: рассмотрим пример - компонент здоровья персонажа. Где писать проверку валидности изменения состояния (новое здоровье ниже нуля или выше максимального): в системах или компоненте?
@vasilialeksandrov6670
19 күн бұрын
в системе делать проверку потому что в компонентах лежат только данные, а проверка валидности это логика
Спасибо фрэнды, что джаботаете эту джаботу и форвардите эту пьюрэ информацию фор фри! В русскоязычном интернете это уникал контэнт!
28:00 лучше наверно сказать, что система встроенной физики Unity использует алгоритмы оптимизации, которые не всегда лаконично могут работать в случае с сетевой частью игры, де факто это так работает из за оптимизации встроенной физики, она не плохая. В резюме, мне почему то это видится так, что ECS - промежуточный этап сейчас, для чего то большего. Обьективно строить весь проект на Pure ECS нецелесообразно, тем не менее Jobs в совокупности с данным паттерном отлично прибавляет в performance, из за расположения данных в памяти на кеше процессора, правильной мультипоточности. По сути, используя ECS вы целенаправленно чем то жертвуете, но взамен получаете другие плюшки. И гибридная система сегодня конечно выглядит лучше, чем голый Mono. Но, опять же есть разные варианты оптимизации логики и на Mono, это подходы с чистыми c# скриптами, которые не тянут за собой весь ферймворк, содержат чистую логику с декомпозицией, и так-же органично живут в памяти, с 1 update на всю игру. Если не нужен именно performance, то городить проект на ECS в отрыве от DOTS мне кажется глупо, но да, так все делают, и я не знаю почему.
cool)
Начало с 2:20
Зы: Вот Юнитеки, вместо этой непрекращающейся вечной выматывающей погони за UE, что привела к проблемам Джонни Речителло, сделали бы наконец НОРМАЛЬНУЮ многопроцессорность из коробки с поддержкой старого MonoBehavior, чтобы не нужно было этими велосипедами, вроде ECS страдать. Чтобы вот я к примеру писал по старинке код. Обычный старперский ООП код, и не задумывался, как там внутри что то "крутится", и все на смартфонах средней ценовой категории летало...
Смотреть можно с 9:50
Потому на каждый "ЧИХ" в игре, включая к примеру кнопку "Выход", писать стуктуру, к ней прописывать отдельно Логику, все это упаковывать в Провайдер, следить за порядком вызова... оййй... Все ЭТО нарастает как снежный ком, на одном объекте целый ворох ЭТОГО ВСЕГО... А если сложная модель поведения персонажей, к примеру, с Полиморфизмом... О, Боже! Это какой то ужас! Да, работает шустро, не отнимешь, НО ЭТО ТАКОЙ ГЕМОРОЙ!!!
Unity 2021 перестала поддерживать ECS (временно), пришлось качать 2020, и при этом потерять Pooling из 2021. Уже, как минимум, неадекватно.
про то что они говорят есть в morpeh ecs :D
На каком языке пытается говорить Алексей?
Лично я потестировал ecs и понял что это сырой геморой, начиная от самого ecs заканчивая сборкой, и кучей ошибок при попытке сбилдить хоть на какую платформу
@RedBallOfLove
7 ай бұрын
ecs - это архитектурный паттерн. он не может быть сырым. возможно, что вы говорите про библиотеку какую.
@NikitaLukianov
9 күн бұрын
@@RedBallOfLove стоило стрим посмотреть перед тем как в комменты идти, в теме видео речь не про паттерн, а про одну конкретную реализацию - Unity ECS
Пиздатый вебинар с оч полезной инфой не только про ECS, а и про Photon Quantum). Cпасибо и слава Украине!
Немножко интересной инфы. Но люди, которые общаются очень плохо говорят по-русски. Особенно Алексей, он очень плох. Приходится сильно напрягаться, чтобы понять сказанное. Как будто в падике с алкашами сижу.)
@lei-at
4 ай бұрын
Все понятно было рассказано, лишь бы доебатся!