С++ для GameDev — комплексный онлайн-курс, который научит кодить на C++ с нуля | robot_dreams

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

С++ ДЛЯ GAMEDEV

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

СТАРТ В GAMEDEV

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

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

Комплексный курс, который научит кодить на 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

    Основы программирования на C++

    • Ознакомитесь с основными примитивными типами данных в С++: int, char, bool, singed/unsinged, float/double.
    • Сможете создавать тип данных с указанными программистом допустимыми значениями.
    • Научитесь выводить данные в консоль с простой обработкой вывода с помощью манипуляторов.
    • Будете преобразовывать переменные к разным типам.
  • 03

    Операторы

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

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

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

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

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

    Циклы

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

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

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

    Функции

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

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

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

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

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

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

    • Рассмотрите разные принципы работы с индексами циклов и вложенными циклами.
    • Изучите подходы к поиску данных в зависимости от состояния массива.
    • Разберете задачи сортировки данных и базовые алгоритмы сортировки.
  • 12

    Алгоритмы. Поиск и сортировка

    • Ознакомитесь с подходами к оценке алгоритмов по разным параметрам.
    • Узнаете, как искать данные в массиве.
    • Разберете алгоритмы сортировки данных.
  • 13

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

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

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

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

    Структуры данных

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

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

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

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

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

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

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

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

    • Изучите способы приведения классов в соответствии с иерархией и разберете принципиальные различия между статическим и динамическим приведением.
    • Разберете типичные случаи использования наследования и композиции на практике.
    • Научитесь выбирать подход в зависимости от поставленной задачи.
  • 20

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

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

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

    • Узнаете, что такое функциональные объекты, анонимные функции и лямбды.
    • Научитесь передавать параметры в лямбду.
    • Научитесь использовать лямбды для стандартных алгоритмов STL-библиотеки.
  • 22

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

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

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

    • Узнаете, что такое шаблоны программирования и зачем они используются.
    • Научитесь создавать шаблонные функции и классы.
    • Поймете, как изменять поведение шаблонных функций для определенных типов.
    • Шаг за шагом изучите процесс создания шаблонов на компайл-тайме.
    • Ознакомитесь с библиотекой type-traits.
  • 24

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

    • Разберете понятие графа и его структуры.
    • Рассмотрите кейсы, в которых используют эту структуру, и поймете, почему она так популярна в геймдеве.
    • Изучите способы представления графов и возможную реализацию на С++.
    • Изучите базовые алгоритмы над графами, в частности BFS и DFS.
  • 25

    Введение в линейную алгебру в контексте геймдева

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

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

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

    Дальнейшие шаги в GameDev

    • Поймете, почему С++ широко используется для разработки игр разной степени сложности.
    • Изучите основные компоненты, которые должен предоставлять игровой двигатель для эффективного создания игр.
    • Разберете интересные проекты на одном из игровых движков.
    • Поймете преимущества и возможности, которые предоставляет Unreal Engine для больших команд разработчиков проектов ААА и инди-игр.
  • 28

    Паттерны проектирования в GameDev

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

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

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

    Финальный проект: распределение команд, беклог, Git в команде

    • Сформируете бэклог идей для 2D-игры в соответствии с заданием.
    • Научитесь работать с Git в команде.
  • 31

    Финальный проект: представление MVP лектора, рекомендации по работе в команде, задачам и т.п.

    • Подготовите MVP своей игры и получите фидбек от лектора.
  • 32

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

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

    Развитие карьеры в IT

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

    Стратегия поиска работы

    • Получите overview ресурсов для поиска работы и заказчиков.
    • Узнаете, как разработать стратегию поиска работы под свои скилы.
    • Поймете, зачем вам профиль в LinkedIn, и узнаете, как правильно оформить аккаунт в социальных сетях так, чтобы рекрутеры его замечали.
  • 35

    Резюме и сопроводительное письмо

    • Изучите структуру резюме.
    • На примерах разберете самые распространенные ошибки при составлении резюме.
    • Получите рекомендации по написанию сопроводительного письма и узнаете, почему иногда сопроводительное письмо важнее резюме.
  • 36

    Интервью с рекрутером и hiring-менеджером

    • Узнаете, из каких этапов состоит процесс привлечения новых сотрудников в компанию.
    • Ознакомитесь со структурой интервью.
    • Подготовитесь к интервью с рекрутером.
    • Узнаете, какие вопросы нужно задать рекрутеру и hiring-менеджеру во время интервью.
    • Научитесь вести переговоры при заключении job-оффера.

Регистрация

 

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