«С++ для GameDev» онлайн-курс | robot_dreams

В вашем портфолио: 3 миниигры и одна MVP 2D-игра

С++ ДЛЯ GAMEDEV

БОГДАН ЛЕВУНЕЦ Senior C++ GAME DEVELOPER
В UBISOFT

СТАРТ В GAMEDEV

ДЛИТЕЛЬНОСТЬ:

32 ОНЛАЙН-ЗАНЯТИЯ
[ПО ВТОРНИКАМ И ЧЕТВЕРГАМ]

Комплексный курс, который научит кодить на C++ с нуля, позволит освоить принципы объектно-ориентированного программирования, ключевые библиотеки и инструменты для того, чтобы создавать десктопные и мобильные игры и развиваться в геймдеве.

Ваши результаты после курса:

  • - используете язык С++ и объектно-ориентированное программирование
    - знакомы с логикой создания игровых движков
    - знаете основные подходы к проектированию игр
    - практикуете многопоточное программирование для ускорения выполнения программ
    - имеете в портфолио собственную 2D-игру

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

В ПРОГРАММУ КУРСА ВХОДЯТ

  1. С++

    Изучите синтаксис и функции С++, овладеете принципами объектно-ориентированного и многопоточного программирования, разберете структуры данных и паттерны, используемые в геймдеве.

  2. GAMEDEV

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

  3. КЕЙС В ПОРТФОЛИО

    Поделитесь на группы по 3–4 студента и вместе создадите MVP 2D-игры. Прокачаете софт-скилы благодаря работе в команде и добавите первый проект в портфолио.

  4. КАРЬЕРНЫЙ БУСТ

    Получите 4 урока по карьерному развитию от наших HR, благодаря чему составите CV, способное заинтересовать рекрутеров, научитесь представлять себя и отвечать на технические вопросы.

ЛЕКТОР:

Богдан
Левунец

  • более 5 лет работает C++ Game Developer в Ubisoft, одной из самых известных компаний по разработке игр, выпустившей Far Cry, Assassin's Creed, Red Steel и т. д.
  • имеет опыт работы с ААА-проектами, консолями нового поколения (PS5, XboxS, Nintendo Switch), PC и такими игровыми сервисами, как Stad
  • участвовал в поддержке игровой клауд-платформы Amazon Luna и игрового движка Assassin's Creed
  • делал кастомизацию, реплеи, квесты, занимался поддержкой внутренних тулзов и аудиофункционала для игры Trials Rising
  • имеет опыт менторства интернов во внутренних программах обучения в Ubisoft Kyiv
  • регулярно проводит технические интервью и общается с кандидатами на позиции Gameplay Programmer, Unreal Engine Programmer, Generalist Game Developer, поэтому знает, что требуют от джунов и новичков

ПРОГРАММА

  • 01

    Введение и подготовка

    • Поймете назначение языков программирования высокого уровня
    • Узнаете, какое применение С++ в геймдеве
    • Сможете загрузить и настроить среду разработки (IDE)
    • Будете уметь запустить Hello World программу
  • 02

    Переменные и типы данных

    • Узнаете основные примитивные типы данных в С++, их размер, допустимые значения
    • Научитесь создавать и инициализировать переменные разных типов
    • Поймете различия между константами и обычными переменными
    • Сможете создавать тип данных с определенными программистом допустимыми значениями
    • Научитесь считывать данные из консоли и выводить данные в консоль с простой обработкой вывода с помощью манипуляторов
    • Получите навыки преобразования переменных к различным типам
  • 03

    Операторы данных

    • Изучите арифметические операторы и научитесь использовать их для числовых расчетов
    • Узнаете, как работать с операторами присвоения
    • Научитесь сравнивать арифметические типы данных
    • Поймете, какой приоритет выполнения арифметических и логических операторов в составных выражениях и какие способы изменения приоритетности существуют
    • Ознакомитесь с побитовыми операциями
  • 04

    Разветвления и условия

    • Узнаете, зачем и как создавать условные операторы
    • Научитесь создавать логические выражения для условных операторов и объединять несколько условных операторов в иерархии выполнения
    • Выясните, что такое тернарный оператор и как его использовать
    • Научитесь применять switch как альтернативный набор if-else-if блоков
  • 05

    Система контроля версий Git

    • Освоите применение систем контроля версий в программировании над собственным кодом и в команде
    • Поймете принцип работы Git
    • Научитесь использовать Git для собственных проектов
    • Узнаете о типах других систем контроля версий, в частности о популярном в геймдеве Perforce
  • 06

    Циклы и их применение

    • Выясните, что такое цикл и в каких случаях его применять
    • Научитесь использовать циклы 3 типов и поймете их особенности
    • Узнаете о возможности создания вложенных циклов
    • Овладеете способами раннего завершения и продолжения циклов
  • 07

    Воркшоп: Задачи на циклы и условия

    • Поработаете с типичными ошибками и научитесь их фиксировать
    • На практике ознакомитесь со способами дебага программы в Visual Studio IDE
  • 08

    Функции и их создание

    • Научитесь создавать функции с произвольным количеством параметров и выходным значением, а также вызывать их для своих потребностей с произвольными параметрами
    • Выясните, зачем нужны функции, и зону их доступа
    • Сможете создавать глобальные переменные и константы и использовать их в произвольных функциях
    • Научитесь определять несколько перезагрузок для функций и добавлять параметры по умолчанию
    • Поймете, как создавать хедер-файлы и как подключать их в разных местах программы
  • 09

    Строки и массивы

    • Узнаете, как создать коллекцию однородных данных с использованием одно- и двумерных массивов заранее определенного размера
    • Поймете, как массивы хранятся в памяти
    • Научитесь модифицировать, обходить все элементы массива
    • Сможете использовать C-style строки константного размера
  • 10

    Ссылки и указатели

    • Поймете, что такое ссылка, понятие адреса переменных и указатель
    • Узнаете, как получить данные из указателя и получить адрес переменной
    • Научитесь передавать как выходные параметры и возвращать из функции ссылки, указатель
    • Поймете, зачем передавать в функцию указатели и ссылки
  • 11

    Алгоритмы. Работа с циклами. Работа с массивами

    • Ознакомитесь с разными принципами работы с индексами циклов, вложенными циклами, а также с использованием массивов для практических задач
    • Поймете задачу поиска в массиве, способы подхода к нему в зависимости от состояния массива
    • Узнаете, что такое сортировка данных и базовые алгоритмы сортировки
  • 12

    Алгоритмы. Сложность. Поиск. Сортировка

    • Ознакомитесь с подходами к оцениванию алгоритмов по разным параметрам
    • Поймете задачу поиска в массиве, способы подхода к поиску в зависимости от состояния массива
    • Ознакомитесь с задачей сортировки данных и базовых алгоритмов сортировки
  • 13

    Воркшоп: Работа с функциями, массивами, ссылками, указателями

    • Разберете реальные задачи на алгоритмику
    • Реализуете алгоритмы поиска и сортировки данных
  • 14

    Работа с динамической памятью

    • Научитесь выделять и очищать произвольное количество памяти для разных типов данных из кучи
    • Поймете различие между стеком и кучей
    • Ознакомитесь с особенностями создания специальных методов класса и их взаимозависимостью в контексте работы с динамической памятью
    • Поймете причины, последствия утечек памяти и возможные способы их решения
  • 15

    Знакомство со структурами

    • Научитесь создавать новые типы данных, которые агрегируют в себе другие переменные
    • Сможете пользоваться указателями на структуры
    • Научитесь передавать структуры как входные и выходные параметры функций, а также оперировать ими в пределах массивов и составных структур
  • 16

    Знакомство с ООП. Классы

    • Научитесь создавать новые типы данных (классы, структуры)
    • Сможете объединять поведение и данные в одном объекте
    • Выясните, чем отличаются класс и объект (инстенс) класса
    • Ознакомитесь с понятием модификаторов в соответствии с особенностями использования инстенсов класса
    • Поймете различия между агрегацией и композицией при добавлении зависимостей между классами
  • 17

    ООП. Операторы. Статические поля

    • Поймете влияние дружественных функций на модификаторы доступа
    • Узнаете о понятии статических полей класса, доступе к ним без использования объекта класса
    • Научитесь имплементировать и применять на практике перегруженные операторы
  • 18

    ООП. Наследование и полиморфизм

    • Освоите базовые принципы ООП
    • Поймете принцип реализации наследования
    • Узнаете о принципах полиморфизма, чистых абстрактных функций
    • Ознакомитесь с понятием инкапсуляции данных
  • 19

    ООП. Приведение классов в иерархии. Наследование против композиции

    • Поймете способы приведения классов и иерархии и принципиальные различия между ними (статическое против динамического)
    • Узнаете о типичных случаях использования наследования и композиции на практике и то, как выбрать подход в зависимости от поставленной задачи
  • 20

    Воркшоп: Построение мини-игры в консоли с использованием полиморфизма, практика дизайна архитектуры приложений

    • Подготовите собственный проект «Настольная игра в Манчкин» и получите фидбек от лектора
  • 21

    Функциональные объекты

    • Поймете понятие функциональных объектов, анонимных функций, лямбд
    • Получите навыки передавать параметры в лямбду
    • Сможете использовать лямбды для стандартных алгоритмов stl-библиотеки
    • Научитесь обертывать функциональные объекты в std::function-объект
  • 22

    Шаблонное метапрограммирование

    • Поймете понятие шаблонов, их необходимость, преимущества и недостатки
    • Научитесь создавать шаблонные функции, классы
    • Сможете передавать параметры, типы и нетипы
    • Будете знать, как изменять поведение шаблонных функций/класса для отдельно определенных типов
    • Поймете процесс создания шаблонов на компайл-тайме
    • Ознакомитесь на уровне пользователя с библиотекой type-traits
  • 23

    Библиотека стандартных функций

    • Научитесь создавать, использовать структуры данных, std::string-библиотеки стандартных функций
    • Поймете различия структур данных и их практическое применение, методы std::string
    • Освоите понятие итераторов и их использование для обхода контейнеров, внедрение в стандартных алгоритмах библиотеки STL
    • Научитесь использовать набор алгоритмов из стандартной библиотеки функций
  • 24

    Знакомство с SFML

    • Поймете, почему С++ широко используют для разработки игр разной степени сложности
    • Изучите основные компоненты, которые должен предоставлять игровой движок для эффективного создания игр
    • Ознакомитесь со структурой и модулями библиотеки курсового проекта SFML
    • Узнаете о преимуществах и возможностях, которые предоставляет UE для больших команд разработчиков ААА-проектов и инди-игр
  • 25

    Введение в линейную алгебру в контексте геймдева (векторы, матрицы, преобразование точек)

    • Разберете понятие вектора, матрицы и практическое применение в геймдеве
    • Научитесь выполнять простые операции над векторами, скалярное и векторное произведение
    • Узнаете о базовых матричных преобразованиях векторов
  • 26

    Графы как структура данных (для геймдева)

    • Поймете понятие графа и его структуры (вершины, ребра, вес)
    • Узнаете о практическом применении графов, в частности в геймдеве для задач поиска кратчайшего пути, представления сетей, стейт-машин
    • Ознакомитесь со способами представления графов и возможной реализации на С++
    • Разберете базовые алгоритмы над графами, в частности BFS, DFS
  • 27

    Многопоточное программирование

    • Поймете понятие многопоточности, отличие от параллелизма
    • Научитесь создавать треды для выполнения операций в многопоточной среде
    • Сможете синхронизировать доступ к общему ресурсу
    • Освоите азы работы с памятью с точки зрения атомарности операций
    • Ознакомитесь с практическим использованием потоков в геймдеве
  • 28

    Паттерны проектирования в геймдеве

    • Выясните, что такое паттерны проектирования и какое их практическое применение
    • Ознакомитесь с паттернами проектирования GoF
    • Узнаете о геймдев-специфических паттернах и необходимости их формализации в отдельную группу
  • 29

    Финальный проект: Выдача курсового проекта

    • Ознакомитесь со скелетом курсового проекта с созданным игровым циклом, набором простых игровых объектов с текстурой, реакцией игрового окна и игровых объектов на инпут с клавиатуры и мыши
    • Получите задание для финального проекта
  • 30

    Работа с UI и Game State Pattern и Game State Pattern

    • Сможете создавать интерактивный пользовательский интерфейс для игры
    • Узнаете, как применять Game State паттерн для изменения состояний игры: работа с уровнями, boss-fight и т. д.
    • Узнаете, как реализовать различные UI-меню и переходы между ними с помощью виджетов и Game State паттерна: start-меню, pause-меню, game-over меню и т. д.
    • Получите ответы на вопросы по финальному проекту
  • 31

    Смарт-поинтеры, move-семантика, обзор Unreal Engine

    • Изучите основные возможности и инструменты Unreal Engine 5 и сможете использовать эти знания в дальнейшем изучении UE5
    • Узнаете о структуре проекта и его ключевых компонентах в Unreal Engine 5
    • Узнаете о возможностях смарт-поинтеров для более безопасного взаимодействия с памятью в С++ без значительных перформанс-недостатков
    • Освоите концепт move-семантики и выясните, как с помощью этого механизма уменьшить количество копий объектов, соответственно, улучшить оптимизацию программ
  • 32

    Финальный проект: презентация курсового проекта

    • Доработаете игру и представите ее лектору и коллегам

Регистрация

 

 
 
 
Регистрируясь, вы соглашаетесь с условиями договора-оферты и политикой конфиденциальности.