Как пересобрать себя и не сойти с ума

Как пересобрать себя и не сойти с ума

Привет! Пришло время продолжить историю о моем пути в геймдев.

Сразу сделаю уточнение, что этот текст является продолжением прошлой статьи, и тем, кто хочет полноценно погрузиться, рекомендую сначала прочитать предыдущий лонг. Для тех, у кого нет такого желания, максимально краткий пересказ: меня зовут Дима, сейчас мне 31, с детства мечтал разрабатывать игры. Закончил школу, бездельничал пару лет, в 20 благодаря своей женщине полюбил программу 3ds Max и в итоге стал архитектурным визуализатором. Несмотря на хороший заработок, настолько нагрузил себя работой, что превратил некогда любое занятие в завод, выгорел дотла и просто стал люто ненавидеть свое ремесло. Однако, в страхе стать бомжом, продолжал покорно брать заказы, и так все было до 24 февраля 2022 года, когда в одно мгновение изменилась моя жизнь и все ценности. Поблагодарив 3D за все и обняв напоследок, я начал свою дорогу в геймдев. Продолжим.

Не имея никаких идей для будущей игры, я понимал, что главное — начать обучение, а со всем остальным буду разбираться по ходу дела. Для поиска нужных уроков, первое с чем нужно определиться — это игровой движок. Выделив два лидера на сегодняшний день — Unreal Engine и Unity, мой окончательный выбор пал на Unreal, так как он больше заточен под 3D (в котором у меня большой опыт) + у нас уже было небольшое знакомство — я переносил несколько своих архитектурных 3D проектов в интерактивные сцены на UE4.

Еще был очень весомый аргумент — визуальное программирование. Кто не знает, на Unreal Engine можно сделать игру любой сложности, не напечатав ни одной строчки кода. За это отвечает нодовая система визуального программирования Blueprints (далее блупринты) и вместо того, чтобы писать руками код для передвижения героя из точки А в точку Б, ты просто ставишь ноду движения и вписываешь координаты, откуда и куда нужно добраться персонажу. Да, их тоже нужно уметь грамотно применять, но это всяко лучше, чем куча непонятных букв и цифр на экране. Смотря на код своих друзей программистов, у меня всегда было отторжение, будто меня заставляют читать египетские письмена. Так что блупринты были спасением.

Скачав целую кучу уроков и UE5 Beta, я начал изучать как от кружка, нарисованного на бумаге, дойти до шарообразного игрового персонажа; что такое игровая логика, как через пробел научить героя прыгать, почему физику нужно умножать на дельта секунды и как можно случайно попасть в бесконечный цикл и нужно будет завершать процесс в диспетчере задач. Полностью посвящая себя изучению 24/7, слушая разные подкасты про разработку игр, смотря видео на youtube от других разработчиков и читая инди раздел на DTF я чувствовал свое ментальное перерождение. Мысли и идеи кипели в моей голове. Вспоминая последние годы рабской рутины, я снова почувствовал себя живым. К тому же, каждый день приближал меня к своей собственной игре. Но…

В жизни часто возникает свое "но", и в моем случае, чем больше я вникал в игровую тематику, тем больше я понимал, что на первую разработку я потрачу три, а то и больше лет. Смотрите, в мои планы не входило выучить Unreal и пойти в контору делать 3 в ряд, начиная как старший помощник младшего конюха; я не хотел открывать свой Blizzard, так как у меня пока нет таких амбиций и финансов, чтобы платить людям зарплату; ну и еще вариант найти себе подобных инди разработчиков и начать создавать проект своей мечты. Возможно последнее — это то, что нужно, но желания делать подобное у меня отсутствовало. Вы спросите почему, но я снова (как и в прошлой статье) не смогу ответить на некоторые вопросы. Возможно, хочу, чтобы мой продукт игрался и выглядел так, как только я хочу, не знаю… В общем, перспектива одиночного долгостроя меня не привлекала, но и в команду мне не хотелось.

Скрины моего обучения Unreal’а

Продолжая изучать UE, я задавался этим вопросом каждый день, и вот однажды у меня искрой проскользнул выход из данной ситуации, который я молниеносно отогнал от себя. Но чем больше времени проходило, тем чаще и чаще эта мысль посещала меня и будучи моей внутренней занозой, она добилась своего и я перешел на новый этап принятия неизбежности. Буду с вами честен, протаптывая тропинку геймдева, я не думал, что через 3 месяца она свернет в эту сторону. Но чтобы окончательно сложить все в голове, мне нужно было поговорить с еще одним человеком. Я встал с кресла, подошел к своей женщине и начал диалог:

- Лена, у тебя есть минутка? Мне нужно с тобой серьезно поговорить.

- Ты меня пугаешь. Что такое?

-Нет, нет, успокойся, все хорошо. Мне всегда нравились твои художественные работы. Ты же училась на дизайнера, у тебя было много уроков по рисунку, да?

- Ну, когда-то было, да, нравилось рисовать, но это все было так давно. А что такое?

- Слушай, ты знаешь, что такое пиксель-арт?

- Нуууу… это стиль как на старых приставках?

- Да-да-да.

- И что?

- Слушай… Мне нужна твоя помощь. Я сам не верю, что это говорю, но по всей видимости, у меня нет другого выхода. Как смотришь на то, чтобы ты взяла на себя всю графику моей… или уже нашей игры, а я займусь всем остальным?

- Ну покажи/расскажи мне все подробно, а там будет видно, я в целом не против попробовать.

- Хорошо, я сейчас тебе скину примеры и попробую найти уроки по твоей теме.

- А в твоем “Анреале” можно и 2D игры делать?

- Ой, не спрашивай… Нет, UE4 не был приспособлен делать 2D игры, а в пятой версии вообще вырезали все, что связывало Unreal с 2D.

- Так, а что теперь делать?

- Unity… Мне нужно выучить Unity…

После разговора мне хотелось панически смеяться. Я просто не мог поверить, что моя когда-то там будущая игра из 3D превратилась в 2D, что теперь за весь дизайн отвечает моя жена, что мне нужно с нуля учить Unity и писать код! Последнее меня «веселило» больше всего. Но (сегодня будет много но, но что поделать) все это в перспективе должно принести свои плоды, и мне не придется делать первый проект до старости (я надеюсь).

Что касается моей женщины, Лены, то сомнений в ней у меня никаких не было. Не хочу бросаться красивыми словами, но на данном этапе жизни она мой верный партнер и единомышленник. Несмотря на не самый большой игровой опыт, эта индустрия ее всегда интересовала, а прошлые навыки рисования пригодятся сейчас как никогда (диплом дизайнера до сегодняшнего дня, так ни разу ей и не понадобился) . Я накидал ей кучу примеров игр в стилистике пиксель арт, уроков; попытался объяснить, что мне в будущем будет нужно и сказал, что время на обучение есть, так как мне предстоит разобраться с Unity…

Все “прелести” Unity можно почувствовать уже на этапе скачки/настройки. Для начала нужно определиться, какая версия тебе нужна — свежая или LTS? В чем ты будешь писать код, обычный Visual Studio, например, или Visual Studio Code? А какого года выбрать — 2019 или 2022? Сейчас ответить на все эти вопросы я могу за минуту, но тогда в голове была такая каша, а руки так и тянулись запустить родной Unreal Engine. Но решение принято и дороги назад нет.

Когда все было настроено, а многочасовой курс с 95% положительных отзывов скачан, я впервые запустил Unity. Изучаем интерфейс, создаем квадрат, физика, коллайдеры и вот момент, когда я должен написать свой первый в жизни код. Сказать, что я был в шоке, это ничего не сказать!

В смысле, я должен все это сам писать? Я что, должен все это запомнить? Вот это гигантское предложение из непонятной белеберды, я должен запомнить? Прям обязательно точка с запятой в конце? Какие еще фигурные скобки, как в школе, что ли? Почему на новой строке? В смысле, опять ошибка? Где? Я что, должен все это запомнить?

Цитата ежедневных мыслей в первый месяц изучения программирования для Unity

В общем, стадия принятия — гнев, во всей красе. Приступы тихой ярости одолевали меня каждые пару минут, и это повторялось изо дня в день. Написание кода, по сравнению с блупринтами в UE, казалось прошлым веком. Мозг воспринимал "переезд" как пытку и на отрез отказывался перестраиваться с Unreal’а на другой движок. К тому же, вот с чем мне пришлось столкнуться — если по началу у меня получалось написать хоть какой-то код и я мог выводить “Hello, world!”, то через время я дошел до урока, в котором абсолютно ничего не понимал. С одной стороны, это не мешало двигаться дальше, просто проскочить непонятный урок, но в чем смысл? Если я даже с обучением основ не справился. Я раз за разом проходил данный урок и все так же ничего не понимал. Даже начинание всего курса с нуля не принесло никаких результатов. А потом ко мне пришла гениальная мысль, что это курс плохой, и мне нужен другой, хороший! Логично?

Новый курс скачан: урок 1, 2, 3 и ступор, преподаватель что-то требует, но я не понимаю что. Повторяю все по видео, но этого мало. Помимо повторения, нужно еще и понимать, что ты делаешь, а с этим проблемы. Как вы поняли, этот урок тоже плохой!

Открываю новый, на определенном этапе все снова повторяется. И так 5 или 6 разных курсов подряд, после чего приходит осознание, что я тупой и писать код не способен. Но перед тем, как бросить Unity, я зачем-то решаю открыть самый первый курс и попробовать пройти его еще раз, и Эврика! А теперь-то я все понимаю! Это странно (хотя ничего странного) , но у каждого преподавателя я учился чему-то новому и полученные знания, например, в четвертом курсе помогли мне пройти первый, а потом уже опыт первого решал все проблемы третьего (извините если запутал) .

С тех пор все пошло как по маслу. Я проходил курс за курсом, в которых учился делать разные простенькие игры, записывал любые идеи, приходящие мне в голову, бесконечно мечтал во время принятия пищи и продолжал кодить в голове, после выключения компьютера, находясь в кровати. Что касается Лены, ее жизнь была похожа на мою, тоже все свободное время на обучение, только в ее случае — рисованию и анимации пиксель-арта.

Скрины первых шагов Лены в пиксель-арте

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

Далее я решил еще немного “потренироваться на кошках” и написать своими руками механики из игровой классики. Так появились свои вариации “змейки”, “бомбермена”, “танчиков” и других игр. Конечно, без видео с ответом под рукой было не так легко, но главная причина, почему я выбрал Unity, а не например Godot (который сейчас набирает дикую популярность), это то, что на 95% твоих вопросов уже дали ответ в интернете, и почти любая проблема, скорее всего, кем-то решена. Вообще я понял — главное научиться мыслить как программа, и писать код станет легко. Даже в повседневной жизни этот навык может помочь (привет дурдом).

Скрины моего обучения Unity

Однажды, копируя механику из очередной старой игры, я задумался — зачем я вообще сижу и повторяю что-то чужое, если можно придумать свое и пытаться это написать? И, о черт! Неужели этот момент пришел? Неужели с учебой покончено? Я что, начинаю делать свою игру…!?!

Как-то так проходило мое обучение. А сейчас я покажу вам, чему будет посвящена будущая статья. Моя первая игра сейчас находится в активной разработке, и я прошу вас добавить ее в желаемое (в Steam) , это очень поможет в ее продвижении. В следующий раз, я расскажу как искал идеи для игры, делал прототип, десятки раз перерисовывал одни и те же карты и многое, многое другое.

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

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

Дима, неужели все может быть так легко, по-детски в 30 лет?

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


Тебе очень повезло с Леной.

Да, наверное да.


Лене заняться больше нечем? Она что, не работала?

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


Мужик, прошло 7 месяцев, ты что по слову в день писал?

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


Да Димон, первая статья то покруче была.

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


Очередной пиксель-арт, ты с дуба рухнул?

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


И что думаешь, ты в будущем выпустишь свой Minecraft и все побегут его покупать?

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


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

Тут каждый должен сам решать, я не психотерапевт. В моем случае это максимальный выход из зоны комфорта, просто начать делать то, о чем мечтал много лет. Далее понимаешь, что менять жизнь не так уж страшно. Задаешься вопросом: "Какого черта так долго тянул и не сделал этого раньше?" Потом приходит удовольствие от процесса познания чего-то нового.


Правда ли, что дикие лошади спят стоя?

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

3131
15 комментариев

Еще был очень весомый аргумент — визуальное программирование. Кто не знает, на Unreal Engine можно сделать игру любой сложности, не напечатав ни одной строчки кода. За это отвечает нодовая система визуального программирования Blueprints.Написание кода, по сравнению с блупринтами в UE, казалось прошлым веком. Мозг воспринимал "переезд" как пытку и на отрез отказывался перестраиваться с Unreal’а на другой движок.Всё это время в Unity было визуальное программирование (Bolt), но вы его не заметили :))
https://www.youtube.com/watch?v=KcAu65n3idI&list=PLrw9uFU6NhfPCiMfDLsL-ccDMCMJ0bMJk

2
Ответить
Автор

Блин, забыл упомянуть об этом в статье. Вот что бывает когда пишешь через год после событий. Я рассматривал Bolt как аналог блюпринтов, но по нему не так много уроков, как по c#; он не такой гибкий и удобный как в UE (как мне показалось) и самое главное - я решил, что если уже учу unity буду как взрослый 🙂, исключительно через программирование чтоб уметь сделать абсолютно все что в голову придет. Спасибо за комментарий

2
Ответить
Комментарий удалён модератором
Автор

Как не крути в UE делать 2d или псевдо 2d игры это извращение, неважно через встроенный paper2d или плагины из Epic Stor'а. Все равно что жить в мегаполисе и передвигаться на осле; можно, но зачем? Что касается мультиплеера, то в нынешнем проекте его не будет, так что плохой "мультик" в Unity не проблема. Далее читая ваше сообщение хочу отметить, что не смотря на разработку своей игры хорошим программистом, за это время, я так и не стал, и наверное не стану. Совсем уж сложные вещи я не могу полноценно реализовать 😕.
Обязательно рассмотрю rider как замену vs.
Сборку делал только 1 раз, когда собирал прототип. Все делал на своем PC.
Спасибо за развернутый комментарий и предложение своей помощи

2
Ответить

Комментарий недоступен

1
Ответить
Автор

Спасибо! И вам всего хорошего

Ответить

Капец, читая лонг я будто смотрел в зеркало. Совпало практически все, даже возраст и имя, даже девушка у меня была Лена:) Так и до дурдома недалеко. И да, я точно также сейчас нахожусь на перепутье, хочу изучить Unity и добить 3d, единственное, что у меня не было такой долгой практики в 3d на полноценной работе, зато с шарпом знаком неплохо.
П.с. Можешь дать ссылку на тот самый курс по Юнити с 95% положительных отзывов? :)

1
Ответить