Запись

Unity Gameplay Developer (Игорь Гулькин)

Тема в разделе "Курсы по программированию"

Цена:
50000 руб
Взнос:
655 руб
Организатор:
Евражкa

Список участников складчины:

1. Евражкa 2. xRoollyx
open
2
Записаться
  1. Евражкa Организатор складчин

    Unity Gameplay Developer (Игорь Гулькин)

    [​IMG]

    Атомарный подход – это удобная концепция, в которой легко разрабатывать механики игровых объектов. Благодаря принципу разделения данных и логики, можно легко переиспользовать поведение и описывать игровые объекты декларативно, при этом оставаясь в парадигме ООП. Поэтому это хорошая альтернатива ECS, которую было бы полезно изучить и взять себе на вооружение

    Модуль I. Атомарный подход

    Урок #1 Вводный урок

    Цель занятия: определить формат обучения

    Описание: Познакомимся друг с другом и с программой курса, рассмотрим формат обучения, проверку и сдачу домашних заданий. Изучим организацию проекта и файловую систему, разберем конвенции нейминга классов и код-стайла


    Урок #2. Принцип разделения данных и логики

    Цель занятия: Научиться применять принцип разделения данных и логики для повторного использования игровых механик.

    Описание: Реализуем поведение персонажа и пули. Рассмотрим переиспользование механики перемещения.

    Домашнее задание: реализовать механику стрельбы пулями для персонажа по кулдауну


    Урок #3. Структура игрового объекта

    Цель занятия: Научиться описывать игровые объекты декларативно

    Описание: Поговорим про основные слои объекта: model & view, и почему важно их разделять. Также разберемся, чем отличаются секции от компонентов в атомарном подходе и реализуем анимации, звуки и VFX


    Урок #4. Групповое задание

    Цель занятия: Закрепить полученные знания по атомарному подходу

    Групповое задание: Реализовать зомби с механикой ближнего боя на атомарном подходе. Лучшая команда получит пиццу

    Домашнее задание: реализовать конвертер ресурсов на атомарном подходе


    Урок #5. Полиморфизм игрового объекта

    Цель занятия: научится работать с игровыми объектами разного типа.

    Описание: Поговорим, про проблематику использования классического полиморфизма. Разберем понятия статической и динамической типизации. Реализуем универсальный интерфейс получения урона от пули и ближнего боя


    Урок #6. Динамическое поведение объекта

    Цель занятия: научится изменять поведения игровых объектов в процессе геймплея.

    Описание: Реализуем использование различных оружий, которые будут менять поведение атаки персонажа. Сделаем контейнер, в который можно будет добавлять/удалять поведения.


    Урок #7. Групповое занятие

    Цель занятия: закрепить полученные знания по атомарному подходу.

    Групповое задание: реализовать временные механики: получение яда, восстановление здоровья, бафф к характеристикам


    Урок #8. Динамический объект

    Цель занятия: научится менять данные и логику игровых объектов в процессе игры

    Описание: Реализуем динамические поведения — ходить/летать, подбирать броню, заморозка на 10 сек, яд.

    Домашнее задание: реализовать подбираемую абилку: “кинуть гранату”

    Модуль II. Искусственный интеллект
    Урок #9. Архитектура ИИ

    Цель занятия: Изучить основные концепции разработки ИИ

    Описание: В данном уроке рассмотрим принципы разработки искусственного интеллекта. Разберем почему нужно разделять данные и логику. Определим ключевые слои для ИИ: Sensors, Reasoners, Actions, Memory. В качестве примера сделаем поведение атаки противника и область видимости.


    Урок #10. Иерархическая стейт-машина

    Цель занятия: Реализовать поведение ИИ с помощью иерархической стейт-машины

    Описание: Изучим подход организации поведения ИИ в виде состояний. В качестве примера сделаем NPC, который будет патрулировать по умолчанию, и если он видит противника в радиусе, то начинает его атаковать.


    Урок #11. Дерево поведения

    Цель занятия: Реализовать поведение ИИ с помощью Behaviour Tree

    Описание: Организуем поведения ИИ с помощью Behaviour Tree. В первой части урока изучим основные узлы дерева поведения: Action, Sequence, Selector, Condition. Пример будет аналогичен предыдущему занятию.


    Урок #12. Групповое занятие

    Цель занятия: Закрепить полученные знания по BehaviourTree

    Групповое задание: Реализовать поведение добычи ресурсов с доставкой их на базу для NPC. Разделимся на команды. Лучшая команда получит пиццу

    Домашнее задание: реализовать поведение NPC перетаскивания ресурсов с одного конвертора на другой


    Урок #13. GOAP (Ч1)

    Цель занятия: изучить систему принятия решений с помощью подхода Goal-Oriented Action Planning

    Описание: разберем, что такое Goal-Oriented Action Planning и его принцип работы. Изучим алгоритмы построения плана и что такое World State.


    Урок #14. GOAP (Ч2)

    Цель занятия: изучить систему принятия решений с помощью подхода Goal-Oriented Action Planning

    Описание: рассмотрим реализацию GOAP на Unity

    Модуль III. Игровая система

    Урок #15. Стратегии разрешения зависимостей

    Цель занятия: изучить архитектурные паттерны разрешения зависимостей в контексте игры.

    Описание: На занятии разберем архитектурные паттерны, которые позволяют разрешать зависимости в коде. Начнем с самого простого синглтона, вторым шагом модифицируем до паттерна Service Locator, а затем напишем свой Dependency Injection. В конце урока сравним все три подхода, рассмотрим их плюсы и минусы.


    Урок #16. Фреймворк Zenject

    Цель занятия: изучить фреймворк внедрения зависимостей Zenject.

    Описание: В данном уроке подробно разберем фреймворк Zenject, который является стандартом игровой индустрии. В процессе занятия изучим контексты, различные способы биндинга и внедрения зависимостей, а также затронем фабрики и пулы.


    Урок #17. Игровой цикл

    Цель занятия: реализовать архитектуру управления игровой системой

    Описание: В данном уроке поговорим о том, как управлять жизненным циклом игры без Mono Kernel и обрабатывать события старта, паузы и завершения игры. Сначала определим интерфейсы для игровых событий, а затем сделаем Game Manager, который и будет их вызывать

    Домашнее задание: переделать архитектуру демо-проекта зомби шутера на Zenject с игровыми событиями


    Урок #18. Интерфейс игры. MVO паттерн

    Цель занятия: Научиться применять паттерн Model-View-Observer в разработке игрового интерфейса.

    Описание: На занятии поговорим о том, как проектировать игровой интерфейс на Unity. Разберем, что такое слои Model & View, и как они взаимодействуют с помощью паттерна Model-View-Observer. В качестве примера сделаем виджет, который отображает статы игрока на экране




    Урок #19. Интерфейс игры. MVP паттерн

    Цель занятия: Научиться применять паттерн Model-View-Presenter в разработке игрового интерфейса.

    Описание: На занятии разберем MVP паттерн на примере инвентаря предметов, которые можно купить. В качестве закрепления будет групповое задание, в котором нужно будет сделать окошко, отображающее список эффектов.


    Урок #20. Интерфейс игры. PM паттерн

    Цель занятия: Научиться применять паттерн Presentation Model в разработке игрового интерфейса.

    Описание: На занятии разберем MVP паттерн на примере окошка настроек. В качестве закрепления будет групповое задание, в котором нужно будет сделать окошко, отображающее список эффектов.


    Урок #21. Групповое занятие

    Цель занятия: Закрепить полученные знания по MVx паттернам.

    Групповое задание: Реализация окошка поражения

    Домашнее задание: реализовать окошко снаряжения персонажа

    Модуль IV. Продвинутый геймплей
    Урок #22. Процедурные анимации и физика

    Цель занятия: научиться реализовывать отзывчивый геймплей

    Описание: Рассмотрим различные инструменты для анимаций и физики:

    Animation Blending, Inverse Kinematics & Ragdolls


    Урок #23. Визуальные эффекты и шейдеры

    Цель занятия: Научиться работать с визуалом

    Описание: Рассмотрим различные инструменты для создания визуальных эффектов: Decals, Visual Effect Graph, Shader Graph. Реализуем шейдер подсветки предметов


    Урок #24. Графика и освещение

    Цель занятия: Научиться работать с графикой и светом

    Описание: Рассмотрим инструменты Unity для работы со светом: Baking, Reflection Probes, Post Processing


    Урок #25. Аудиосистема

    Цель занятия: Реализовать аудиосистему для музыки, звуков и UI

    Описание: В данном уроке рассмотрим, как можно гибко реализовать аудиосистему таким образом, чтобы бизнес-логика не зависела от звуков. На занятии рассмотрим способы работы со звуками интерфейса, плеером музыки и звуками на сцене. А также рассмотрим Audio Mixer и различные фишки со звуками



    Урок #26. Камера и катсцены

    Цель занятия: Освоить инструменты работы с камерой в Unity

    Описание: На занятии подробно разберем инструмент Cinemachine. Рассмотрим его возможности: настройку, переключение, блендинг, а также границы. Также рассмотрим реализацию системы катсцен и управлением TimeScale.


    Урок #27. Редактор диалогов

    Цель занятия: Изучить основы нодового редактора в Unity

    Описание: На лекции рассмотрим, как можно сделать нодовый редактор используя UIToolkit и GraphView. Шаг за шагом реализуем структуру диалогов и их переходов, окно и Toolbar в Editor. Сделаем сохранение схемы диалогов в конфиг, и на основе конфига запустим диалог в игре.


    Урок #28. Туториал

    Цель занятия: Научиться выстраивать архитектуру туториала

    Описание: В данном уроке рассмотрим кейс реализации шага туториала, на котором нужно сделать прокачку персонажа. Изучим лайфхаки с UI, которые упростят разработку туториала и сделают код поддерживаемым без костылей

    Модуль V. Проектная работа
    Урок #29. Выбор проектной работы

    Цель занятия: Определить формат проектной работы

    Описание: Обсудим, что из себя представляет проектная работа, а также ответим на вопросы по курсу


    Урок #30. Защита проектных работ (Ч1)

    Цель занятия: Выступить с проектной работой


    Урок #31. Защита проектных работ (Ч2)

    Цель занятия: Выступить с проектной работой


    Урок #32. Завершающий урок

    Цель занятия: Подвести итоги курса.

    Описание: Финализируем полученные знания, поговорим о том, как можно дальше развиваться в GameDev направлении. Ответим на вопросы по курсу

    Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...
     
Наверх