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

онлайн-курс

32 заняття

С++ ДЛЯ GAMEDEV

photo

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

Senior C++ GAME DEVELOPER в

UBISOFT

Роботи наших студентів

Створення ігор здається магією, якщо не знаєте особливості кодингу та GameDev. Ділимося з вами роботами студентів минулих потоків. І нагадуємо, що на цьому курсі ви також з нуля розробите 4 мінігри та додасте ці проєкти в портфоліо.

 

до програми курсу входять

01

С++

Вивчите синтаксис і функції С++, опануєте принципи обʼєктно-орієнтованого та багатопотокового програмування, розберете структури даних і патерни, які використовують у геймдеві.

02

GAMEDEV

Ознайомитеся з логікою та особливостями створення ігрових рушіїв, вивчите основні підходи до проєктування ігор і заповните прогалини в лінійній алгебрі, яка потрібна для розробки ігор.

03

КЕЙС У ПОРТФОЛІО

Протягом навчання з нуля створите 3 мінігри та minimum viable product (мінімально життєздатний продукт) 2D-гри. Таким чином додасте перший проєкт у портфоліо розробника ігор.

04

КАРʼЄРНИЙ БУСТ

Отримаєте 4 бонусних уроки з карʼєрного розвитку від наших HR, завдяки чому складете CV, яке має більше шансів зацікавити рекрутерів, навчитеся презентувати себе і відповідати на технічні запитання.

 

Ваші результати після курсу:

  • використовуєте мову С++ та об’єктно-орієнтоване програмування

  • знайомі з логікою створення ігрових рушіїв

  • знаєте основні підходи до проєктування ігор

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

  • маєте в портфоліо власну 2D-гру

  • отримаєте кар’єрну консультацію та підготуєтеся до технічної співбесіди

 

У фіналі навчання матимете базовий скілсет для старту в геймдеві, а також план щодо подальшого працевлаштування і розвитку кар’єри.

лектор

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

Senior C++ Game Developer в Ubisoft

  • понад 5 років працює C++ Game Developer в Ubisoft, одній із найвідоміших компаній із розробки ігор, яка випустила Far Cry, Assassin’s Creed, Red Steel тощо

  • має досвід роботи з ААА-проєктами, консолями нового покоління (PS5, XboxS, Nintendo Switch), PC і такими ігровими сервісами, як-от Stadia

  • брав участь у підтримці ігрової клауд-платформи 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 патерн для зміни станів гри: робота з рівнями, boss-fight тощо
    • Дізнаєтеся, як реалізувати різні UI-меню та переходи між ними за допомогою віджетів та Game State патерна: start меню, pause меню, game-over меню тощо
    • Отримаєте відповіді на запитання щодо фінального проєкту
  • 31 заняття

    Смарт-поїнтери, move-семантика, огляд Unreal Engine

    • Вивчите основні можливості та інструменти Unreal Engine 5 та зможете використати ці знання в подальшому вивченні UE5
    • Дізнаєтеся про структуру проєкту та його ключові компоненти в Unreal Engine 5
    • Дізнаєтеся про можливості смарт-пойнтерів для безпечнішої взаємодії з пам’ятю в С++ без значних перформанс-недоліків
    • Опануєте концепт move-семантики та дізнаєтеся, як за допомогою цього механізму зменшити кількість копій об’єктів, відповідно покращити оптимізацію програм
  • 32 заняття

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

    • Доопрацюєте гру та представите її лектору й колегам

реєстрація

Курс підготовлено для аудиторії 18+ — будь ласка, зважайте на це під час реєстрації.

 
 
 
Реєструючись, ви погоджуєтеся з умовами договору-оферти та політикою конфіденційності.