СТАРТ В GAMEDEV
ДЛИТЕЛЬНОСТЬ:
36 ОНЛАЙН-ЗАНЯТИЙ
[ПО ВТОРНИКАМ И ЧЕТВЕРГАМ]
Комплексный курс, который научит кодить на C++ с нуля, позволит освоить принципы объектно-ориентированного программирования, ключевые библиотеки и инструменты для того, чтобы создавать десктопные и мобильные игры и развиваться в геймдеве.
Ваши результаты после курса:
![](https://robot-site-static.fra1.digitaloceanspaces.com/cc/ckeditor/landings/747-c-dlya-gamedev/group-min.webp)
-
- используете язык С++ и объектно-ориентированное программирование
- знакомы с логикой создания игровых движков
- знаете основные подходы к проектированию игр
- практикуете многопоточное программирование для ускорения выполнения программ
- имеете в портфолио собственную 2D-игру -
В финале обучения получите базовый скилсет для старта в геймдеве, а также план по дальнейшему трудоустройству и развитию карьеры.
В ПРОГРАММУ КУРСА ВХОДЯТ
-
С++ Изучите синтаксис и функции С++, овладеете принципами объектно-ориентированного и многопоточного программирования, разберете структуры данных и паттерны, используемые в геймдеве.
-
GAMEDEV Познакомитесь с логикой создания игровых движков, изучите основные подходы к проектированию игр и заполните пробелы в математике, которая необходима для разработки игр.
-
КЕЙС В ПОРТФОЛИО Поделитесь на группы по 3–4 студента и вместе создадите MVP 2D-игры. Прокачаете софт-скилы благодаря работе в команде и добавите первый проект в портфолио.
-
КАРЬЕРНЫЙ БУСТ Получите 4 урока по карьерному развитию от наших HR, благодаря чему составите CV, способное заинтересовать рекрутеров, научитесь представлять себя и отвечать на технические вопросы.
ЛЕКТОР:
![](https://robot-site-static.fra1.digitaloceanspaces.com/cc/ckeditor/landings/747-c-dlya-gamedev/lector-2-block-min.webp)
Богдан
Левунец
- более 5 лет работает C++ Game Developer в Ubisoft, одной из самых известных компаний по разработке игр, выпустившей Far Cry, Assassin's Creed, Red Steel и т. д.
- имеет опыт работы с ААА-проектами, консолями нового поколения (PS5, XboxS, Nintendo Switch), PC и такими игровыми сервисами, как Stad
- участвовал в поддержке игровой клауд-платформы Amazon Luna и игрового движка Assassin's Creed
- делал кастомизацию, реплеи, квесты, занимался поддержкой внутренних тулзов и аудиофункционала для игры Trials Rising
- имеет опыт менторства интернов во внутренних программах обучения в Ubisoft Kyiv
- регулярно проводит технические интервью и общается с кандидатами на позиции Gameplay Programmer, Unreal Engine Programmer, Generalist Game Developer, поэтому знает, что требуют от джунов и новичков
ПРОГРАММА
-
01
Введение и подготовка
- Узнаете, что такое язык программирования высокого уровня и какое у него предназначение.
- Рассмотрите парадигмы и философию языка С++.
- Поймете, почему С++ – самый распространенный язык для геймдева.
- Загрузите и настройте среду разработки (IDE).
- Запустите приложение Hello World на С++.
-
02
Основы программирования на C++
- Ознакомитесь с основными примитивными типами данных в С++: 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
Финальный проект: выдача курсового проекта
- Поделитесь на группы по 3-4 студента, сформируете творческую команду.
- Ознакомитесь со скелетом курсового проекта с созданным игровым циклом, набором простых игровых объектов с текстурой, реакцией игрового окна и игровых объектов на инпут с клавиатуры и мыши.
- Получите задачу для финального проекта.
-
30
Финальный проект: распределение команд, беклог, Git в команде
- Сформируете бэклог идей для 2D-игры в соответствии с заданием.
- Научитесь работать с Git в команде.
-
31
Финальный проект: представление MVP лектора, рекомендации по работе в команде, задачам и т.п.
- Подготовите MVP своей игры и получите фидбек от лектора.
-
32
Финальный проект: презентация курсового проекта
- Доработаете игру, представите ее лектору и коллегам.
-
33
Развитие карьеры в IT
- Ознакомитесь с подходами к развитию карьеры.
- Найдете свои сильные и слабые стороны, определите зоны развития.
- Узнаете, как junior-специалисту получить свой первый оффер.
- Ознакомитесь с организационной структурой современных IT-компаний.
-
34
Стратегия поиска работы
- Получите overview ресурсов для поиска работы и заказчиков.
- Узнаете, как разработать стратегию поиска работы под свои скилы.
- Поймете, зачем вам профиль в LinkedIn, и узнаете, как правильно оформить аккаунт в социальных сетях так, чтобы рекрутеры его замечали.
-
35
Резюме и сопроводительное письмо
- Изучите структуру резюме.
- На примерах разберете самые распространенные ошибки при составлении резюме.
- Получите рекомендации по написанию сопроводительного письма и узнаете, почему иногда сопроводительное письмо важнее резюме.
-
36
Интервью с рекрутером и hiring-менеджером
- Узнаете, из каких этапов состоит процесс привлечения новых сотрудников в компанию.
- Ознакомитесь со структурой интервью.
- Подготовитесь к интервью с рекрутером.
- Узнаете, какие вопросы нужно задать рекрутеру и hiring-менеджеру во время интервью.
- Научитесь вести переговоры при заключении job-оффера.
Регистрация
для тех, кому 18+ лет и кто хочет профессионально разрабатывать игры