С++ для GameDev – комплексний курс, який навчить кодити на C++ з нуля | robot_dreams

КУРС-ПРОФЕСІЯ

С++ ДЛЯ GAMEDEV

БОГДАН ЛЕВУНЕЦЬ C++ GAME DEVELOPER
В UBISOFT

СТАРТ У GAMEDEV

ДАТА:

13.06.2023 — 12.10.2023

 

ТРИВАЛІСТЬ:

36 ОНЛАЙН-ЗАНЯТЬ
[ЩОВІВТОРКА ТА ЩОЧЕТВЕРГА]

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

КУРС ПІДІЙДЕ

  • Розробникам, які хочуть у геймдев

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

  • Іншим фахівцям зі сфери ІТ

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

  • Світчерам, які хочуть вивчити С++

    щоби навчитися кодити з нуля і вивчити першу мову програмування С++, яка дозволить розвиватися в цікавій і перспективній індустрії геймдеву.

  • Геймдизайнерам, які хочуть працювати «під капотом» ігор

    щоби вивчити мову С++ з нуля, отримати практичний скілсет для написання бекенду під відеоігри, придумувати й самостійно реалізовувати ігрові механіки.

  • Це курс, під час якого ви напишете першу 2D-гру на С++.

    Спочатку ви вивчите синтаксис мови С++ і напишете прості робочі програми. Далі ― опануєте принципи обʼєктно-орієнтованого і багатопотокового програмування для прискорення виконання програм. А потім розберете на пікселі кожен етап розробки відеоігор, познайомитеся зі стандартами та вивчите шаблони проєктування.

  • У результаті ― зможете пройти повний цикл розробки на С++, напишете і презентуєте MVP власної гри.

У ПРОГРАМУ КУРСУ ВХОДЯТЬ

  1. С++

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

  2. GAMEDEV

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

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

    Поділитеся на групи по 3–4 студенти й разом створите MVP 2D-гри. Прокачаєте софт-скіли завдяки роботі в команді та додасте перший проєкт у портфоліо.

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

    Отримаєте 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

    13.06.2023 19:00

    Вступ. Що кодять на С++ і чому цю мову варто вчити

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

    15.06.2023 19:00

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

    • Дізнаєтеся, що таке система контролю версій і навіщо розробникам її використовувати.
    • Розглянете принципи роботи системи контролю версій Git і вивчите основні команди.
    • Потренуєтеся працювати з Git для майбутніх практичних завдань і власних проєктів.
    • Зареєструєте власний профіль на GitHub для збереження проєктів і домашніх завдань.
    • Отримаєте overview інших систем контролю версій, зокрема популярну в геймдеві Perforce.
  • 03

    20.06.2023 19:00

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

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

    22.06.2023 19:00

    Оператори

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

    27.06.2023 19:00

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

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

    29.06.2023 19:00

    Цикли

    • Дізнаєтеся, що таке цикл та у яких випадках його застосовувати.
    • Навчитеся використовувати цикли 3 типів та детально розберете особливості кожного.
    • Дізнаєтесь, як створювати вкладені цикли.
  • 07

    04.07.2023 19:00

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

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

    06.07.2023 19:00

    Функції

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

    11.07.2023 19:00

    Рядки та масиви

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

    13.07.2023 19:00

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

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

    18.07.2023 19:00

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

    • Розглянете різні принципи роботи з індексами циклів і вкладеними циклами.
    • Вивчите підходи до пошуку даних залежно від стану масиву.
    • Розберете задачі сортування даних та базові алгоритми сортування.
  • 12

    20.07.2023 19:00

    Алгоритми. Пошук і сортування

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

    25.07.2023 19:00

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

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

    27.07.2023 19:00

    Структури даних

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

    01.08.2023 19:00

    Знайомство з ООП

    • Навчитеся створювати нові типи даних, об’єднувати поведінку та дані в одному об’єкті.
    • Розберете різницю між класом та об’єктом класу.
    • Вивчите поняття модифікаторів стосовно особливостей використання інстенсів класу.
    • Зрозумієте різницю між агрегацією та композицією під час додавання залежностей між класами.
  • 16

    03.08.2023 19:00

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

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

    08.08.2023 19:00

    ООП. Динамічна памʼять

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

    10.08.2023 19:00

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

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

    15.08.2023 19:00

    ООП. Приведення класів в ієрархії

    • Вивчите способи приведення класів відповідно до ієрархії та розберете принципові відмінності між статичним і динамічним приведенням.
    • Розберете типові випадки використання наслідування та композиції на практиці.
    • Навчитесь обирати підхід залежно від поставленої задачі.
  • 20

    17.08.2023 19:00

    Воркшоп: поліморфізм

    • Розберете реальні кейси поліморфізму на прикладі побудови простого застосунку.
  • 21

    22.08.2023 19:00

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

    • Дізнаєтеся, що таке функціональні об’єкти, анонімні функції та лямбди.
    • Навчитеся передавати параметри в лямбду.
    • Навчитеся використовувати лямбди для стандартних алгоритмів STL-бібліотеки.
  • 22

    24.08.2023 19:00

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

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

    29.08.2023 19:00

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

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

    31.08.2023 19:00

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

    • Розберете поняття графа та його структури.
    • Розберете кейси, в яких використовують цю структуру, і зрозумієте, чому вона така популярна в геймдеві.
    • Вивчите способи представлення графів та можливу реалізацію на С++.
    • Вивчите базові алгоритми над графами, зокрема BFS і DFS.
  • 25

    05.09.2023 19:00

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

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

    07.09.2023 19:00

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

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

    12.09.2023 19:00

    Подальші кроки в GameDev

    • Зрозумієте, чому С++ широко використовується для розробки ігор різного ступеня складності.
    • Вивчите основні компоненти, які повинен надавати ігровий рушій для ефективного створення ігор.
    • Розберете цікаві проєкти на одному з ігрових рушіїв.
    • Зрозумієте переваги та можливості, які надає Unreal Engine для великих команд розробників ААА-проєктів та інді-ігор.
  • 28

    14.09.2023 19:00

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

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

    19.09.2023 19:00

    Фінальний проєкт. Part 1

    • Поділитеся на групи по 3–4 студенти, сформуєте творчу команду.
    • Отримаєте завдання для фінального проєкту.
  • 30

    21.09.2023 19:00

    Фінальний проєкт. Part 2

    • Сформуєте беклог ідей для 2D-гри відповідно до завдання.
    • Навчитеся працювати з Git у команді.
  • 31

    26.09.2023 19:00

    Фінальний проєкт. Part 3

    • Підготуєте MVP власної гри та отримаєте фідбек від лектора.
  • 32

    28.09.2023 19:00

    Фінальний проєкт. Part 4

    • Допрацюєте гру та презентуєте її лектору й колегам.
  • 33

    03.10.2023 19:00

    Розвиток кар'єри в ІТ

    • Ознайомитеся з підходами до розвитку кар'єри.
    • Знайдете свої сильні та слабкі сторони, визначите зони для розвитку.
    • Дізнаєтесь, як junior-фахівцю отримати свій перший офер.
    • Ознайомитеся з організаційною структурою сучасних ІТ-компаній.
  • 34

    05.10.2023 19:00

    Стратегія пошуку роботи

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

    10.10.2023 19:00

    Резюме та супровідний лист

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

    12.10.2023 19:00

    Інтерв'ю з рекрутером та hiring-менеджером

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

Реєстрація

 

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