MeetUp факультета разработки игр GeekUniversity #2
О мероприятии
"Говорим про ECS*"
На митапе факультета разработки игр GeekUniversity обсудим с практиками, для чего и как применять архитектуру ECS (Entity Component System) и можно ли обойтись без нее. Встреча будет полезна как начинающим, так и практикующим разработчикам на Unity.
14:00 - “Введение в Data-Oriented Programming на Unity”. Валентин Симонов, Field Engineer, Unity Technologies.
Валентин расскажет о Data-Oriented Tech Stack (DOTS) и его частях: ECS, C# Job System, Burst Compiler, Unity Physics — технологиях которые позволят играм на Unity использовать все возможности современного десктопного и мобильного железа.
- Что такое Data-Oriented Programming.
- Какие задачи решают DOTS и входящие в него технологии.
- Что можно использовать уже сегодня.
- Какие возможности станут доступны в будущем.
15:00 - “От теории к практике. Опыт реализации DOTS в боевом проекте”. Сергей Клименко, программист, студия Moonlight Mouse.
Сергей на примере разрабатываемой Moonlight Mouse игры - Elinor, расскажет о том, как реализовывать геймплейные механики в DOTS, с чего начать переход на DOD, как организовать данные и системы в ECS и как оптимизировать время выполнения систем с помощью C# Job System.
16:00 - "ECS для начинающих разработчиков". Василий Маркевич, студент факультета разработки игр GeekUniversity, Project Manager, автор канала @ecscomrade.
Василий поделится опытом разработки на ECS и ответит на два главных вопроса начинающего разработчика:
- Почему мне НЕ нужен ECS?
- Почему мне НУЖЕН ECS?
Регистрация на MeetUp обязательна. Количество мест ограничено.
*ECS — это шаблон проектирования "Сущность Компонент Система" (Entity Component System). Шаблон обеспечивает разделение данных (компоненты) и кода, который работает с этими данными (системы). Таким образом, данные могут храниться в памяти максимально эффективно для CPU, что позволяет полностью использовать кэш процессора при итерации по этим данным.
В реализации ECS от Unity, при написании Систем, которые обрабатывают большие объемы данных, можно использовать технологию C# Job System. Эта технология позволяет писать безопасный многопоточный код и использовать все возможности современных многоядерных процессоров. Более того, при использовании C#JS и компилятора Burst, который генерирует максимально оптимизированный машинный код под целевую платформу, производительность этого кода будет в десятки раз выше.
Шаблон проектирования ECS и его конкретная реализация в Unity является фундаментом, на котором строятся все остальные технологии Data-Oriented Tech Stack (DOTS). Сама по себе парадигма Data-Oriented Programming уже не нова и активно применяется в индустрии разработки игр. Использование DOP в Unity потребует от разработчиков мыслить другими терминами и отказаться от многих привычных инструментов. С вопросом, стоит ли применять DOTS и ECS в вашем проекте, мы попробуем разобраться на митапе.