Курс 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, щоб не пропустити анонси нових курсів.

Схожі курси

Навчальний центр
CHI IT Academy
Формат
Online
Початок навчання
04.09.2023
Тривалість
16 занять
Рівень
Для початківців
Мова навчання
Ukrainian
Вартість
8 000 UAH за курс
Навчальний центр
Junior IT
Формат
Online
Початок навчання
Дата формується
Тривалість
9 місяців
Рівень
Для дітей
Мова навчання
Ukrainian
Вартість
уточнюйте
Навчальний центр
Optima Academy
Формат
Online
Початок навчання
Будь-який момент
Тривалість
3 місяців
Рівень
Для дітей
Мова навчання
Ukrainian
Вартість
2 400 UAH за місяць

C++

Optima Academy
Навчальний центр
Optima Academy
Формат
Online
Початок навчання
Будь-який момент
Тривалість
3 місяців
Рівень
Для дітей
Мова навчання
Ukrainian
Вартість
2 400 UAH за місяць