[k-syndicate.school] Екатерина Ревво, Алексей Науменко — Entity component system (2024)
Курс о том, как отточить свои инструменты для создания игр на максимум.
Он посвящен тому, чтобы не просто объяснить суть ECS-подхода, а передать действительно сеньорные навыки мышления и построения продуктов. Существует большое заблуждение о том, что ECS - это в первую очередь комплексный (и часто неудобный) способ глобальной оптимизации. Мы знаем, что это не так. Правильно использованный ECS, прежде всего - самый удобный способ реализации сложного (да и любого) геймдизайна. Он дает возможность адаптации к изменяющимся требованиям, что для геймплея любой игры является естественным и постоянным процессом. Мы видим нашей задачей передать это видение вам. Дополнительная производительность там также есть, но во вторую очередь.
Фреймворк: мы используем опенсорсный фреймворк Entitas. Мы и наши друзья пользовались и пользуются им на проектах самого разного масштаба - от match-3 до онлайн шутеров. Из всех фреймворков мы находим его самым выразительным и удобным. (Вам тоже понравится)
Существует заблуждение о том, что он не поддерживается. Это не так: последняя его версия 1.14 вышла в сентябре 2022 года, а версия 2.0 постепенно готовится к релизу. Его большими преимуществами являются приоритезация читаемости, возможность работы в C# standalone, кастомизируемая кодогенерация, мощный визуальный дебаг в эдиторе и производительность, а также популярность использования в большом продакшене.
Курс состоит из двух частей:
Первая часть посвящена майндшифту в парадигму Data-oriented подхода к проектированию. В ней мы напишем обширное и сложное демо Survivors-like игры и на практике рассмотрим весь подход, начиная от самых маленьких кирпичей (создания и организации систем и компонентов) и заканчивая полной архитектурой и инфрастуктурой для написания геймплея. Кроме самих трюков и приемов в коде, дополненной кодогенерации и деталей взаимодействия частей, мы стараемся также сакцентировать внимание на мышлении при проектировании фич.
Вторая часть расширяет это демо продакшен-подходами к организации всей структуры проекта. Мы рассмотрим, как ECS встраивается в систему управления состояниями игры, как организовать сохранение и загрузку прогресса, возможности управляемой симуляции, а также, для каких задач не стоит использовать ECS и как организовать сообщение между ECS-миром и его окружением.
После того, как вы напишете этот проект последовательно и вместе с нами, вы получите мощнейший инструмент для геймплея любого масштаба.
Разработка игр заставляет нас решать массу проблем продукта в целом. За их решением можно потерять ощущение удовольствия и радости от самого создания игр. Мы его возвращаем.
Что внутри?
Курс рассчитан на 2 месяца плотного обучения
→ SETUP
Установим Entitas, разберем структуру проекта, добавим наши кастомные код-генераторы поверх тех, что из коробки, которые сделают наш будущий код еще читаемее.
→ ТЕОРИЯ И МАЙНДШИФТ
Разберемся, в чем главные преимущества использования ECS-парадигмы для создания и поддержки геймплея, почему нужен сдвиг мышления даже тем, кто уже очень хорош в OOP, а также, почему можно легко ошибиться в освоении и испортить себе все впечатление. Поговорим о том, является ли оптимизация самым важным преимуществом подхода.
→ FIRST STEPS
Начнем с базовых фич в проекте и стартовой инфраструктуры. На их примере разберемся с основными составными частями Entity-Component-System-подхода.
→ ENTITY-VIEW BINDING
Продолжим ответом на частый вопрос: как правильно связывать жизненные циклы Entity и GameObject-ов. В течение нескольких уроков напишем и расширим правильную инфраструктуру для этого.
→ COMPLEX FEATURES
В течение следующих уроков расширим геймплей проекта сложной системой взаимодействия эффектов и статусов.
Добавим разноплановые скиллы, ауры, лут, по-разному взаимодействующие с персонажами и друг с другом, и на их примере отточим свое мышление при проектировании. Разберемся с деталями и приемами для решения типичных ситуаций, посмотрим на возможности визуального дебага, наблюдаемость данных.
Вы увидите, как сложные фичи с дополняющимся и изменяющимся дизайном легко реализуются и комбинируются в ECS.
→ UI
Разберем разные варианты коммуникации ECS с UI, добавим инфраструктуру для управления окнами.
→ SERVICES + ECS
В течение всего курса будем обсуждать и наблюдать, как правильно выстраивать взаимодействие сервисной модели и ECS, какие задачи хорошо реализуются с помощью ECS, и какие - нет.
→ FAR AND BEYOND
Курс можно было бы закончить предыдущим пунктом, но мы хотим снабдить вас навыками и мышлением в ECS по максимуму, поэтому не останавливаемся! Покажем дополнительные возможности, которые открывает ECS (за пределами привычного понимания преимуществ подхода), на примере управляемой симуляции со сложными пересчетами.
→ ADVANCED ARCHITECTURE
Но и это еще не все! Мы много раз говорили, что ECS отлично себя чувствует в нашей модели архитектуры. И мы это вам продемонстрируем: покажем полную интеграцию ECS в общую архитектуру игры, а так же все сопутствующие трюки, модификации и нюансы. Включая, конечно же, сохранение прогресса и демонстрацию того, как правильно сериализовать и восстанавливать ECS-мир.
Авторы:
Екатерина Ревво. 10 лет опыта разработки и ведения проектной команды CТО Black Tower Basement.
Алексей Науменко. 12 лет опыта разработки CEO Black Tower Basement.
Тариф: ECS Vanilla
ИСТОЧНИК
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
СКАЧАТЬ Скрытое содержимое. Вам нужно войти или зарегистрироваться.