Анонс курса по программированию

Курс по программированию,
XYZ School

Учим программировать для Action игр в Unreal Engine и C++
Научись реализовывать все основные механики шутеров в Unreal Engine и получи навыки, необходимые для работы геймплей-программистом в крупной студии.

Сайт курса: School-xyz.com/gamecode
Александр Балакшин, — программист, работавший над Rainbow Six Siege и другими AAA-проектами, — научит тебя создавать игры при помощи Unreal и C++.

Коротко о курсе

  • Преподаватель — Александр Балакшин, бывший ведущий геймплей-программист Rainbow Six Siege.
  • Курс для тех, кто знает хотя бы один любой язык программирования.
  • Научим реализовывать все необходимые шутерные механики при помощи Unreal Engine 4 и C++.
  • А также работать над кодом по пайплайну, принятому в AAA-студиях.
  • Пройдя курс, ты сможешь претендовать на позицию junior-разработчика в любой игровой студии, а если у тебя есть опыт в разработке в другой сфере — то и на позицию middle.
  • Обучение длится 5 месяцев — 4+1 на дополнительную проверку домашки
  • Смотреть сайт курса: School-xyz.com/gamecode
Чем занимается геймплей-программист

Геймплей-программист реализует именно то, что составляет пользовательский опыт. Результат нашей работы игрок будет видеть и ощущать напрямую. И это — самое интересное и вдохновляющее в нашей работе.

Удовольствие от того, что вот этот удар, который наносит герой, запрограммировал именно ты; что этот дробовик с крюком сделал именно ты; что плавать на лодке и нырять в воду персонаж может именно благодаря тебе — не сравнить ни с чем. Если не веришь на слово — записывайся на курс и попробуй сам.
Работа программиста, который занимается геймплеем — это постоянное решение нестандартных и креативных задач.

Например, продюсер игры может прийти к нему и сказать:

«Нужно, чтобы наш герой карабкался по стенам. Сделай нам систему паркура, как в Assassin's Creed».
И программисту предстоит решать, как реализовать эту идею в рамках текущего проекта. А в процессе его могут попросить добавить в игру ещё и крюк, как в Uncharted 4, или, например, управляемый автотранспорт. И ему придётся реализовывать всё это так, чтобы разные системы не конфликтовали друг с другом. А потом — придумывать, как добавить во всё это мультиплеер.

Геймдизайнер и продюсер дадут лишь представления о желаемом результате, а то, как программист его достигнет — зависит только от него. Кроме того, почти во всех крупных компаниях к мнению программиста прислушиваются — он всегда может поучаствовать в творческом процессе, предложив свой вариант идеи.

Если тебе интересно решать подобные задачи, то этот курс — для тебя. Здесь ты научишься реализовывать любые механики на практике и делать это системно — так, как это принято в AAA-студиях.
Давай знакомиться

Меня зовут Александр Балакшин, я — геймплей-программист. Работал над Rainbow Six Siege и ещё над несколькими AAA-проектами, о которых не могу говорить из-за NDA.

В игровой индустрии я оказался не сразу. Изначально я просто работал программистом, получал хорошую зарплату и чувствовал себя отлично — но в какой-то момент я понял, что стою на месте и не развиваюсь. Тут я и вспомнил о своей детской мечте — делать игры.

Мой путь в геймдеве начался не с AAA-проектов, а с более приземлённых вещей — например, работал над онлайн-казино для KamaGames. Это было не совсем то, чем мне хотелось заниматься — хотя задачи там были интересные.

А потом я увидел Вконтакте объявление о том, что в Sperasoft требуется старший разработчик С++. Я откликнулся, и вскоре уже переехал в Санкт-Петербург, чтобы приступить к работе над сезонами Rainbow Six Siege.
Именно там я и получил самый ценный опыт. Мы работали не в Unity или Unreal, а в проприетарном движке Ubisoft. Поэтому, когда мы сталкивались с проблемой, мы не могли просто поискать решение в гугле. Пришлось быстро научиться задавать правильные вопросы, грамотно проходить код-ревью и тестирование. Всем этим опытом я поделюсь на курсе.
На курсе ты научишься:

— Реализовывать основные механики шутеров в Unreal Engine 4,

— Грамотно проходить код-ревью,

— Работать с системой контроля версий Perforce,
Почему работать над играми — это интересно

Мой курс рассчитан в первую очередь на тех, кто оказался в такой же ситуации, — программистов, которые хотят сменить сферу деятельности и научиться создавать игры.

Конечно, люди бывают разные. Кому-то нравится программирование ради программирования, и им неважно, над чем они работают — над приложением для бинарных опционов или над AAA-игрой.
Но я считаю, что программирование не существует в вакууме. Это лишь средство решения задач — оно всегда привязано к определённой области. Мы всегда должны отталкиваться от того, кто наш конечный пользователь, и как всё это будет использоваться в итоге.

Заниматься нужно тем, что тебя интересует. Нравится оптимизировать бизнес — ищи соответствующую вакансию. Любишь космос — пиши код для ракетостроителей. А вот если любишь игры, как я, то тебе прямая дорога в игровую разработку.

Меня всегда влекла игровая индустрия. Мне с детства хотелось узнать, как это работает — я нажимаю кнопку, и картинка на экране движется. Мне было интересно научиться делать так же.
Но даже если это тебя не слишком привлекает, разработка игр — это крайне интересно ещё и с точки зрения технологий и рабочего процесса. Тебе постоянно придётся решать крайне нетривиальные задачи.

Например, всегда нужно думать об оптимизации. Скажем, технический директор говорит: «У тебя две миллисекунды из 16 на все эти процессы, и столько-то памяти. Если вы начнёте вылезать за эти рамки, то нужно будет искать другое решение». Каким образом ты найдёшь выход из такой ситуации — зависит от тебя.

Плюс ко всему, в игровой индустрии ты всегда будешь на самом переднем краю технологий. Чтобы в этом убедиться, достаточно просто посмотреть презентацию Unreal Engine 5.
Каждый год появляются новые технологии, которые позволяют создавать ещё более впечатляющие и достоверные виртуальные миры. И именно ты будешь первым учиться использовать их и применять на практике.

Для кого этот курс

Для тех, кому интересно заниматься программированием игр, а именно — работать над геймплеем. Писать код, который позволит персонажам двигаться, перемещаться и взаимодействовать с окружающим миром.

Требования

Ты должен знать хотя бы один язык программирования. На курсе мы будем использовать только C++, но подойдёт и любой другой. Сверхсложные конструкции мы проходить не будем, но нужно разбираться в теме хотя бы до уровня объектно-ориентированного подхода.

Unreal Engine достаточно дружелюбен, поэтому в нём можно разобраться и без знания C++. Но я не буду объяснять такие базовые понятия как ветвление, цикл или массив — иначе курс получился бы просто гигантским.
Перспективы после курса

Если ты сможешь пройти этот курс и полностью освоить всё, что мы будем проходить, то можешь спокойно отправлять резюме в любую игровую компанию, — в том числе и работающую над AAA-проектами, — и претендовать на позицию junior-разработчика.
Для того, чтобы претендовать на должность middle, нужен опыт в разработке. Но это необязательно должна быть работа в игровой индустрии: если у тебя уже есть опыт программирования в другой сфере, то после моего курса ты сможешь претендовать и на эту позицию.
Чему ты научишься

Пройдя мой курс, ты научишься реализовывать все основные механики шутеров при помощи Unreal Engine и C++.

Ты узнаешь, как работает стрельба, перемещение, сетевая репликация Unreal, искусственный интеллект NPC и их реакцию на нанесение урона — и научишься создавать всё это сам.

Во время обучения мы будем разбирать фундаментальные понятия используемые в индустрии. Что такое функция Tick (или Update в других игровых движках), и какие стадии у неё есть? Что такое дерево поведений и система чувств у NPC? Как работают скелетные анимации? Что такое лайн трэйс (или рэй каст), как он реализован, сколько он «стоит», и какие есть другие варианты пространственных проверок.
Мы освежим знания по математике — разберём скалярное и векторное произведения, а также то, как их применять в разработке игр. Узнаем про основные геометрические примитивы, в чём отличие между AABB и OOBB, и почему мы так часто используем капсулы для представления персонажей. Что такое однородные координаты, и зачем нам четыре измерения в трёхмерном пространстве. И, конечно же, что такое кватернионы, и почему их используют для представления вращений.

Программист, прошедший этот курс, не растеряется, услышав от продюсера фразу «Сделай, чтобы это работало, как дробовик», — а просто откроет Unreal и быстро сделает всё, что требуется.

Почему именно шутеры

— Это один из самых востребованных жанров в индустрии. Большинство AAA-компаний ищет именно специалистов, готовых работать с шутерами.

— Unreal Engine изначально задумывался как движок для создания шутеров — было бы странно обучать работе с ним на примере другого жанра.

— Большую часть своей карьеры в AAA-индустрии я работал именно над шутерами: буду рассказывать о том, в чём разбираюсь лучше всего.
Но при этом курс хорош тем, что, пройдя его, ты спокойно сможешь создавать не только шутеры, но и игры любых других жанров. Достаточно будет приложить лишь немного дополнительных усилий.

Хочешь сделать 2D-платформер? Просто убери одну ось перемещения, а реализовывать передвижение ты уже умеешь.

RTS? Создавать искусственный интеллект врагов ты уже умеешь — осталось разобраться с камерой и управлением.

Авиасимулятор? Всё то же самое, что и в шутере — просто персонаж не бегает по плоскости, а летает. А как стрелять и запускать ракеты мы уже знаем.

Файтинг? Наносить удары в ближнем бою и создавать на них реакцию мы научились.

RPG? На курсе ты научишься накладывать на персонажей «баффы» и «дебаффы» — останется лишь настроить более сложную систему характеристик и уровней.

Почему именно C++

Я не хочу, чтобы выпускники моего курса становились узкими специалистами по Unreal: современный специалист должен уметь быстро адаптироваться при переходе в другую компанию.

Внутренние игровые движки, которые используют в крупных студиях, во многом похожи. В целом почти всё остаётся тем же: как рисуется кадр, фазы кадра, как работает физический движок, что происходит во время и после обновления анимаций, что такое рэйкасты и для чего их использовать — всё это не привязано исключительно к Unreal.

Моя задача — подготовить специалистов, которые смогут реализовывать геймплей в любом движке.
Весь этот курс можно было бы выстроить вокруг Blueprint — системы визуального программирования, для использования которой не нужно изучать C++.

Но проблема в том, что Unreal — единственный движок, в котором эту систему можно применять. Освоив Blueprint, можно, например, устроиться техническим дизайнером в компанию, которая делает игры на Unreal Engine, — но возможность работать с другими технологиями для тебя будет закрыта.
Почему именно Unreal, а не Unity

Есть как минимум пять причин, по которым стоит учиться работать именно в Unreal — популярнейшем движке от Epic Games, которым с недавних пор можно пользоваться абсолютно бесплатно, пока ты не заработал миллион долларов.

1. С++, на котором работает Unreal — это язык, который используется во всей индустрии. О C#, на котором работает Unity, такого сказать нельзя.

2. Открытость исходного кода. Здесь всегда можно докопаться и посмотреть, как работает та или иная система геймплейного фреймворка или самого движка. Нам это будет крайне полезно, потому что я хочу познакомить вас не только с Unreal Engine 4, а с общими подходами и практиками, применяемыми в ААА геймдеве.

3. Развитый геймплейный фреймворк с отличной поддержкой сети. Его корни лежат в Unreal Tournament, а последний успешный кейс — Fortnite. Этот фреймворк наиболее похож на то, что используется в ААА индустрии в проприетарных движках.

4. Наличие выпущенных ААА и AA-тайтлов на данной технологии и активное использование данного движка AAA-студиями. Посуди сам: Days Gone, Jedi Fallen Order, Ace Combat, Gears 5, Sea Of Thieves, Hellblade, The Outer Worlds и многие другие.

5. Политика «заработай миллион, а потом плати». На мой взгляд, ценовая политика UE4 и до этого была гораздо более щадящей, чем в Unity. Как минимум, она позволяла использовать полную версию движка для образовательных целей и небольших проектов. Ну их новый подход к монетизации — это вообще потрясающе.

Записывайся на курс: School-xyz.com/gamecode

По всем вопросам пиши в личные сообщения группы.
***
Отзывы студентов XYZ School

Больше отзывов читай здесь: vk.com/topic-124560669_34868074
Владимир
***
Присоединяйся к нам!

Обязательно вступай в наше сообщество XYZ School в ВКонтакте.
У нас много полезного контента в открытом доступе.

Учись создавать игры вместе с нами!

XYZ School
Понравилась статья?
Хочешь получать лучшие статьи
от XyZ раз в неделю?
Подпишись на рассылку XyZ
Нажимая на кнопку, вы соглашаетесь с условиями обработки данных