Если Unity ECS так хорош, почему его нет в каждом проекте? 🔥
Вставка
- Опубліковано 11 січ 2022
- Достаточно давно 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/... - Наука та технологія
Начало без воды 10:30
Спасибо
Вы как-то вскользь упомянули про гибкость, но на самом деле это очень важный момент, я так понял ECS позволяет вообще забыть (ну или сильно облегчить) про внедрение новых фич в свою архитектуру. Как обычно происходит: приходит новая фича от геймдизанера, для которой которую очень трудно впихнуть в существующую архитектуру ( или по времязатратно), поэтому при создании архитектуры ты вынужден заглядывать в будущее, чтобы оставить возможности для всякого, или плакать потом кровавыми слезами и перекраивать текущую архитектуру. В ECS тебе всего этого не надо: ты просто делаешь игру, вводишь фичи, комбинируешь их, всё без оглядки на архитектуру, потому что в ECS ввести новую фичу и при этом не сломав то что написано - супер легко, это прям киллер фича этой парадигмы я считаю и вторая по важности после производительности. Подробнее об этом рассказывает ua-cam.com/video/4sDnBChfV0o/v-deo.html (время 22:30 если вдруг ссылка со временем не открылась как положено)
Насчёт минуса ESC: ua-cam.com/video/XiTSlmv1XaY/v-deo.html
"время на разработку больше потому что кода который надо писать - больше", такой себе аргумент, например ява намного многословнее питона, но почему то корпоративный сектор выбирает именно её - потому что надёжность важнее и легкость дальнейшей поддержки проще, так и тут, всегда чем то приходится жертвовать.
Насчёт сложности дебага и взаимодействия между MonoBehaviour и ECS : считаю самым проблемными минусами.
Хотел бы спросить, а если делать проект с нуля сразу на ECS, стоят ли преимущества выделки? Ну т.е. насколько меньше проблем когда ты не внедряешь ECS в текущий проект, а с нуля пишешь сразу используя эту парадигму?
Хочу сказать спасибо за такой качественный вебинар, приятно удивлён и даже подпишусь пожалуй.
Спасибо, парни. Очень информативно и интересно
Большое спасибо за видео. Узнал для себя много нового :)
Спасибо, было интересно и информативно!)
В 38:17 видно что Вы добавили компоненты scale, translation & rotation, и у вас есть localToWorld в матрице которого всё это уже хранится. По идее как-то так можно сделать в системе localToWorld.Value = float4x4.TRS(position, rotation, scale);
Спасибо. С удовольствием послушал
28:00 лучше наверно сказать, что система встроенной физики Unity использует алгоритмы оптимизации, которые не всегда лаконично могут работать в случае с сетевой частью игры, де факто это так работает из за оптимизации встроенной физики, она не плохая.
В резюме, мне почему то это видится так, что ECS - промежуточный этап сейчас, для чего то большего. Обьективно строить весь проект на Pure ECS нецелесообразно, тем не менее Jobs в совокупности с данным паттерном отлично прибавляет в performance, из за расположения данных в памяти на кеше процессора, правильной мультипоточности. По сути, используя ECS вы целенаправленно чем то жертвуете, но взамен получаете другие плюшки. И гибридная система сегодня конечно выглядит лучше, чем голый Mono. Но, опять же есть разные варианты оптимизации логики и на Mono, это подходы с чистыми c# скриптами, которые не тянут за собой весь ферймворк, содержат чистую логику с декомпозицией, и так-же органично живут в памяти, с 1 update на всю игру. Если не нужен именно performance, то городить проект на ECS в отрыве от DOTS мне кажется глупо, но да, так все делают, и я не знаю почему.
cool)
Начало с 2:20
Спасибо фрэнды, что джаботаете эту джаботу и форвардите эту пьюрэ информацию фор фри! В русскоязычном интернете это уникал контэнт!
Смотреть можно с 9:50
Зы: Вот Юнитеки, вместо этой непрекращающейся вечной выматывающей погони за UE, что привела к проблемам Джонни Речителло, сделали бы наконец НОРМАЛЬНУЮ многопроцессорность из коробки с поддержкой старого MonoBehavior, чтобы не нужно было этими велосипедами, вроде ECS страдать. Чтобы вот я к примеру писал по старинке код. Обычный старперский ООП код, и не задумывался, как там внутри что то "крутится", и все на смартфонах средней ценовой категории летало...
Unity 2021 перестала поддерживать ECS (временно), пришлось качать 2020, и при этом потерять Pooling из 2021. Уже, как минимум, неадекватно.
Потому на каждый "ЧИХ" в игре, включая к примеру кнопку "Выход", писать стуктуру, к ней прописывать отдельно Логику, все это упаковывать в Провайдер, следить за порядком вызова... оййй... Все ЭТО нарастает как снежный ком, на одном объекте целый ворох ЭТОГО ВСЕГО... А если сложная модель поведения персонажей, к примеру, с Полиморфизмом... О, Боже! Это какой то ужас! Да, работает шустро, не отнимешь, НО ЭТО ТАКОЙ ГЕМОРОЙ!!!
про то что они говорят есть в morpeh ecs :D
Лично я потестировал ecs и понял что это сырой геморой, начиная от самого ecs заканчивая сборкой, и кучей ошибок при попытке сбилдить хоть на какую платформу
ecs - это архитектурный паттерн. он не может быть сырым. возможно, что вы говорите про библиотеку какую.
На каком языке пытается говорить Алексей?
Немножко интересной инфы.
Но люди, которые общаются очень плохо говорят по-русски. Особенно Алексей, он очень плох.
Приходится сильно напрягаться, чтобы понять сказанное. Как будто в падике с алкашами сижу.)
Все понятно было рассказано, лишь бы доебатся!
Пиздатый вебинар с оч полезной инфой не только про ECS, а и про Photon Quantum). Cпасибо и слава Украине!