Content Oriented Web
Make great presentations, longreads, and landing pages, as well as photo stories, blogs, lookbooks, and all other kinds of content oriented projects.
ДАТА НАЧАЛА:
Учим программировать для Action игр в Unreal Engine и C++
Код бывает разным
Один код помогает свести дебет с кредитом
А другой вызывает эмоции у миллионов людей
От этого кода зависит как летит пуля
И как она попадает
во врага
Этот код используется для создания игр на движке UNREAL

GAMECODE

{ ПОЧЕМУ UNREAL }
std::cout << Есть пять главных причин, по которым стоит учиться работать именно в Unreal.

1. С++, на котором работает Unreal — это язык, который используется во всей индустрии.

2. Открытость исходного кода.

3. Развитый геймплейный фреймворк с отличной поддержкой сети.

4. Наличие выпущенных ААА и AA тайтлов.

5. Политика «заработай миллион, а потом плати»
<< std::endl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{ О ЧЁМ КУРС }
{ ДЛЯ КОГО ЭТОТ КУРС }
std::cout << Курс в первую очередь рассчитан на людей, которые увлекаются программированием, и которые хотят научиться создавать игры.

Для тех, кому было бы интересно работать над геймплеем, а именно — писать код, который позволит персонажам двигаться, перемещаться, стрелять и взаимодействовать с окружающим миром.
<< std::endl
1
2
3
4
5
6
7
8
9
10
/**
* Устанавливает скорость прыжка в очередь на обработку. Данная скорость будет обработана при следуюзем вызове CharacterMovementComponent::Tick,
* и также выставит игроку "падающее" состояние. Вызывает событие OnLaunched.
* LaunchVelocity скорость передаваемая игроку
* bXYOverride если true, то компоненты XY скорости игрока будут заменены, а не добавлены
* bZOverride если true, то компоненты XY скорости игрока будут заменены, а не добавлены
*/

UFUNCTION(BlueprintCallable, Category=Character)
virtual void LaunchCharacter(FVector LaunchVelocity, bool bXYOverride, bool bZOverride);

/**
* Убивает игрока. Только на Server/authority.
* KillingDamage - количиство урона при убийстве
* DamageEvent - событие нанесения урона при убийстве
* Killer - кто убил угрока
* DamageCauser - объект, непосрественно нанесший урон (например взорваший снаряд, оружие и т.д.)
* возвращает true если успешно
*/

virtual bool Die(float KillingDamage, struct FDamageEvent const& DamageEvent, class AController* Killer, class AActor* DamageCauser);
{ ЧЕМУ ТЫ НАУЧИШЬСЯ НА КУРСЕ }
Реализовывать основные шутерные механики в Unreal Engine 4

Грамотно проходить код-ревью
1



2
Работать с системой контроля версий Perforce
3



{ КТО ПРОВОДИТ КУРС }
// Работал ведущим геймплей-программистом Rainbow Six Siege

std::cout << Свой самый ценный опыт я получил, работая над Rainbow Six Siege. Когда мы сталкивались с проблемой, мы не могли просто поискать решение в гугле. Пришлось быстро научиться задавать правильные вопросы и грамотно проходить код-ревью.
Всем этим опытом я поделюсь на курсе. << std::endl
1
2
3
4
5
6
7
8
9 10
11
12
АЛЕКСАНДР БАЛАКШИН
{ ФОРМАТ ОБУЧЕНИЯ }
Регистрация на курс
ДО
Начало обучения

Тип лекций
ПРЕДЗАПИСЬ
Длительность
5 месяцев
4 месяца программа +1 месяц доп. проверка домашних заданий

{ ПРОГРАММА КУРСА }
Часть_1::Введение
{

Обзор курса
{
  1. Что такое программирование игровой логики.
  2. Чему научат на курсе
  3. Какие технологии будут использоваться и требования на курсе
}

Установка и настройка окружения
{
  1. Устанавливаем UE4
  2. Устанавливаем Visual Studio C++ community edition
}

Создание нового проекта
{
  1. Используем шаблон UE4 blank project
  2. Обзор редактора
  3. Базовые инструменты создания уровней
    {
    Асtor'ы и статические меши (static meshes)
    BSP кисти и работа с ними
    Простой Grid-материал
    }
}

С++ в Unreal Engine
{
  1. Для тех кто в С++ впервые: почему 2 файла (.h и .cpp)
  2. Объектная модель. Классы UObject, AActor, UActorComponent
  3. Система рефлексии в UE4: UPROPERTY(), UFUNCTION() и т.д.
  4. Еще один момент для тех кто в С++ впервые: что такое указатели и как их используют.
}

Сборка игры
{
  1. Visual studio solution: проекты engine (UE4) и самой игры.
  2. Конфигурации билдов (DebugGame Editor, Development editor, DebugGame, Development, Shipping)
  3. Внесение изменений в код и их подгрузка редактором (full rebuild vs. hot reload vs. live coding)
  4. Сборка и упаковка (packaging) игры.
}

Настройка оставшегося окружения: трекер задач и система контроля версий
{
  1. Perforce как предпочтительная система контроля версий. Обзор других вариантов - git, SVN, Plastic SCM
  2. Трекеры задач Jira и Trello
}

}
Часть_1::Введение
{

Обзор курса
{
  1. Что такое программирование игровой логики.
  2. Чему научат на курсе
  3. Какие технологии будут использоваться и требования на курсе
}

Установка и настройка окружения
{
  1. Устанавливаем UE4
  2. Устанавливаем Visual Studio C++ community edition
}

Создание нового проекта
{
  1. Используем шаблон UE4 blank project
  2. Обзор редактора
  3. Базовые инструменты создания уровней
    {
    Асtor'ы и статические меши (static meshes)
    BSP кисти и работа с ними
    Простой Grid-материал
    }
}

С++ в Unreal Engine
{
  1. Для тех кто в С++ впервые: почему 2 файла (.h и .cpp)
  2. Объектная модель. Классы UObject, AActor, UActorComponent
  3. Система рефлексии в UE4: UPROPERTY(), UFUNCTION() и т.д.
  4. Еще один момент для тех кто в С++ впервые: что такое указатели и как их используют.
}

Сборка игры
{
  1. Visual studio solution: проекты engine (UE4) и самой игры.
  2. Конфигурации билдов (DebugGame Editor, Development editor, DebugGame, Development, Shipping)
  3. Внесение изменений в код и их подгрузка редактором (full rebuild vs. hot reload vs. live coding)
  4. Сборка и упаковка (packaging) игры.
}

Настройка оставшегося окружения: трекер задач и система контроля версий
{
  1. Perforce как предпочтительная система контроля версий. Обзор других вариантов - git, SVN, Plastic SCM
  2. Трекеры задач Jira и Trello
}

}
Часть_2::Создание персонажа с нуля на С++. Обработка ввода, перемещение персонажа и анимационная система в Unreal Engine.
{

Классы ACharacter и UCameraComponent
{
  1. Классы AActor и Pawn в UE4
  2. Компонент Camera component
}

Обработка ввода и простое перемещение. Movement Component.
{
  1. Таблицы ввода, input actions и input axis
  2. Компонент Movement component и режимы перемещения
  3. UInputComponent и Обработка ввода
}

Анимации персонажа. Класс Anim Instance и Animation blueprint
{
  1. Скелетные меши (skeletal mesh)
    {
    Что такое Skeletal mesh, скелет, как работают скелетные анимации.
    Что такое физический ассет.
    Импорт скелетной меши из DCC в проект UE4.
    }
  2. Animation sequence и animation montage
    {
    Класс Anim instance class и animation blueprint
    Animation blueprint state machine
    Animation blendspace и простая анимация перемещения персонажа
    }
}

Реализация прыжка, приседания и бега
{
  1. Обрабатываем ввод (нажатие "пробела", "ctrl", "sprint")
  2. Вызываем соответствующий метод у персонажа
  3. Поддержка анимации
}

}
Часть_2::Создание персонажа с нуля на С++. Обработка ввода, перемещение персонажа и анимационная система в Unreal Engine.
{

Классы ACharacter и UCameraComponent
{
  1. Классы AActor и Pawn в UE4
  2. Компонент Camera component
}

Обработка ввода и простое перемещение. Movement Component.
{
  1. Таблицы ввода, input actions и input axis
  2. Компонент Movement component и режимы перемещения
  3. UInputComponent и Обработка ввода
}

Анимации персонажа. Класс Anim Instance и Animation blueprint
{
  1. Скелетные меши (skeletal mesh)
    {
    Что такое Skeletal mesh, скелет, как работают скелетные анимации.
    Что такое физический ассет.
    Импорт скелетной меши из DCC в проект UE4.
    }
  2. Animation sequence и animation montage
    {
    Класс Anim instance class и animation blueprint
    Animation blueprint state machine
    Animation blendspace и простая анимация перемещения персонажа
    }
}

Реализация прыжка, приседания и бега
{
  1. Обрабатываем ввод (нажатие "пробела", "ctrl", "sprint")
  2. Вызываем соответствующий метод у персонажа
  3. Поддержка анимации
}

}
Часть_3::Оружие
{

Оружие ближнего боя
{
  1. Импорт модели оружия
  2. Создание классов BaseWeapon и MeleeWeapon
  3. Экипировка оружия персонажем. Прикрепление к слотам.
  4. Атака оружием ближнего боя. Обработка ввода и анимация.
  5. Хит капсула и тесты на попадание
    {
    Отладочная отрисовка
    }
  6. Применение удара к объектам
    {
    Нанесение урона
    Добавление импульса
    }
  7. Дополнительные анимации
    {
    Стойка персонажа
    Анимации доставания и убирания оружия
    }
}

Основы оружия дальнего боя: хит скан (hit scan)
{
  1. Импорт модели оружия дальнего боя: оружие + магазин
  2. Реализация механики стрельбы
    {
    Обработка ввода
    Поддержка анимаций
    }
  3. Регистрация попадания через hit scan.
    {
    Отладочная отрисовка
    }
  4. Добавление визуальных эффектов
    {
    Следы от выстрелов
    Дульная вспышка
    }
}

Оружие дальнего боя: амуниция, скорострельность, прицеливание (ADS)
{
  1. Амуниция
    {
    Поддержка количества патронов в обойме
    Анимация перезарядки
    }
  2. Автоматический огонь
    {
    Новое оружие - автомат.
    Поддержка режима автоматического огня и различной скорострельности
    Добавление отдачи и разброса
    }
  3. Прицеливание (Adding aiming down - ADS)
    {
    Анимация прицеливания
    Эффект приближения
    Уменьшение отдачи и разброса
    }
}

Оружие дальнего боя: дробовики
{
  1. Регистрация попадания дробовика - конус поражения, множественные хит-сканы)
  2. Перезарядка дробовика.
}

Регистрация попадания через снаряды ("проджектайлы" - projectiles)
{
  1. Сложная баллистика (гравитация и рикошет)
  2. Projectile movement component
    Делаем снайперскую винтовку
    {
    Несколько режимов прицеливания
    Регистрация попадания через снаряды
    }
}

Взрывы
{
  1. Создаем взрывающийся Actor - бочку.
  2. Зона взрыва. Регистрация урона от взрыва
  3. Нанесение урона и добавление импульса.
}

Гранаты
{
  1. Создаем гранату
  2. Бросаем гранату (анимации персонажа)
  3. Траектория гранаты - обработка отскоков
  4. Таймер гранаты
}

}
Часть_3::Оружие
{

Оружие ближнего боя
{
  1. Импорт модели оружия
  2. Создание классов BaseWeapon и MeleeWeapon
  3. Экипировка оружия персонажем. Прикрепление к слотам.
  4. Атака оружием ближнего боя. Обработка ввода и анимация.
  5. Хит капсула и тесты на попадание
    {
    Отладочная отрисовка
    }
  6. Применение удара к объектам
    {
    Нанесение урона
    Добавление импульса
    }
  7. Дополнительные анимации
    {
    Стойка персонажа
    Анимации доставания и убирания оружия
    }
}

Основы оружия дальнего боя: хит скан (hit scan)
{
  1. Импорт модели оружия дальнего боя: оружие + магазин
  2. Реализация механики стрельбы
    {
    Обработка ввода
    Поддержка анимаций
    }
  3. Регистрация попадания через hit scan.
    {
    Отладочная отрисовка
    }
  4. Добавление визуальных эффектов
    {
    Следы от выстрелов
    Дульная вспышка
    }
}

Оружие дальнего боя: амуниция, скорострельность, прицеливание (ADS)
{
  1. Амуниция
    {
    Поддержка количества патронов в обойме
    Анимация перезарядки
    }
  2. Автоматический огонь
    {
    Новое оружие - автомат.
    Поддержка режима автоматического огня и различной скорострельности
    Добавление отдачи и разброса
    }
  3. Прицеливание (Adding aiming down - ADS)
    {
    Анимация прицеливания
    Эффект приближения
    Уменьшение отдачи и разброса
    }
}

Оружие дальнего боя: дробовики
{
  1. Регистрация попадания дробовика - конус поражения, множественные хит-сканы)
  2. Перезарядка дробовика.
}

Регистрация попадания через снаряды ("проджектайлы" - projectiles)
{
  1. Сложная баллистика (гравитация и рикошет)
  2. Projectile movement component
    Делаем снайперскую винтовку
    {
    Несколько режимов прицеливания
    Регистрация попадания через снаряды
    }
}

Взрывы
{
  1. Создаем взрывающийся Actor - бочку.
  2. Зона взрыва. Регистрация урона от взрыва
  3. Нанесение урона и добавление импульса.
}

Гранаты
{
  1. Создаем гранату
  2. Бросаем гранату (анимации персонажа)
  3. Траектория гранаты - обработка отскоков
  4. Таймер гранаты
}

}
Часть_4::Искусственный интеллект NPC. AI персонажи. AI контроллеры, Blackboards, навигация и дерево поведения
{

Создание "стационарного" NPC - башни.
{
  1. Создание классов AICharacter и AIAnimationInstance
  2. AIcontroller и TeamID
  3. Blackboard. Установка врага в blackboard. (по попаданию в радиус)
  4. Обработка значений blackboard в AIController'е.
    {
    Если игрок попадает в радиус стрельбы "башни", то она открывает по нему огонь.
    }
}

Чувства и система восприятия
{
  1. Perception system. Система восприятия Perception System. Чувство зрения AI_SenseSight
  2. Добавление зрения к "башне"
}

Навигация. Создаем перемещающегося персонажа
{
  1. Создание движущегося персонажа (например, "зомби")
  2. Навигационная сетка (Navigation mesh)
    {
    Что такое навигационная сетка?
    Создание навигационной сетки в UE4. NavMesh объем
    Модификаторы навигации
    }
  3. Добавляем перемещение
}

Дерево поведений
{
  1. Новый AI Character c оружием дальнего боя. Имеет 2 варианта поведения: патрулирование и бой с игроком.
  2. Что такое дерево поведений (Behavior tree)?
  3. Узлы дерева поведения:
    {
    Composties
    Decorators
    Services
    Tasks
    }
  4. Вэйпоинты. Реализация состояния патрулирования.
  5. Переключение между режимами боя и патрулирования.
}

}
Часть_4::Искусственный интеллект NPC. AI персонажи. AI контроллеры, Blackboards, навигация и дерево поведения
{

Создание "стационарного" NPC - башни.
{
  1. Создание классов AICharacter и AIAnimationInstance
  2. AIcontroller и TeamID
  3. Blackboard. Установка врага в blackboard. (по попаданию в радиус)
  4. Обработка значений blackboard в AIController'е.
    {
    Если игрок попадает в радиус стрельбы "башни", то она открывает по нему огонь.
    }
}

Чувства и система восприятия
{
  1. Perception system. Система восприятия Perception System. Чувство зрения AI_SenseSight
  2. Добавление зрения к "башне"
}

Навигация. Создаем перемещающегося персонажа
{
  1. Создание движущегося персонажа (например, "зомби")
  2. Навигационная сетка (Navigation mesh)
    {
    Что такое навигационная сетка?
    Создание навигационной сетки в UE4. NavMesh объем
    Модификаторы навигации
    }
  3. Добавляем перемещение
}

Дерево поведений
{
  1. Новый AI Character c оружием дальнего боя. Имеет 2 варианта поведения: патрулирование и бой с игроком.
  2. Что такое дерево поведений (Behavior tree)?
  3. Узлы дерева поведения:
    {
    Composties
    Decorators
    Services
    Tasks
    }
  4. Вэйпоинты. Реализация состояния патрулирования.
  5. Переключение между режимами боя и патрулирования.
}

}
Часть_5::UI, Система инвентаря, Интерактивные объекты и триггеры
{

Система UMG и виджеты
{
  1. Виджеты игрока
    {
    Полоса здоровья
    Амуниция
    Прицел
    }
  2. Полосы здоровья у врагов
  3. Создаем меню
}

Экипировка. Колесо выбора.
{
  1. Компонент EquipmentСomponent для сохранения оружия игрока
  2. Колесо выбора (weapon wheel)
}

Подбираемые (pickable) и потребляемые (consumables) предметы
{
  1. Компонент PickableItem и блупринт поднимаемого предмета.
    {
    Создадим поднимаемые блупринты для существующего оружия.
    }
  2. Потребляемые предметы.
    {
    Аптечка (восстанавливает здоровье)
    Адреналин (увеличивает скорость)
    }
}

Инвентарь
{
  1. Компонент InventoryComponent для сохранения подобранных предметов
  2. Виджет инвентаря
  3. Экипировка оружия из интвентаря.
  4. Использования предметов из инвентаря
}

Интерактивные объекты
{
  1. Компонент InteractiveСomponent
    {
    Определяем интерактивный компонент по линии взгляда (Line of sight)
    Определяем интерактивный компонент по пересечению с объемом
    }
  2. Пример интерактивного объекта: Двери
  3. Пример интерактивного объекта: Лифты
}

Триггеры
{
  1. Использование триггеров для вызова врагов
}

}
Часть_5::UI, Система инвентаря, Интерактивные объекты и триггеры
{

Система UMG и виджеты
{
  1. Виджеты игрока
    {
    Полоса здоровья
    Амуниция
    Прицел
    }
  2. Полосы здоровья у врагов
  3. Создаем меню
}

Экипировка. Колесо выбора.
{
  1. Компонент EquipmentСomponent для сохранения оружия игрока
  2. Колесо выбора (weapon wheel)
}

Подбираемые (pickable) и потребляемые (consumables) предметы
{
  1. Компонент PickableItem и блупринт поднимаемого предмета.
    {
    Создадим поднимаемые блупринты для существующего оружия.
    }
  2. Потребляемые предметы.
    {
    Аптечка (восстанавливает здоровье)
    Адреналин (увеличивает скорость)
    }
}

Инвентарь
{
  1. Компонент InventoryComponent для сохранения подобранных предметов
  2. Виджет инвентаря
  3. Экипировка оружия из интвентаря.
  4. Использования предметов из инвентаря
}

Интерактивные объекты
{
  1. Компонент InteractiveСomponent
    {
    Определяем интерактивный компонент по линии взгляда (Line of sight)
    Определяем интерактивный компонент по пересечению с объемом
    }
  2. Пример интерактивного объекта: Двери
  3. Пример интерактивного объекта: Лифты
}

Триггеры
{
  1. Использование триггеров для вызова врагов
}

}
Часть_6::Сеть и репликация
{

Обзор Game flow в Unreal engine. Game mode и game state.
{
  1. UE4 game flow, класс game instance
  2. Классы Game mode и game state
}

Репликационная модель в Unreal engine
{
  1. Клиент-серверная модель в UE
  2. Режим сети и типы серверов
  3. Типы репликаций
    {
    Репликация Экторов (Actor replication)
    Репликация свойств (Property replication)
    Вызов удаленных процедур (RPCs)
    }
  4. Сетевые роли
}

Репликация игровых механик
{
  1. Репликация экторов и перемещения.
  2. Тестирование репликации в UE4
  3. Репликация здоровья игрока
  4. Репликация регистрации попаданий
    {
    Репликация hit scan
    Репликация снарядов
    }
  5. Репликация искусственного интеллекта
}

Создание многопользовательской сессии и присоединение к ней
{
  1. Создание сессии
  2. Поиск и присоединение к сессии
}

}
Часть_6::Сеть и репликация
{

Обзор Game flow в Unreal engine. Game mode и game state.
{
  1. UE4 game flow, класс game instance
  2. Классы Game mode и game state
}

Репликационная модель в Unreal engine
{
  1. Клиент-серверная модель в UE
  2. Режим сети и типы серверов
  3. Типы репликаций
    {
    Репликация Экторов (Actor replication)
    Репликация свойств (Property replication)
    Вызов удаленных процедур (RPCs)
    }
  4. Сетевые роли
}

Репликация игровых механик
{
  1. Репликация экторов и перемещения.
  2. Тестирование репликации в UE4
  3. Репликация здоровья игрока
  4. Репликация регистрации попаданий
    {
    Репликация hit scan
    Репликация снарядов
    }
  5. Репликация искусственного интеллекта
}

Создание многопользовательской сессии и присоединение к ней
{
  1. Создание сессии
  2. Поиск и присоединение к сессии
}

}
Часть_7::Система сохранения в Unreal, Стриминг уровней. (2 недели)
{

Сохранение игры
{
  1. Класс USaveGame
  2. Типы сохранения и загрузки (asynchronous, synchronous, binary)
  3. Сохранение свойств игрока
    {
    Сохранение локации
    Сохранение здоровья
    }
  4. Сохранение интерактивных объектов
}

Загрузка уровней
{
  1. Функция Open level
  2. Использование open level в сетевой игре. Перемещение из лобби в другие карты.
  3. Сохранение текущего уровня в одиночной игре с помощью USaveGame
}

Стриминг уровней
{
  1. Создание persistent level
  2. Использование streaming volumes для стриминга
  3. Загрузка и выгрузка подуровней через C++
}

Сохранение вместе со стримингом
{
  1. Сохранение интерактивных объектов в выгруженном уровне
  2. Загрузка состояния интерактивных объектов в загруженном уровне
}

}
Часть_7::Система сохранения в Unreal, Стриминг уровней. (2 недели)
{

Сохранение игры
{
  1. Класс USaveGame
  2. Типы сохранения и загрузки (asynchronous, synchronous, binary)
  3. Сохранение свойств игрока
    {
    Сохранение локации
    Сохранение здоровья
    }
  4. Сохранение интерактивных объектов
}

Загрузка уровней
{
  1. Функция Open level
  2. Использование open level в сетевой игре. Перемещение из лобби в другие карты.
  3. Сохранение текущего уровня в одиночной игре с помощью USaveGame
}

Стриминг уровней
{
  1. Создание persistent level
  2. Использование streaming volumes для стриминга
  3. Загрузка и выгрузка подуровней через C++
}

Сохранение вместе со стримингом
{
  1. Сохранение интерактивных объектов в выгруженном уровне
  2. Загрузка состояния интерактивных объектов в загруженном уровне
}

}
Часть_8::Профилирование и оптимизация в UE4
{

Инструменты профилирования: STAT команды, Session frontend и Unreal Insights

Significance manager и Animation sharing
{
  1. Настройки производительности обновления SkeletalMesh
  2. Стоимость обновления AI controller и задач поиска путей.
  3. Использование significance manager для оптимизации обновления персонажей
  4. Использование significance manager для оптимизации анимаций персонажей
}

}
Часть_8::Профилирование и оптимизация в UE4
{

Инструменты профилирования: STAT команды, Session frontend и Unreal Insights

Significance manager и Animation sharing
{
  1. Настройки производительности обновления SkeletalMesh
  2. Стоимость обновления AI controller и задач поиска путей.
  3. Использование significance manager для оптимизации обновления персонажей
  4. Использование significance manager для оптимизации анимаций персонажей
}

}
std::cout << Если у тебя нет опыта работы программистом, то при успешном окончании курса ты сможешь собеседоваться на позицию Junior Gameplay программиста. Если же ты работал программистом, но не в игровой индустрии, то знания, полученные на курсе, помогут при собеседовании уже на Middle позиции.
<< std::endl
1
2
3
4
5
6
7
8
9
// Автор курса
АЛЕКСАНДР БАЛАКШИН
ПРОЙДИ БЕСПЛАТНЫЙ КУРС INTRO GAMECODE
Что такое интро-курс?
Это бесплатные курсы, на которых мы даём базовые знания. Автор курса тот же, что и у основного — но сам материал в большей степени ориентирован на новичков. INTRO нужны для того, чтобы ты разобрался с основами до прохождения основного курса.

Здесь нет стримов и проверки домашних заданий — курс состоит из записанных уроков. Благодаря этому такие курсы не привязаны к конкретным датам: их можно проходить в любой момент.
{ КАК ПРОХОДИТ ОБУЧЕНИЕ }
ЗАПИСАННЫЕ УРОКИ
Информативные и лаконичные лекции от преподавателя, доступ к которым будет открываться по ходу прохождения курса
СТРИМЫ
Раз в две недели преподаватель будет проводить прямую трансляцию, на которой будет отвечать на вопросы студентов и разбирать их работы, а также проводить мастер-классы
ДОМАШНЯЯ РАБОТА
После каждого блока тебе выдается домашка. По мере готовности ты загрузишь домашку в систему контроля версий Perforce и получишь фидбек
XYZ COMMUNITY
Это закрытая площадка в Discord, в которой ты сможешь общаться с одногруппниками, менторами и преподавателями. Для вопросов по программе, gamedev-темам и домашке — отдельные чаты. Тоже самое для поиска вакансий, дейликов, флуда и просто общения. Также у нас есть открытый Discord-сервер, присоединиться к которому можно уже сейчас!
Уроки.h
Стримы.h
Домашка.h
Комьюнити.h
Курс можно взять в рассрочку за 8 100 ₽/мес. Научись создавать игры и зарабатывай на том, что тебе нравится.
НАЧНИ СЕЙЧАС, ПЛАТИ ПОТОМ
{ ОТЗЫВЫ НАШИХ СТУДЕНТОВ }
std::cout << Хочу сказать огромное спасибо за все старания, вложенные в нас! До этого я моделил для себя, и это было довольно посредственно. Благодаря курсу я не только понял всю механику создания полноценного ассета, но и начал на игрострой смотреть по-новому! << std::endl
// Игорь Удалов, студент XYZ School
1
2
3
4
5
6
7
8
БОЛЬШЕ ОТЗЫВОВ В НАШЕЙ ГРУППЕ ВК
{ НАШИ СТУДЕНТЫ УСТРАИВАЮТСЯ В: }
std::cout << Наша компания имеет положительный опыт работы с выпускниками школы XYZ. Курсы школы позволяют студентам развить свои творческие навыки и получить знания, необходимые для старта карьеры в геймдеве. Желаю школе процветания! << std::endl
// Александр Сиюткин
// COO, Blacksteinn

std::cout << Ребята толковые и развиваются с нормальным темпом. Двое приходили на джунов: один через 3 месяца уже стал мидлом, второй через 6 месяцев << std::endl
// Маргарита Дарова
// Lead HR Manager, Trace Studio
std::cout << Ваши ребята молодцы. Они быстро адаптируются, обучаются и добиваются хороших результатов на проектах
<< std::endl
// Ирина Воронович
// HR Manager, Octobox
{ ЗАПИСАТЬСЯ НА КУРС }
5 месяцев
48 600 ₽
Цена до 14 июня включительно
Ты сделаешь на курсе:

1. { Основные шутерные механики в Unreal Engine 4 };

2. { Научишься проходить код-ревью };

3. { Изучишь систему контроля версий Perforce };

{ Доступ ко всем лекциям курса };

{ Доступ в XYZ community };

{ Индивидуальная проверка домашки };
Начало обучения

Осталось на поток
МЕНЕЕ 40 МЕСТ
Срок регистрации на поток
ДО
81 000 Р

Купить курс в рассрочку
БЕСПРОЦЕНТНАЯ РАССРОЧКА
8 100
₽/месяц
Если не можешь оплатить курс сразу — бери в рассрочку на 6 месяцев. За проценты не переживай — у нас их нет, как и скрытых условий с переплатами. Все, что нужно от тебя: быть совершеннолетним, иметь прописку РФ и работать по ТК или самозанятым.
48 600 ₽
Поможем оформить рассрочку через сервис «Покупай со Сбером» или подадим заявку в 7 банков-партнёров — Альфа-Банк, Банк «Восточный», Тинькофф, ОТП, Почта-Банк, МТС, Кредит Европа Банк.
Условия «Покупай со Сбером
Беспроцентная рассрочка на 6 месяцев от банков партнёров
Владельцы дебетовой банковской карты ПАО Сбербанк, подключившиеся к услуге «Мобильный банк» и системе «Сбербанк Онлайн», могут совершать покупки в кредит, не выходя из дома!

Кредит по программе "Покупай со Сбером"

Основные требования:

Гражданство РФ
Возраст покупателя - от 21 до 65 лет на момент возврата кредита по договору
Наличие постоянной (временной) регистрации по месту жительства/пребывания на территории Российской Федерации
Преимущества Сервиса:

Без первоначального взноса по кредиту
Срок действия рассрочки: 6,12 месяца
Сумма кредита от 3 000 до 300 000 рублей

Клиентский сценарий:

· Выберите на сайте XYZ School интересующий курс и заполните форму обратной связи

· С вами свяжется менеджер XYZ School, уточнит детали заказа и направит ссылку для оформления кредита

· Когда откроется СберБанк Онлайн, авторизуйтесь и заполните заявку. Рассмотрение заявки займет не более 2-х минут

· Если кредит одобрен, деньги за покупку автоматически будут перечислены на счет XYZ School

· Чтобы получить доступ к курсу, свяжитесь с XYZ School



Подробнее с условиями кредитования можно ознакомиться на странице
Content Oriented Web
Make great presentations, longreads, and landing pages, as well as photo stories, blogs, lookbooks, and all other kinds of content oriented projects.
ПРЕДЛОЖЕНИЕ ДЛЯ КОМПАНИЙ
Если вы hr-менеджер, отвечаете за покупку курсов в компании или просто работаете в ней, для вас есть специальные условия:
Индивидуальные скидки при покупке курсов

Сертификат о прохождении курса

Оперативная работа со счетами и актами

Дополнительная поддержка от менторов.
ЗАЯВКА ОТ ОРГАНИЗАЦИИ
После заполнения и отправки формы, с Вами свяжется менеджер отдела по работе с юр. клиентами и поможет с оформлением покупки
Как Вас зовут?
Телефон
Почта
Наименование организации
Нажимая на кнопку, Вы соглашаетесь с Договором Публичной Оферты и обработкой своих персональных данных.

Договор Публичной Оферты
Политика конфиденциальности
ЗАЯВКА НА РАССРОЧКУ
После отправки заявки в течение часа с тобой свяжется менеджер отдела рассрочки школы и поможет с оформлением покупки
Как тебя зовут?
Телефон
Почта
Нажимая на кнопку, ты соглашаешься с Договором Публичной Оферты и обработкой своих персональных данных.

Договор Публичной Оферты
Политика конфиденциальности
{ ТРЕБОВАНИЯ ДЛЯ ПРОХОЖДЕНИЯ КУРСА }
code_machine.png
std::cout << Ты должен знать хотя бы один язык программирования. На курсе мы будем активно использовать C++, но подойдёт и любой другой. Сверхсложные конструкции мы проходить не будем, но нужно разбираться в теме хотя бы на уровне базовых понятий таких как переменные ветвление, цикл или массив << std::endl
1
2
3
4
5
6
7
8

std::cout << Unreal Engine достаточно дружелюбен, поэтому в нём можно разобраться и без знания C++, а используя лишь технологию blueprint. Но целью нашего курса является подготовка специалистов, которые смогут реализовать игровые механики в любой, даже проприетарной, технологии. Отсюда и фокус на C++ как на универсальном языке индустрии << std::endl
1
2
3
4
5
6
7
8
9
10
ammo_box.png
1
2
3
4
5
6
7
8
{ ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ }
Какой компьютер мне нужен, чтобы успешно пройти курс?
Минимальные системные требования: Windows 7 64-bit. Процессор: Quad-core Intel или AMD, 2.5 GHz или быстрее. Оперативная память: 8 Гб RAM — а лучше 12; видеокарта, совместимая с DirectX 11 или DirectX 12. Наличие любого контроллера будет большим плюсом.
Какой компьютер мне нужен, чтобы успешно пройти курс?
Минимальные системные требования: Windows 7 64-bit. Процессор: Quad-core Intel или AMD, 2.5 GHz или быстрее. Оперативная память: 8 Гб RAM — а лучше 12; видеокарта, совместимая с DirectX 11 или DirectX 12. Наличие любого контроллера будет большим плюсом.
Какими специальными знаниями мне нужно обладать?
Нужно быть знакомым хотя бы с одним языком программирования (C#, JAVA, Python, C++ и т.д.) на уровне понимания переменных, типов данных, массивов, ветвлений, циклов и функций. Если плюс к этому ты имеешь представление об объектно-ориентированном подходе и обладаешь базовыми знаниями по C++, то учиться тебе будет легче.
Какими специальными знаниями мне нужно обладать?
Нужно быть знакомым хотя бы с одним языком программирования (C#, JAVA, Python, C++ и т.д.) на уровне понимания переменных, типов данных, массивов, ветвлений, циклов и функций. Если плюс к этому ты имеешь представление об объектно-ориентированном подходе и обладаешь базовыми знаниями по C++, то учиться тебе будет легче.
Смогу ли я общаться с преподавателем лично?
Да, преподаватель будет проверять твою домашку и отвечать на твои вопросы. Раз в месяц он будет проводить прямую трансляцию, на которой будет отвечать на вопросы студентов и проводить мастер-классы.

Смогу ли я общаться с преподавателем лично?
Да, преподаватель будет проверять твою домашку и отвечать на твои вопросы. Раз в месяц он будет проводить прямую трансляцию, на которой будет отвечать на вопросы студентов и проводить мастер-классы.
Будет ли у меня что показать работодателю после прохождения курса?
В качестве дипломного проекта ты реализуешь одну из геймплейных систем на выбор (бой, хит-реакции, продвинутое перемещение и т.д.). Результат этой работы ты сможешь предоставить работодателю наряду с домашкой, которую выполнял по мере прохождения курса.
Будет ли у меня что показать работодателю после прохождения курса?
В качестве дипломного проекта ты реализуешь одну из геймплейных систем на выбор (бой, хит-реакции, продвинутое перемещение и т.д.). Результат этой работы ты сможешь предоставить работодателю наряду с домашкой, которую выполнял по мере прохождения курса.
Куда я смогу устроиться, обладая знаниями и навыками, полученными на курсе?
Если у тебя нет опыта работы программистом, то при успешном окончании курса ты сможешь собеседоваться на позицию Junior Gameplay программиста. Если же ты работал программистом, но не в игровой индустрии, то знания, полученные на курсе, помогут при собеседовании уже на Middle позиции.
Куда я смогу устроиться, обладая знаниями и навыками, полученными на курсе?
Если у тебя нет опыта работы программистом, то при успешном окончании курса ты сможешь собеседоваться на позицию Junior Gameplay программиста. Если же ты работал программистом, но не в игровой индустрии, то знания, полученные на курсе, помогут при собеседовании уже на Middle позиции.
{ ПОЯВИЛИСЬ ВОПРОСЫ ПО КУРСУ? }
std::cout << Оставь свой номер телефона и мы свяжемся с тобой, чтобы ответить на все вопросы << std::endl
1
2
3
Работа студента
Михаила Форсюка
Как тебя зовут?
Телефон
Для быстрой связи
ЗАЯВКА НА КРЕДИТ
После отправки заявки в течение двух дней с тобой свяжется менеджер кредитного отдела банков и поможет с оформлением покупки.
Как тебя зовут?
Телефон
Какой курс ты хочешь?
Это общая форма на все курсы школы. Поэтому, пожалуйста, уточни курс.
Трудоустроен? Есть самозанятость?
Нажимая на кнопку, ты соглашаешься с Договором Публичной Оферты и обработкой своих персональных данных.

Договор Публичной Оферты
Политика конфиденциальности
МОЖЕТ, ХОЧЕШЬ УЗНАТЬ ЧТО-ТО КОНКРЕТНОЕ?
Оставь свой номер и XYZ-менеджер поможет разобраться с программой и форматом курса.
Как тебя зовут?
Телефон
Для быстрой связи
{ ДРУГИЕ КУРСЫ XYZ }
GAMEDESIGN
Научись профессионально воплощать идеи в жизнь. Подход к созданию игр в ААА-проектах
DRAFT PUNK
Научим полному циклу разработки 3d модели для игр
STYL
Научим разработке стилизованных персонажей
Забронируй себе место!
Ссылка на соц сеть (VK, Telegram, Facebook или Discord)
Почта
Имя или ник в Discord
Нажимая на кнопку, вы соглашаетесь с Договором Публичной Оферты и обработкой своих персональных данных.

Договор Публичной Оферты
Политика конфиденциальности
Регистрация завершена!
Скоро вернемся...)
Click to order
Твой заказ
Total: 
Как тебя зовут?
Телефон
Для быстрой связи
Почта
Для рассылки об акциях и скидках
Промокод
Payment method
Нажимая на кнопку, ты соглашаешься с Договором Публичной Оферты и обработкой своих персональных данных.
Договор Публичной Оферты
Политика конфиденциальности