СТАРТ У GAMEDEV
ТРИВАЛІСТЬ:
36 ОНЛАЙН-ЗАНЯТЬ
[ЩОВІВТОРКА ТА ЩОЧЕТВЕРГА]
Комплексний курс, який навчить кодити на C++ з нуля, дозволить опанувати принципи обʼєктно-орієнтованого програмування, ключові бібліотеки та інструменти для того, щоби створювати десктопні й мобільні ігри та розвиватися в геймдеві.
Ваші результати після курсу:
-
- використовуєте мову С++ та об’єктно-орієнтоване програмування
- знайомі з логікою створення ігрових рушіїв
- знаєте основні підходи до проєктування ігор
- практикуєте багатопотокове програмування для прискорення виконання програм
- маєте в портфоліо власну 2D-гру -
У фіналі навчання матимете базовий скілсет для старту в геймдеві, а також план щодо подальшого працевлаштування і розвитку кар’єри.
У ПРОГРАМУ КУРСУ ВХОДЯТЬ
-
С++ Вивчите синтаксис і функції С++, опануєте принципи обʼєктно-орієнтованого і багатопотокового програмування, розберете структури даних і патерни, які використовуються в геймдеві.
-
GAMEDEV Познайомитеся з логікою створення ігрових рушіїв, вивчите основні підходи до проєктування ігор і заповните прогалини в математиці, яка необхідна для розробки ігор.
-
КЕЙС У ПОРТФОЛІО Створите 3 міні-гри та одну MVP 2D-гру і додасте перший проєкт у портфоліо
-
КАРʼЄРНИЙ БУСТ Отримаєте 4 уроки з карʼєрного розвитку від наших HR, завдяки чому складете CV, яке здатне зацікавити рекрутерів, навчитеся презентувати себе і відповідати на технічні запитання.
ЛЕКТОР:
Богдан
Левунець
- понад 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
Основи програмування на С++
- Дізнаєтесь про основні примітивні типи даних в С++: 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
Фінальний проєкт: видача курсового проєкту
- Ознайомитесь зі скелетом курсового проекту зі створеним ігровим циклом, набором простих ігрових об’єктів з текстурою, реакцією ігрового вікна та ігрових об’єктів на інпут з клавіатури та миші.
- Отримаєте завдання для фінального проєкту.
-
30
Фінальний проєкт
- Сформуєте беклог ідей для 2D-гри відповідно до завдання.
-
31
Фінальний проєкт: представлення MVP лектору, задачам тощо
- Підготуєте MVP власної гри та отримаєте фідбек від лектора.
-
32
Фінальний проєкт: презентація курсового проєкту
- Допрацюєте гру та представите її лектору й колегам.
-
33
Розвиток кар'єри в ІТ
- Ознайомитеся з підходами до розвитку кар'єри.
- Знайдете свої сильні та слабкі сторони, визначите зони для розвитку.
- Дізнаєтесь, як junior-фахівцю отримати свій перший офер.
- Ознайомитеся з організаційною структурою сучасних ІТ-компаній.
-
34
Стратегія пошуку роботи
- Отримаєте overview ресурсів для пошуку роботи та замовників.
- Дізнаєтесь, як розробити стратегію пошуку роботи під свої скіли.
- Зрозумієте, навіщо вам профіль у LinkedIn, і дізнаєтесь, як правильно оформити акаунт у соціальних мережах так, щоби рекрутери його помічали.
-
35
Резюме та супровідний лист
- Вивчите структуру резюме.
- На прикладах розберете найпоширеніші помилки під час складання резюме.
- Отримаєте рекомендації щодо написання супровідного листа і дізнаєтеся, чому іноді супровідний лист важливіший за резюме.
-
36
Інтерв'ю з рекрутером та hiring-менеджером + воркшоп Q&A
- Дізнаєтеся, з яких етапів складається процес залучення нових співробітників до компанії.
- Ознайомитеся зі структурою інтерв'ю.
- Підготуєтеся до інтерв'ю з рекрутером.
- Дізнаєтесь, які запитання необхідно поставити рекрутеру та hiring-менеджеру під час інтерв'ю.
- Навчитеся вести переговори під час укладання job-офера.
Реєстрація
для тих, кому 18+ років і хто хоче професійно розробляти ігри