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