Курс C++ для GameDev

  • Online
  • Для начинающих
  • C / C++, Gamedev / Unity / Game Design
Образовательный центр: Robot Dreams
Формат:Курс
Язык обучения:Ukrainian
Длительность обучения:32 занятий
Начало курса:Дата формируется
Стоимость обучения:Уточняйте

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

Програма курсу

Вступ та підготовка

  • Зрозумієте призначення мов програмування високого рівня
  • Дізнаєтеся, яке застосування С++ в геймдеві
  • Зможете завантажити та налаштувати середовище розробки (IDE)
  • Вмітимете запустити Hello World програму

Змінні й типи даних

  • Дізнаєтеся основні примітивні типи даних в С++, їхній розмір, допустимі значення
  • Навчитеся створювати й ініціалізувати змінні різних типів
  • Зрозумієте відмінність між константами та звичайними змінними
  • Зможете створювати тип даних з визначеними програмістом допустимими значеннями
  • Навчитеся зчитувати дані з консолі та виводити дані в консоль з простою обробкою виведення за допомогою маніпуляторів
  • Набудете навичок перетворення змінних до різних типів

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

  • Вивчите арифметичні оператори та навчитеся використовувати їх для числових розрахунків
  • Дізнаєтесь, як працювати з операторами присвоєння
  • Навчитеся порівнювати арифметичні типи даних
  • Зрозумієте, який пріоритет виконання арифметичних та логічних операторів у складених виразах та які способи зміни пріоритетності існують
  • Ознайомитеся з побітовими операціями

Розгалуження та умови

  • Дізнаєтеся, навіщо та як створювати умовні оператори
  • Навчитеся створювати логічні вирази для умовних операторів та поєднувати кілька умовних операторів в ієрархії виконання
  • Дізнаєтеся, що таке тернарний оператор і як його використовувати
  • Навчитеся використовувати switch як альтернативний набір if-else-if блоків

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

  • Опануєте застосування систем контролю версій в програмуванні над власним кодом та в команді
  • Зрозумієте принцип роботи Git
  • Навчитеся використовувати Git для власних проєктів
  • Дізнаєтесь про типи інших систем контролю версій, зокрема популярний у геймдев Perforce

Цикли та їх застосування

  • З’ясуєте, що таке цикл та в яких випадках його застосовувати
  • Навчитеся використовувати цикли 3 типів та зрозумієте їхні особливості
  • Дізнаєтеся про можливість створення вкладених циклів
  • Опануєте способи раннього завершення та продовження циклів

Воркшоп: задачі, цикли, умови

  • Попрацюєте з типовими помилками й навчитеся їх фіксити
  • На практиці ознайомитеся зі способами дебагу програми у Visual Studio IDE

Функції та їх створення

  • Навчитеся створювати функції з довільною кількістю параметрів та вихідним значенням, а також викликати їх для своїх потреб з довільними параметрами
  • З'ясуєте, навіщо потрібні функції, та зону їхнього доступу
  • Зможете створювати глобальні змінні та константи й використовувати їх у довільних функціях
  • Навчитеся визначати декілька перезавантажень для функцій та додавати параметри за замовчуванням
  • Зрозумієте, як створювати хедер-файли та як підключати їх у різних місцях програми

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

  • Дізнаєтеся, як створити колекцію однорідних даних з використанням одно- та двовимірних масивів наперед визначеного розміру
  • Зрозумієте, як масиви зберігаються в пам'яті
  • Навчитеся модифікувати, обходити всі елементи масиву
  • Зможете використовувати C-style рядки константного розміру

Посилання та вказівники

  • Зрозумієте, що таке посилання, адреси змінних та вказівник
  • Дізнаєтесь, як отримати дані з вказівника та адресу змінної
  • Навчитеся передавати вихідні параметри та повертати з функції посилання, вказівник
  • Зрозумієте, навіщо передавати у функцію вказівники та посилання

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

  • Ознайомитеся з різними принципами роботи з індексами циклів, вкладеними циклами, а також з використанням масивів для практичних завдань
  • Зрозумієте завдання пошуку в масиві, способи підходу до нього залежно від стану масиву
  • Дізнаєтеся, що таке сортування даних та базові алгоритми сортування

Алгоритми. Складність, пошук і сортування

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

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

  • Розберете реальні задачі на алгоритміку
  • Реалізуєте алгоритми пошуку та сортування даних

Робота з динамічною пам'яттю

  • Навчитеся виділяти й очищати довільну кількість пам’яті для різних типів даних з кучі
  • Зрозумієте відмінність між стеком та купою
  • Ознайомитеся з особливостями створення спеціальних методів класу та їхньою взаємозалежністю в контексті роботи з динамічною пам'яттю
  • Зрозумієте причини, наслідки витоків пам’яті та можливі способи їх вирішення

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

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

Знайомство з ООП. Класи

  • Навчитеся створювати нові типи даних (класи, структури)
  • Зможете об'єднувати поведінку та дані в одному об'єкті
  • З'ясуєте, чим відрізняються клас та об'єкт (інстенс) класу
  • Ознайомитеся з поняттям модифікаторів відповідно до особливостей використання інстенсів класу
  • Зрозумієте відмінності між агрегацією та композицію за додавання залежностей між класами

ООП. Оператори та статичні поля

  • Зрозумієте вплив дружніх функцій на модифікатори доступу
  • Дізнаєтеся про поняття статичних полів класу, доступ до них без використання об'єкта класу
  • Навчитесь імплементувати та використовувати на практиці перевантажені оператори

ООП. Наслідування та поліморфізм

  • Засвоїте базові принципи ООП
  • Зрозумієте принцип реалізації наслідування
  • Дізнаєтеся про принципи поліморфізму, чистих абстрактних функцій
  • Ознайомитеся з поняттям інкапсуляції даних

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

  • Зрозумієте способи приведення класів і ієрархії та принципові відмінності між ними (статичне проти динамічного)
  • Дізнаєтеся про типові випадки використання наслідування та композиції на практиці й те, як обрати підхід залежно від поставленого завдання

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

Підготуєте власний проєкт "Настільна гра в Манчкін" і отримаєте фідбек від лектора.

Функціональні об'єкти

  • Зрозумієте поняття функціональних об’єктів, анонімних функцій, лямбд
  • Набудете навичок передавати параметри в лямбду
  • Зможете використовувати лямбди для стандартних алгоритмів stl-бібліотеки
  • Навчитеся огортати функціональні об’єкти в std::function-об'єкті

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

  • Зрозумієте поняття шаблонів, їхню необхідність, переваги та недоліки
  • Навчитеся створювати шаблонні функції, класи
  • Зможете передавати параметри, типи й нетипи
  • Знатимете, як змінювати поведінку шаблонних функцій/класу для окремо визначених типів
  • Зрозумієте процес створення шаблонів на компайл-таймі
  • Ознайомитеся на рівні користувача з бібліотекою type-traits

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

  • Навчитеся створювати, використовувати структури даних, std::string-бібліотеки стандартних функцій
  • Зрозумієте відмінності різних структур даних та їхнє практичне застосування, методи std::string
  • Опануєте поняття ітераторів та їх використання для обходу контейнерів, впровадження в стандартних алгоритмах бібліотеки STL
  • Навчитеся використовувати набір алгоритмів зі стандартної бібліотеки функцій

Знайомство з SFML

  • Зрозумієте, чому С++ широко використовують для розробки ігор різного ступеня складності
  • Вивчите основні компоненти, які повинен надавати ігровий рушій для ефективного створення ігор
  • Ознайомитеся зі структурою та модулями бібліотеки курсового проєкту SFML
  • Дізнаєтеся про переваги й можливості, які надає UE для великих команд розробників ААА-проєктів та інді-ігор

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

  • Зрозумієте поняття вектора, матриці та практичне застосування у геймдеві
  • Навчитеся виконувати прості операції над векторами, скалярний та векторний добуток
  • Дізнаєтеся про базові матричні перетворення векторів

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

  • Зрозумієте поняття графа та його структури (вершини, ребра, вага)
  • Дізнаєтеся про практичне застосування графів, зокрема в геймдеві для задач пошуку найкоротшого шляху, представлення мереж, стейт-машин
  • Ознайомитеся зі способами представлення графів та можливої реалізації на С++
  • Розберете базові алгоритми над графами, зокрема BFS, DFS

Багатопотокове програмування

  • Зрозумієте поняття багатопотоковості, відмінність від паралелізму
  • Навчитеся створювати треди для виконання операцій у багатопотоковому середовищі
  • Зможете синхронізувати доступ до спільного ресурсу
  • Засвоїте ази роботи з пам’яттю з погляду атомарності операцій
  • Ознайомитеся з практичним використанням потоків у геймдеві

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

  • З'ясуєте, що таке патерни проєктування та яке їхнє практичне застосування
  • Ознайомитеся з патернами проєктування GoF
  • Дізнаєтеся про геймдев-специфічні патерни та потребу їхньої формалізації в окрему групу

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

  • Ознайомитесь зі скелетом курсового проекту зі створеним ігровим циклом, набором простих ігрових об'єктів з текстурою, реакцією ігрового вікна та ігрових об'єктів на інпут з клавіатури та миші
  • Отримаєте завдання для фінального проєкту

Робота з UI та Game State Pattern

  • Зможете створювати інтерактивний користувацький інтерфейс для гри
  • Дізнаєтеся, як використовувати Game State патерн для зміни станів гри: робота з рівнями, boss-fight тощо
  • Дізнаєтеся, як реалізувати різні UI-меню та переходи між ними за допомогою віджетів та Game State патерна: start меню, pause меню, game-over меню тощо
  • Отримаєте відповіді на запитання щодо фінального проєкту

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

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

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

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

Особливості курсу

  • Вивчення С++
  • Кейс у портфоліо
  • Кар'єрний буст
  • Допомога ментора
  • Практика
  • Сертифікат про проходження курсу

Викладачі курсу

Богдан Левунець - С++ Game Developer at Ubisoft

Категории курса

Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.

Похожие курсы

Учебный центр
Академия Профессий Будущего
Формат
Online
Начало обучения
Дата формується
Длительность
32 занятий
Уровень
Для детей
Язык обучения
Ukrainian
Стоимость
500 UAH за час
Учебный центр
Junior IT
Формат
Online
Начало обучения
Дата формується
Длительность
-
Уровень
Для детей
Язык обучения
Ukrainian
Стоимость
уточняйте
Учебный центр
Optima Academy
Формат
Online
Начало обучения
Будь-який момент
Длительность
3 месяцев
Уровень
Для детей
Язык обучения
Ukrainian
Стоимость
1 600 UAH за месяц

C++

Optima Academy
Учебный центр
Optima Academy
Формат
Online
Начало обучения
Будь-який момент
Длительность
3 месяцев
Уровень
Для детей
Язык обучения
Ukrainian
Стоимость
2 400 UAH за месяц