Привет, Уважаемые пользователи Хабра! Решил поделиться с вами историей своего пути в геймдев. Забегая вперед, скажу, что история еще не окончена и чем окончится никому не известно. Тем не менее, возможно она вдохновит тех, кто хочет изменить свою жизнь, но не решается это сделать, потому что считает, что в "40+ уже поздно" или опасается быть непонятым окружающими.

Это моя дебютная статья. Не ждите глубоких технических разборов или чудодейственных методик, гарантированно ведущих к успеху. Никакой преисполненности собственной крутостью или токсичной позитивности – только правда. При написании статьи ни одна нейросеть "не пострадала", да бы материал максимально отражал реальный уровень моих знаний и навыков. И так, не буду затягивать вступление и перехожу непосредственно к истории...

Представлюсь

Меня зовут Андрей, мне 41, в настоящее время работаю начальником службы управления документами в довольно крупной компании. И вроде все хорошо: стабильность, статус, денег хватает, но два года назад я решил, что остаток своей жизни хочу заниматься тем, что мне действительно интересно – создавать видеоигры. Кризис среднего возраста – скажете вы. Возможно – отвечу я. Но главное, что он приносит мне радость, а не чувство неудовлетворенности собой или своей жизнью.

С чего все началось

Я не сразу пришел именно к этому решению. Моя идущая еще с детства любовь к играм уже несколько раз пыталась трансформироваться в нечто большее, чем просто наслаждаться их прохождением: я пытался стримить, записывать летсплей и ролики, вести блог. Но через какое-то время понимал, что это все – не мое. Хотелось чего-то более глубокого, хотелось творить, создавать свои миры – создавать игры! Я был очень взволнован, когда утвердился в этом решении, даже не мог уснуть полночи.

Я много играл в видеоигры, но о том, как они делаются имел самые поверхностные представления. Стал искать информацию: ролики, статьи, литература. Наткнулся на книгу Славы Гриса "Сделай видеоигру один и не свихнись". Прочел на одном дыхании. Очень воодушевился – "Всё! Я буду соло-разработчиком!". Спойлер: скорее всего – нет.

Сейчас я уже с иронией смотрю на содержание этой книги: сделать в одиночку коммерческую игру, отвечающую всем современным стандартам – задача достойная Геракла. Но тогда я этого еще не знал. Тем не менее я очень благодарен книге и ее автору за начальный импульс мотивации.

Первые шаги

Несмотря на юношеский запал, я понимал, что не могу бросить свою нынешнюю работу и посвятить все свое время достижению поставленной цели: ипотека, алименты, личная жизнь, счета, питание. Чтобы закрыть эти потребности, зарплаты "младшего помощника джуна" в какой-нибудь подвальной-инди-студии точно не хватит (в другую бы меня, с моим опытом, не взяли). Сбережений, на несколько лет безработицы у меня тоже не было. Поэтому я дал себе 5 лет – столько оставалось до закрытия ипотеки – на то, чтобы научиться всему необходимому, создать свою игру, начать жить на доход от нее и работать над следующей. Спойлер: планы поменяются.

Так началось мое обучение. Схватился за все и сразу: игровой движок, программирование, геймдизайн, рисование, маркетинг и тд. Мотивация и вдохновение давали много сил, но этот ресурс, как известно, очень нестабилен.

Свой выбор игрового движка я остановил на Unity. Почему? Чисто субъективное и поверхностное мнение: мне всегда казалось, что Unreal Engine это для эпичных ААА-проектов, а Unity более подходит для инди. О других движках я и не знал тогда. На тот момент я вообще слабо понимал, что такое "игровой движок". К слову – я вообще не шарил в IT и программировании. Полный ноль! Нулище!

Современные технологии – это классно, это эффективно, это удобно – без них никуда, но в некоторых аспектах я – консерватор. На моем рабочем месте даже висит маркерная доска. На ней я записываю идеи для публикаций, цели на ближайшие занятия, вопросы, которые нужно разобрать, акценты, которые стоит держать в голове. Пробовал я всякие электронные блокноты – это все не то. Приложение нужно открыть, найти записи, посмотреть... долго! И так получается, что в итоге я забываю про эти заметки. А на доске эта информация всегда мелькает у меня перед глазами и напоминает о себе. Реально работает!

По сути, отсутствие каких либо знаний, касающихся производства игр, было моей основой проблемой на старте. Тогда я в полной мере осознал суть фразы: «Я не знаю чего не знаю». И я решил, что чтобы получить структурированные, а самое главное — действительно необходимые знания, нужно пойти на какие‑нибудь курсы. Хорошо, что мне хватило ума не покупать сразу дорогущие программы на модных площадках. Нашел какие‑то заочные курсы в одном из московских вузов. Единственное, что они мне дали — это осознание того, что все гораздо хуже, чем я думал. Удивляюсь, как я тогда вообще не бросил эту затею. А нет, курсы дали кое что еще — теперь у меня есть диплом о дополнительном профессиональном образовании по специальности «Разработчик игр на Unity». По факту — Филькина грамота :‑)

Поняв, что с таким же успехом я могу обучаться самостоятельно, я купил книгу Харрисона Ферроне «Изучаем C# через разработку игр на Unity» и стал заниматься по ней.

Данная книга дала мне реально больше, чем те курсы, а стоила в десять раз дешевле. В первой ее части разбирался язык C# в контексте создание игры на Unity, а во второй предлагалось создать собственную небольшую игру. Я прошел всю книгу, практически не понимая, что вообще делаю: не понимал слов, которые читал, не понимал действия, которые выполнял – просто, как макака, повторял, что было в книге. Немного приуныв, я решил сделать шаг назад и изучить основы программирования в целом и языка C# в частности. Процедурное программирование, объектно-ориентированное программирование, инкапсуляция... для меня это были слова на незнакомом языке.

Полным новичкам, желающим пойти в игровой индустрии путем Unity-программиста, я бы рекомендовал такую последовательность обучения:
1) Основы процедурного программирования в контексте C#
2) Основы объектно-ориентированного в контексте C#
3) Основы Unity-программирования

Зарывшись в книжные развалы маркетплейсов, я нашел книгу Светлина Накова (согласен – имя не вызывает доверия) "C# Основы программирования". Учебник оказался довольно таки полезным, с большим количеством практики и виртуальной средой для проверки своих решений. Около полугода я старательно, исключительно своим умом (тогда с ИИ я еще не познакомился), решал задачки, изучал основы процедурного программирования, вырабатывал зачатки алгоритмического мышления. Это потом я уже узнал, что на просторах сети есть множество сайтов-тренажеров для решения задачек по программированию, со встроенными песочницами и судейскими системами.

Период отрезвления

Примерно в это же время я начал все отчетливее осознавать, что:

  • Во-первых, разработка видеоигр – это огромный пласт знаний и навыков, изучить и применить который одному человеку практически невозможно. Быть универсалом, многостаночником – значит по сути быть ни кем – размазаться, как грамм масла по бутерброду.

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

Я не отказался от создания своей собственного проекта, но у меня сформировался более приземленный план на оставшиеся 4 года:

  1. Выбираю какую-то конкретную специальность и концентрирую свои силы на ее освоении.

  2. Создаю и развиваю свой личный бренд для медийности и узнаваемости.

  3. Нарабатываю портфолио для будущих работодателей.

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

Я стараюсь заниматься программированием и Unity каждый будний вечер по 3-4 стандартных помидора. Уделяю немного времени изучению геймдизайна и науки об играх, читаю книги о создании культовых игровых франшиз и мемуары выдающихся разработчиков, регулярно смотрю новости индустрии, слежу за трендами. Материалы для блога готовлю в дороге или в конце рабочего дня, если остается время. В выходные – полностью отвлекаюсь: играю, смотрю фильмы, читаю, общаюсь.

Чего удалось достичь

1) Специальность

Среди огромного количества специальностей видеоигровой индустрии я остановился на программисте. Точнее на Unity-программисте. Потому что я и так уже погрузился в C# и Unity. К тому же понял, что мне нравится писать код, создавать логику, продумывать архитектуру проекта.

На сегодняшний день я уже более уверенно чувствую себя в коде и Unity. Обучаюсь прямо на практике, создавая свои мини-проекты для портфолио. Углубляю знания в ООП, паттернах и алгоритмах. Активно использую нейронки, но не для бездумного копирования сгенерированного кода, а как наставников: разбираю с ними скрипты, спрашиваю разъяснения, прошу привести примеры, советуюсь. На самом деле нейросети это мощнейший инструмент, в разы ускоряющий процесс обучения и поднимающий его качество на совершенно новый уровень. Разумеется при правильном подходе к этому процессу.

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

Мне нравится думать, что в написании кода игры есть какое-то творческое божественное начало... Посудите сами, оперируя обычными числами, мы создаем целые миры, со своими законами, правилами, целями, наполнением, историями, драмой!

На счету уже один полностью законченный учебный проект — свободная интерпретация классической Змейки — полноценная игра, в которой есть геймплей, игровой цикл, пауза, UI и HUD элементы, звуки и даже локальная таблица лидеров. Архитектура кода построена на событийной системе, что позволяет легко масштабировать проект например, добавив в него новые виды еды, с уникальными характеристиками, тем самым разнообразит игровой процесс. В игру можно опробовать, скачав с Яндекс диска. Она не требует установки, просто запускаете экзешник и «наслаждаетесь»:‑)

К сожалению пришлось оставить уроки рисования. Хотя у меня даже стало что‑то получаться. Но на все времени не хватит. Касаемо программирования я хотя бы понимал математику (по образованию я, кстати, инженер‑механик), а в рисовании, чтобы достичь какого‑то успеха, а затем перенести его в цифру, мне понадобились бы годы. Но! Когда я стану профессиональным программистом, то моим хобби обязательно станет рисование. :-)

Как вы уже наверное поняли – я сторонник последовательного и методического подхода в любом деле. Даже овладение навыками рисования я решил начать с базы – карандашного академического рисунка. Я не утверждаю, что мой подход "правильный", каждый должен исходить из своих предпочтений и возможностей. Есть случае (очень редкие, но есть), когда человек с нулевым опытом сразу начинает делать игру и добивается большого коммерческого успеха.

2) Бренд

В рамках реализации второго направления я:

  • Придумал свой личный бренд, со своей миссией и видением – «Геймдев после 30».

  • Запустил блог в ВК и ТГ, в котором делюсь опытом своего пути, мыслями, публикую обучающие материалы в формате "от ученика – ученику" и многое-многое другое.

  • Создал канал на Ютубе, но там пока только одно видео – о том как я создавал свою Змейку.

  • Регулярно езжу на митапы и прочие игровые мероприятия (благо Москва недалеко), знакомлюсь с такими же энтузиастами, как я, и более опытными людьми из индустрии.

Успешные люди со страниц своих книг убедили меня, что это необходимые условия для достижения цели, потому что:

  • Создание бренда и ведение блога могут помочь обрести хоть какую-то узнаваемость в индустрии и выделиться среди сотен таких же специалистов.

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

  • Не последнее значение также имеет и психологический фактор. Наш мозг – это рациональная машина, биологический компьютер, основная цель которого – обеспечить выживание своего носителя. И мозг не будет выделять энергию и мотивацию на то, что посчитает маловажным. Отсюда и всякие выгорания – мы "притворяемся" и вдохновение, под гнетом быта и обыденности, очень быстро проходит. Нужно менять свою идентичность и не "хотеть стать" разработчиком видеоигр, а "становиться" им, меняясь изо дня в день. Ведение блога, посещение митапов, живое общение с единомышленниками, встраивание в новую социальную роль – очень способствует этому процессу.

Периодически думаю о том, чтобы подготовить какую-нибудь презентацию и выступить с докладом на одной из встреч разработчиков. Но пока страшновато. Есть ли мне что сказать? Достаточно ли у меня опыта и знаний, чтобы мое слово имело значение для присутствующих? Смогу ли я быть полезен им? Как бы то ни было, но рано или поздно я сделаю это.

Удача – это то, что случается, когда подготовка встречается с возможностью (Сенека). Да, есть люди – баловни судьбы: успех приходит к ним сам, порой вопреки здравому смыслу. Но таких – единицы. Надеяться, что вы один из них – по меньшей мере наивно. Что остается нам? Учиться. Практиковаться. Развиваться. Каждый день. Чтобы, когда появится возможность – мы были готовы.

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

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

Сайт я делал сам. Занимался этим первый раз, знаний по этому вопросу тоже было ноль. Да, пришлось потратить время и разобраться во всем, но я посчитал, что в дальнейшем это окупится, так как для поддержания работы сайта и загрузки нового контента мне не придется каждый раз обращаться к специалистам. К тому же сам я смогу оформить сайт так, как мне хочется. Арендовал хостинг, купил домен, установил WordPress – все по взрослому.

Кстати, логотип бренда, дизайн сайта и прочее оформление своих ресурсов я придумал и реализовал сам. Тут мне сыграл на руку опыт, полученный в попытках стать блогером-стриммером-ютубером – я неплохо научился работать в растровых и векторных редакторах, монтировать видео, настраивать OBS для трансляций. Не шедевры дизайна, конечно, но за то от души )

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

Сейчас я работаю над своим вторым учебным проектом и я думаю, что вы легко догадаетесь в каком жанре будет эта игра :-) Мечта Челика наконец-то сбудется – его будут ломать! ЛОМАТЬ ПОЛНОСТЬЮ!!!

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

Вместо заключения

И так, Уважаемые пользователи Хабра, вот и все, чем я хотел с вами поделиться. Впереди еще три года. С одной стороны – это очень много, с другой – очень мало. Смогу ли я добиться поставленной цели? Стану ли зарабатывать себе на жизнь разработкой видео игр? Сотворю ли достойную вашего внимания игру? Не знаю. Ни кто не даст подобных гарантий. Но я буду стараться и сделаю все, от меня зависящее.

Огромное спасибо модераторам, что дали моей статье зеленый свет. Огромное спасибо вам – читатели – за ваше внимание и отклик!

Если кого-то статья вдохновила на первый шаг к своей мечте – Класс! – я уже счастлив! Если кого-то насмешила своей "наивностью", то я тоже рад! Если вам интересен мой путь, то подписывайтесь на блог в ВК или ТГ. Надеюсь, что когда-нибудь я смогу опубликовать по-настоящему полезную техническую статью о своих наработках в области кода и логики видеоигр. Всем вам добра и исполнения задуманного!

В качестве бонуса

Наверняка многих новичков, ступающих на путь разработчика видеоигр и в частности на путь программиста, пугает, что нейросети отберут их работу и все их усилия будут напрасными. Честно – я тоже немного тревожусь по этому поводу, но считаю, что истина всегда где-то по середине. И в данном случае она по середине между "ничего не изменится" и "все пропало – программисты больше не нужны". Программисты будут нужны, но их роль поменяется с машиниста, набирающего строки кода, на контролера, следящего за качеством сгенерированного кода и его встраивания в архитектуру проекта. Но такой специалист должен обладать обширными знаниями и иметь за плечами сотни часов практики по профильному направлению, в нашем случае – создании видеоигр. Это мотивирует меня трудиться еще усерднее.

А еще я считаю, что значимыми и успешными произведения (будь-то живопись, литература, кино, видеоигры) делает вкладываемый в них человеческий опыт и частичка души автора. Так рождается классика. И никаким ИИ никогда это не будет под силу – они всегда будут выдавать стерильный суррогат, лишенный глубины. Это ощущается уже сейчас. И ценность "живого" человеческого опыта, труда и творчества только растет.

Так что... миллионерами нам не стать, но на свой хлеб с маслом заработаем. А самое главное – будем удовлетворены своей жизнью.