1

Этап 1

Докрутить существующие фичи в учебном проекте и сделать его доступным для пользователей Smartprogress

2

Этап 2

Пройти курс Math for Devs 2022 от Freya Holmér

3

Этап 3

Довести до ума боевую систему

4

Этап 4

Вспомнить школьную алгебру и геометрию

5

Этап 5

Настроить анимации для персонажей

6

Этап 6

Конкретезировать планы по основным механикам игры

7

Этап 7

Добавить мультиплеер в учебный проект

8

Этап 8

Алгоритмы

9

Этап 9

Вписаться в существующую команду энтузиастов и поработать в месте с ними над игрой

1

Этап 1

Докрутить существующие фичи в учебном проекте и сделать его доступным для пользователей Smartprogress

2

Этап 2

Пройти курс Math for Devs 2022 от Freya Holmér

3

Этап 3

Довести до ума боевую систему

4

Этап 4

Вспомнить школьную алгебру и геометрию

5

Этап 5

Настроить анимации для персонажей

6

Этап 6

Конкретезировать планы по основным механикам игры

7

Этап 7

Добавить мультиплеер в учебный проект

8

Этап 8

Алгоритмы

9

Этап 9

Вписаться в существующую команду энтузиастов и поработать в месте с ними над игрой

02 марта 2023 01 декабря 2023
Цель завершена 14 августа 2024
Общая

Стать игровым разработчиком (Unreal Engine / C++)

С момента достижения мною предыдущей похожей цели прошло почти 6 лет... С тех пор много воды утекло, и, наконец, пришло время брать новую высоту: стать разработчиком игровой логики на Unreal Engine! В рамках данной цели, я буду отписываться о проделанной работе и своих достижениях.

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

Общее описание цели

Теория

Проанализировав рынок труда, я пришел к выводу, что усредненные требования работодателей на позицию, в которую я мечу, следующие:

  • Хорошее/Отличное знание UE и Blueprints;
  • Хорошее знание C++ в контексте UE;
  • Опыт разработки мультиплеерной составляющей;
  • Опыт разработки UI;
  • Умение работать с AnimBP;
  • Опыт создания AI (BehaviorTree и EQS);
  • Профайлинг и оптимизация проектов на уровне кода;
  • Опыт написания плагинов для UE;
  • Знание основ линейной алгебры и тригонометрии;
  • Знание базовых алгоритмов;
  • Наличие завершенных коммерческих/собственных проектов и опыт работы в команде.

План

На ближайшую перспективу план-капкан такой:

  1. Довести свой уже имеющийся сырой учебный проект до более-менее удобоваримого уровня и добавить в него фичи, коррелирующие с вышеизложенным списком требований. Судя по этому списку, работодатель хочет видеть в портфолио игру, по механикам похожую на PUBG - чтож, значит будем пытаться сделать что-то такое..
  2. Подтянуть знания по линалу, тригонометрии и более менее въехать в базовые алгоритмы - с этими пунктами думаю будет самая жопа, но вроде я знаю где искать подходящие мне по стилю изложения учебные материалы.
  3. Поработать в команде. Это просто: идём на геймдев.ру, бросаем там клич и врываемся в любую откликнувшуюся команду. Да, вероятность получить там готовый проект для портфолио практически нулевая, но мне это и не то чтобы важно.

Формат моих постов на Smartprogress

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

В процессе формат и частота постов естественно скорее всего изменятся.

Играбельные WIP-билды моего проекта будут лежать тут.

Предыстория данной цели

(много текста, к прочтению не обязательно)

Несколько лет я проработал в должности Rigger/3D Animator, в том числе в игровой студии, где приходилось соприкасаться с игровым движком Unreal Engine, а так же писать скрипты и небольшие инструменты для повышения скорости и удобства работы.
Пройдя несколько курсов по анимации, чтобы повысить свой скилл, я, как ни странно, внезапно перегорел к этой самой анимации и осознал, что мне больше нравится писать код. Задачи по моей специальности, которые я выполнял на работе, стали интересовать меня всё меньше и меньше и, через какое-то время, я осознал что просто выгорел, выполняя их.

Это случилось весной 2021-го. Я понял, что срочно нужно что-то делать, иначе, скорее всего, наступят не самые приятные последствия в виде хронической депрессии, например. Принял решение уволиться с работы и посвятить несколько месяцев (а возможно даже и лет) поиску себя в мире программирования - благо средства позволяли.

Первые полгода после увольнения я не прилагал особых усилий, чтобы двигаться в каком-то конкретном направлении - скорее просто отдыхал и восстанавливался после выгорания, попутно изучая различные смежные с программированием темы, которые меня интересовали - Linux, школьная математика, C++ и прочее.

Спустя полгода, почувствовал, что пресловутое выгорание меня наконец отпустило, и наступила пора решать куда двигаться дальше. Из всех направлений в разработке я выбрал для себя два возможных варианта: Backend Web Development и Game Development. Не буду подробно расписывать почему я отсеял всё остальное, скажу только, что даже эти два варианта меня устраивали не полностью. Решил выбрать Web, т.к. в геймдеве уже побывал и +- представлял как там всё устроенно, а сайтостроение для меня тогда было целым новым миром.

Не буду вдаваться в подробности процесса обучения, скажу только, что учился я в размеренном темпе, дабы снова не перегореть, и это была Java (язык программирования). Внезапно, после 4 или 5 месяцев обучения, я снова ощутил то самое знакомое чувство приближающегося выгорания. Снова взял перерыв, дабы не усугублять ситуацию, и наслаждался всеми прелестями наступившего тогда жаркого лета.

К обучению вернулся в начале осени. Помня, как меня бесила Java обилием устаревших языковых конструкций, которые необходимо было знать для поддержки существующей кодовой базы, я решил попробовать зайти с Python, тем более что его синтаксис я знал благодаря прошлой работе. Тут уже к самому языку у меня вопросов не было, и я даже написал собственный полноценный небольшой проект. Но спустя всего два месяца чувство выгорания снова замаячило на горизонте :-(((

Тут уже я совсем отчаялся и просто целый месяц пинал балду, ни на что особо не надеясь.

В одно прекрасное утро я проснулся и вдруг вспомнил: у меня же есть еще геймдев с С++ и UE (ого!), основы которых я уже знаю! В этот же день составил программу обучения и приступил к занятиям.

И вот, по прошествии 3-ёх месяцев обучения-практики, могу сказать, что вроде как ощущаю себя вполне нормально. Да, конечно, бывают дни, когда не хочется заниматься, но это просто лень и само по себе в пределах нормы.

Имея за плечами вышеописанный опыт, не возьмусь утверждать, что опять не словлю симптомы выгорания и не заброшу и эту ветку развития, но пока вроде полёт нормальный, и, будем надеяться, так оно и останется...

Учебные материалы, по которым я учился

На всякий случай оставлю список хороших, по моему мнению, курсов и источников, которые лично прошел и считаю, что они реально полезны для изучения Unreal Engine и С++:

  1. Курс Unreal Engine 5 C++ Developer: Learn C++ & Make Video Games (Английский)
  2. Youtube-плейлист Основы C++. Программирование для начинающих. (Русский)
  3. Курс Unreal Engine — полное руководство по разработке на С++ (Русский)
  4. Youtube-плейлист Math For Game Devs (2020) (Английский)
  5. Книга Грокаем Алгоритмы (Русский)

------------------------------------------------------------------------------------------------------------------

P.S.:

Мой гитхаб с исходниками проекта (просто хз куда его еще воткнуть)

 Критерий завершения

Пройден испытательный срок на позиции UE Developer в любой игровой студии

 Личные ресурсы

Много свободного времени;

Знания в смежных областях;

Предыдущий релевантный опыт;

 Экологичность цели

Методом неоднократных проб и ошибок, я пришел к тому, что хочу достичь именно этой цели.

Её достижение на 80% из 100% зависит только от моих приложенных усилий (остальные 20% - от ситуации на рынке труда).

  1. Докрутить существующие фичи в учебном проекте и сделать его доступным для пользователей Smartprogress

    Пока, то, что есть в моём учебном проекте, нельзя показать даже в качестве WIP пользователям смартпрогресс: нужно пофиксить вылеты и подкрутить различные параметры, которые сейчас установлены в тестовых значениях. Как только в демку можно будет хоть как-то играть простому пользователю, я залью сборку на какой-нибудь яндекс-диск, чтобы любой любопытствующий мог лично ознакомиться с тем, что на текущий момент реализованно в игре.

  2. Пройти курс Math for Devs 2022 от Freya Holmér

    По идее данный курс покрывает всю необходимую для геймдева линейную алгебру и тригонометрию. Плюс мне очень нравится как Фрея подаёт материал.

  3. Довести до ума боевую систему

    Хотелось бы видеть в проекте большинство шаблонных для всех шутеров механик, типа возможности подбирать новое оружие в процессе игры, ставить хедшоты противникам, драться на ножах и т.п.

    1. Добавить в игру новое оружие: дробовик, граната, нож

    2. Ограничить боезапас каждого оружия и добавить пикапы патронов

    3. Добавить механику хедшота

    4. Добавить возможность подбирать оружие во время боя

    5. Добавить анимации перезарядки и переключения оружия

  4. Вспомнить школьную алгебру и геометрию

    К сожалению, без уверенных знаний по математике настоящим игровым разработчиком стать нельзя :(

    Буду понемногу поднимать школьные знания, проходя русскоязычные курсы на ютубе. Критерий выполнения данного подпункта - успешное прохождение теста ЕГЭ по математике хотя бы на 60+ баллов.

  5. Настроить анимации для персонажей

    Довести анимации передвижения персонажей и их взаимодействия с объектами до более-менее приемлемого уровня.

  6. Конкретезировать планы по основным механикам игры

    Пока что я точно не знаю какие конкретно механики буду добавлять в игру: решать буду по ходу обучения, в зависимости от освоенных навыков и интереса.

    Этот пункт представляет собой список того, что нужно будет обдумать и распланировать.

    1. Боевые механики (различное оружие, хедшоты, конечные патроны)

    2. Механики инвентаря (одежда, рюкзак?)

    3. Логика матча (сужающийся круг смерти?)

    4. ИИ

    5. Мультиплеер

  7. Добавить мультиплеер в учебный проект

    В рамках данного пункта нужно реализовать мультиплеер (хотя бы только LAN). Планирую убить сразу двух зайцев: реализовать функцию мультиплеера в виде подключаемого к проекту плагина. Т.е. и мультиплеер научусь делать, и плагин для UE напишу.

    Учебные материалы возьму из курса Stephen Ulibarri.

  8. Алгоритмы

    Скажу честно: пока не представляю как буду их изучать.

    Книгу Грокаем Алгоритмы я уже прочитал, но в ней даётся слишком поверхностная информация, которая закладывает просто базовое представление об алгоритмах. К чему-то более серьёзному подступаться пока страшно: говорят там полная жесть.

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

  9. Вписаться в существующую команду энтузиастов и поработать в месте с ними над игрой

    Просто напишу на форуме геймдев.ру - наверняка кто-нибудь да возьмет к себе. Предполагаю, что к этому времени я уже закончу работу над своим демо-проектом, так что с ребятами буду сидеть вплоть до момента, пока не найду работу.

  • 1022
  • 02 марта 2023, 12:32
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?