Гуманитарий с 0 знаний в программировании. 4 часть. Привет и пока, геймдев
Последнюю статью о своём пути в IT я написал аж 09.11.23., чуть больше 7 месяцев назад
Да, была ещё одна статья «Отзыв на IJunior. Почему не стоит покупать курс IJunior. Spoiler: черепаший спринт в Gamedev. В конце mini-roadmap», которая была написана 17.03.24. Но это критический отзыв, а не описание того, как я пробираюсь в IT. В интернете слишком мало отзывов на данный курс, не смотря на то, что люди его покупают. И поэтому моя задача состояла в том, чтобы отговорить тех людей, которые хотят максимально сократить путь до геймдева.
Остальным людям этот отзыв не очень интересен, как я писал, на курсе есть разные типы людей: с деньгами и/или неопределённые в своей профессиональной деятельности; есть деньги — вы можете себе позволить, зачем мне вас отговаривать? Мечетесь и пытаетесь найти себя по жизни — пожалуйста, покупайте, почему нет? Но если у вас цель: быстрый заход в геймдев, то этот курс точно выбирать не нужно
Предыдущие части:
Погнали
Нить повествования была оборвана 09.11.23., с этой даты и продолжу: пока что ничего особенного не происходило, я был очень рад, что приобрёл курс, потому что он даёт интересные и сложные задания, которых мне не хватало при прохождении двух книг, описанные в 3-ей части, поэтому с 16.10.23. до начала 05.12.23. я уже мало, что узнавал нового о технологиях и о ЯП C#, потому что это время прошло в оттачивании навыков в написании кода, за Unity я ни разу так и не сел. Но модуль C# подходил к концу и у меня руки чесались уже начать изучать Unity и что-то в нём делать, так я нарвался на геймджем
Game jam
Перед тем как решить учавствовать в геймджеме, я спрашивал людей: «Я вот без опыта в Unity, но со знанием C#, стоит ли учавствовать в геймджеме или это гиблое дело? Что можете посоветовать?». Все говорили: «Да забей, главное начать, всё получится, иди просто участвуй и т. д.». Земля пухом мне…
24.11.23. — 27.11.23. я был на первом своём геймджеме без какого-либо опыта в Unity (кроме бесполезных уроков из Head First), и он прошёл просто отвратительно. Почему? Тебя закидывают в ситуацию со сжатыми временными рамками, где ты ответственен не только перед собой, но и перед рандомными людьми, которые являются частью команды, а ты абсолютно не понимаешь, что где зачем почему, и вместо того, чтобы максимально эффективно использовать данное время — я первый день метался по незнакомому интерфейсу Unity и пытался понять, как что работает.
Библиотеки C# Unity мне не были знакомы вообще, поэтому я не понимал, что там происходит и как заставить какой-то объект двигаться, я даже 10 строчек не мог сам написать, всё время лез в инет и использовал GPT.
В общем потратил 31 час на геймджем в состоянии давления, стресса и паники: «ПОЧЕМУ ТАК НИХРЕНА НЕ ПОНЯТНО, ГОСПАДЕ БОЖЕ МОЙ, ДА ПУСТЬ ХОТЬ ЧТО-ТО ЗАРАБОТАЕТ, ЗАЧЕМ Я В ЭТО ВПИСАЛСЯ, КОГДА ЭТО ЗАКОНЧИТСЯ».
Я хотел получить навыки работы с Unity, но получил навыки работы с гитхабом. Считаю, что нерационально потратил этот 31 час, можно было бы спокойно сидеть и погружаться в Unity и гораздо больше изучить, чем то, что я изучил на геймджеме.
Господа, мой моральный долг вас отговорить от геймджемов, если у вас нет никакого опыта в Unity. Общие и абстрактные знания C# никак вам не помогут в геймджеме, потому что вам предварительно нужно изучить интерфейс, библиотеки и методы Unity.
Изучение Unity
С 05.12.23. я начал изучать модуль Unity на курсе IJunior, на всём протяжении изучения было довольно сложно: тьма нового, и так изо дня в день — обвал новой информации. Но это ещё можно принять и понять, потому что несколько месяцев было тоже самое и с C#, но тормозящим фактором стал сам модуль Unity курса IJunior.
Модуль C# был просто великолепным, грамотным, структурированным, но вот модуль Unity убогий, все лекции ведёт сам Сакутин, каждое видео ускорено, информация даётся поверхностно, кода под видео нет, ещё к этим минусам добавляется и то, что лекции разрозненные, нелогичные, усложнение материала происходит очень быстро, даются задания с отработкой таких механик, которые не проходили в лекциях: просто делай, как хочешь, без предварительной подготовки к такому заданию.
К тому же сам курс полностью посвящен Unity, и не просто движку, а именно созданию игр и изучению таких навыков, которые востребованы на рынке, то есть после курса я без проблем должен получить работу. Но некоторые важные технологии не проходятся, которые требуют в вакансиях, не объясняются тонкие нюансы поиска работы и как составлять резюме.
В итоге модуль Unity — это мини-версия ВУЗа: бессмысленно и беспощадно
До 20.12.23. я ещё помучился на курсе и уже забил на него, начал изучать Unity по книгам, но в начале пришлось найти качественные книги. Остановился на Unity in Action, занимался около 18 часов, но затем уровень сложности кода повышался, а у меня не хватало знаний понять, что конкретный код делает, а мне важно понимать то, что я делаю, поэтому решил искать книги дальше.
Затем я остановился на маленькой книге-мануале Денисова «Разработка игры на Unity», для меня снова было очень много непонятного, но я решил потерпеть, потому что книга маленькая и прошлась буквально за 9 часов. И в итоге были сделаны не абстрагированные отдельные механики, а полноценная небольшая игра с главным меню, настройками, разными механиками. В итоге этот опыт мне будет помогать с изучением в дальнейшем.
Затем наступил НГ, небольшая передышка и дальше пахать.
04.01.24. числа я вернулся к изучению курса IJunior модуль Unity с новыми знаниями и навыками, и дело пошло гораздо бодрее, но затем меня снова занесло в трясину ужасного курса. Последние 3 дня были полностью вымученные, по заданию я должен был реализовать такие механики, которые в лекционных материалах вообще не проходились, я старался всё сделать, и в итоге всё получилось, но это заняло так много времени, и большую часть этого времени я провёл в интернете, самостоятельно изучая материал.
22.01.24. я полностью разочаровался в курсе IJunior, курс за 200.000 не может предоставить адекватный лекционный материал, который будет фундаментом для практических заданий. Если курс не справляется со своей базовой функцией, то этот курс мало чему научит. Жалко 200.000, но этот непростой выбор был сделан в пользу ускорения обучения, потому что цель не в том, чтобы вечно ковыряться в Unity, а чтобы найти работу в геймдеве. В итоге решил попробовать найти другой курс и нашёл на торренте Udemy Complete C# Unity Game Developer 2D.
Также на протяжении января я мониторю вакансии по геймдеву и для меня вырисовывается мрачная картина, что каких-либо стажировок в геймдеве нет, а все работодатели хотят какой-то мифический один год опыта работы в геймдеве. Я впадаю во фрустрацию от новой информации, которая переворачивает всё с ног на голову, я пытаюсь понять, что мне с этим делать, потому что это выглядит так, как будто я только к осени смогу найти работу, потому что нужно сделать хотя бы 3–4 проекта. В какой-то степени я отчаиваюсь и начинаю смотреть вакансии по другим направлениям: связанные с геймдевом и с бизнесовым C#, тестированием на C#, администрированием.
С 27.01.24. я активно откликаюсь, но нет никаких ответов, под давлением новой информации о рынке, я советуюсь со своей второй половинкой, затем решаю, что нужно делать игру для портфолио, а дальше уже смотреть, менять ли направление на бизнесовый C# или дальше делать проекты на Unity и искать работу в геймдеве.
С 02.02.24. начал проходить Udemy Complete C# Unity Game Developer 2D, проходил пару дней. Затем решил делать свою игру на основе одной из игр из курса.
Больше не проходил ни курсы, ни книги, всё время тратил на создание игры. За это время я узнал гигантское количество информации, очень сильно прокачался в написании кода на Unity, также я сделал интеграцию с Яндекс-играми: настроил сохранение прогресса и монетизацию, также сделал магазин внутри этой игры. Это был самый продуктивный месяц по изучению Unity, я очень рад, что смог найти этот курс и рад, что решил отказаться от IJunior, потому что это пустая трата времени и денег.
Где-то 20.02.24. понял, что доделаю игру и буду изучать стек Web-разработчика, то есть я ставлю жирную точку на геймдеве.
22.02.24. я спросил знакомого мидла по C#, что нужно знать человеку, чтобы его взяли стажёром или джуном, он сказал: C#, принципы ООП, ассинхронность и потоки, SQL, Entity Framework, ASP. И не обязательно Docker, но лучше хотя бы знать о том, что это такое.
29.02.24. доделал игру. Она лежит в черновике, все механики готовы: yandex.ru/games/app/293549? draft=true&lang=ru
Как делал игру
В начале проходил курс Udemy Complete C# Unity Game Developer 2D, мне очень понравился их подход: они дают теоретический материал, а в конце модуля на основе материала мы делаем полноценную игру, так, вроде бы, на 3 модуле делали Brick Breaker, там были самые базовые механики, мы их реализовали и модуль закончился, но к этому времени я решил, что надо делать игру для портфолио и прокачивать скилл в создании полноценного проекта, а у меня на руках уже был MVP игры Brick Breaker, поэтому я решил доводить его до ума.
Самое первое. что я начал делать — это анализировать конкурентов, как реализованы разные механики, что мне нравится и хотел бы реализовать, а что выглядит странно и некрасиво, от чего можно избавиться. Я смотрел на интерфейс, настройки, магазин, бонусы, динамику, визуал и стиль, систему уровней, систему мотивации, монетизацию, затем я более менее собрал тот образ, который хотел бы реализовать, но также я хотел добавить нарратив, поэтому я добавил свою механику комиксов. В процессе реализации я решил отказаться от парочки моментов, потому что не хотел тратить на это время и это было не так важно.
Как диздок в голове был собран, я приступил к реализации, и пахал с утра до вечера. Без этого никак.
Упор я делал только на механики, художника у меня не было, поэтому визуал не очень.
Мозги и деньги в жертву богу Маркетинга!
Общаясь с людьми, которые купили курс за 200.000–300.000 рублей, также участвуя в одном геймдеве и в настоящий момент помогая с созданием игры небольшой команде, я увидел закономерность, что зачастую геймдев заполняется новыми людьми с улицы, которые хотят создать игру, а не работать. Адская машина рекламы и маркетинга перемолола умы людей, и теперь все хотят создать игру, ведь это так весело, задорно, легко, да ещё и прибыльно, а также вы обязательно прославитесь! И обработанные этой машиной побежали создавать игры! Йуху!!!
Слова без действия ничего не стоят, наобещать вам могут всё что угодно, но содержат ли эти курсы обещание? Реклама курсов по геймдеву — это прекрасный пример лжи и безответственности, ведь главная цель — это ваши деньги, а не ваш успех.
Дальше будет больно, обидно, неприятно, но это необходимо, если вы не хотите зря тратить время и финансы. С такими мыслями и идеями не берут в рекламщики, потому что никто такое не купит, но это совершенно другой взгляд, который едва ли можно найти на просторах интернета.
«Учиться» или «Работать» или «Создавать»
Реклама курсов по геймдеву обещает вам, что вы будете творить! Вы будете порхать! Вы будете создавать шедевр за шедеврами, ведь это так просто!
Но вам жизненно необходимо понять:
что такое геймдев и игра сами по себе
какие могут быть 3 состояния: «Учиться», «Работать», «Создавать»
каким типом вы являетесь: Человек-ЧСВ, Человек-алмаз, Человек-ЧСВ-алмаз
Игра — это геймдизайн, продумывание механик, продумывание баланса и уровней, знание психологии игрока, система мотивации, что вовлекает игрока, что заставляет его вернуться, работа со звуком, рисунками и стилем, создание 3D-моделей, написание кода.
Поэтому в геймдеве нет профессии геймдевера или создателя игр, есть профессии:
геймдизайнер,
художник,
моделер,
разработчик и т. д.
Если вы хотите работать на работе, то вы должны понять, кто вы. Если вы идёте в геймдев, то вы должны сконцентрироваться на одном аспекте игроделания, потому что у вас просто физически не хватит времени разобраться во всём сразу, особенно, если у вас нет никакого опыта, или ещё вы в процессе обучения, а работы на горизонте не видно. Подумайте, о том, что именно вы хотите: потому что работа разработчиком в геймдеве — это не про полноценное создание игры, здесь нет места вашим мечтам. Это работа и точка.
Я сам шёл в геймдев, как печатная машинка, да я могу в сюжет, могу что-то нафотошопить, сесть и проанализировать рынок и конкурентов, подумать над балансом, удержанием, но я чётко понимал, что я ищу работу разработчика. Поэтому в этом плане никаких фрустраций не произошло. А моё обучение продвигалось и продвигается довольно быстро и качественно.
Какие могут быть состояния:
Учиться — вы с нуля изучаете C# и Unity ради будущей работы — и пока что это не работа, а учёба в виде непаханого поля. Вы с утра до вечера обязаны пахать: впитывать в себя тонну информации и почти сразу же реализовывать её в коде и движке, чтобы у вас выработался навык. Если вы пашите без цели, без системы, без правильного отдыха, то вы теряете мотивацию, выгораете, прокрастинируете, фрустриуетесь и никогда не дойдёте до того состояния, когда вы работаете или создаёте. В таком режиме вы должны провести примерно полгода для того, чтобы рассчитывать на работу за 30.000–40.000 рублей в месяц.
Конечно, вы можете уделять 1–2 часа обучению в день, потому что у вас работа, но это бессмысленно, сколько вы планируете учиться в таком режиме? Два года? Три года? Это похоже на мазохизм какой-то, а не целенаправленное движение в геймдев.
Лучше уж погрузится в DnD, Savage Worlds или другие ролевые настолки — получите больше эмоций и удовольствия за короткий промежуток времени, и здесь вы реально сможете создать свою игру, сюжет, сеттинг, персонажей и сразу поделиться этой игрой со своими знакомыми.
Работать — это цель вашего обучения, у вас уже достаточно знаний и навыков, чтобы быть полезным работодателю, и он готов платить за ваши компетенции. На работе — вы продолжение воли и видения работодателя, вы реализуете то, что скажут. Поэтому здесь нет места романтизированному и мифическому «созданию» игр. И здесь, на самом деле, уже всё полностью зависит от вас:
для вас это комфортный островок и бесконечная стагнация,
или это ещё одно поле, но уже чуть вспаханное, и можно продолжать пахать, ведь ваши амбиции ненасытный и вас не остановить!
Создавать — вы можете перейти в это состояние, только когда пройдёте состояние »Учиться», а ещё лучше у вас будет 3–4 учебных проекта или несколько месяцев в состоянии »Работать». Здесь же ваше романтические и мифическое «я создаю и творю!» обретает плоть и кровь, вы царь и бог ситуации, вы делаете, что захотите, но хватит ли у вас талантов?… Эх, это большой вопрос, и с вероятностью 99,99%, что у вас нет этих талантов, чтобы создать великолепную и прибыльную игру, потому что состояние »Создавать» слито с вашими жизненными принципами, а то есть с вашим типом:
Человек-ЧСВ и «Создавать» игры — надеетесь, мечтаете о деньгах и славе, вечно в каких-то фантазиях и представлениях о прекрасном, не понимаете, что вы можете сделать, а что не можете. Не умеете делегировать, не умеете работать в команде, никому не доверяете, не понимаете потребности рынка. Именно поэтому в итоге ваша игра будет полным говном.
Человек-алмаз и «Создавать» игры — вы умеете пахать, думать, делать выводы, анализировать поступающую информацию, корректировать свои действия, не зацикливаетесь на фикс-идее, умеете отказывать от нерабочих идей и фокусироваться на самом важном, адекватно оцениваете свои силы и возможности. Не боитесь попоросить помощи, но в любом случае вы сами себя создали, и вы сможете создать великолепную игру в одиночку.
Человек-ЧСВ-алмаз и «Создавать» игры — этот человек совмещает себе адское трудолюбие человека-алмаза и паранойю и недоверие человека-ЧСВ, потому что другие ничего не понимают и просто всё испортят. Из-за такого подхода всё будет выполнено на высочайшем уровне, но в довольно большие сроки.
У вас могут быть разные мотивы и цели того, почему вы решили пойти в геймдев, но важно понять, что до состояния »Работать» или »Создавать» вы должны полностью отдаться состоянию »Учиться», ведь работодатель вам просто не будет платить, потому что вы не справитесь с работой. А сразу прыгнуть в состояние »Создавать» без учёбы и учебных проектов — жалкая трата времени, денег и сил. Конечно, если вы Человек-ЧСВ, то вас ничто не сдержит, и вы пойдёте создавать неиграбельное говно.
Лично я никогда не стремился к созданию игры, поэтому не могу отнести себя к какому-то типу, потому что для меня »Создание» — это априори командная работа, и в ней я бы выполнял конкретный функционал.
Сильно-пресильно хочется создавать игры
Unity — довольно сложный и профессиональный движок для разработки игр, он открывает огромное количество возможностей в профессиональном плане. Я не знаком с другими технологиями по созданию игр, как Unreal, Godot, Cocos, но если вы не хотите искать работу, а хотите делать игры для души, то ради бога, не идите изучать Unity или Unreal, вам придётся пробраться через дебри интерфейса и бесконечного инструментария, но зачем это вам? Вы хотите игры для души делать или страдать от сложных и профессиональных движков?
Я знаком только с Unity, поэтому не могу вам предоставить качественный анализ других движков. Существуют разные движки, и они решают свои задачи, вам нужно лишь потратить пару дней на то, чтобы понять, на что способен каждый движок, и что вы бы хотели реализовать на конкретном движке.
Если вообще решите, что эти движки вам не нужны, то можно попробовать конструкторы игр — Roblox или Garry«s Mod.
Заключение
С геймдевом, с написанием кода в Unity и созданием игр я был знаком 3 месяца: с 05.12.2023 по 29.02.2024., за это время я:
возненавидел курс IJunior, потому что он впустую тратит моё время, не смотря на то, что я отдал ему 200.000 рублей.
Понял, что машина рекламы и маркетинга не на стороне тех, кто будет покупать курс, ведь их цель — ваши деньги. Сейчас в интернете есть большое количество курсов и книг — и всё это требует большого количества времени для того, чтобы выбрать самое лучшее.
Если вы не владеете английским языком и не способны читать или слушать обучающее видео, то вы теряете примерно 80% качественной и актуальной информации.
Рынок геймдева в РФ не развит, нет стажировок, нет преджуновских вакансий, не понятен порог входа, не понятны ЗП и карьерный рост, нет качественных книг и курсов на русском языке.
В своём критическом отзыве я написал mini-roadmap, в нём есть качественный материал на английском языке, который поможет вам за короткое время получить необходимую информацию и навыки в C#, Unity, SQL. https://habr.com/ru/articles/800731/
В итоге, самообразование — ваш единственный выход, так вы попробуете что-то новое, если вам не понравится — вы не будете привязаны к купленному курсу и сможете изменить своё направление. Если в итоге вы самостоятельно отзанимаетесь 2–3 месяца, и вы всё же решите связать свою работу с C#, и захотите пойти в Unity, или веб или мобилки, то возьмите модуль C# в IJunior, потому что он научит вас кодстайлу, которому не уделяется время в книгах. Остальные модули IJunior яйца выеденного не стоят.
Но если вас тянет к курсам, то я бы советовал искать такие, которые длятся 1–2 месяца и прокачивают какой-то узкий навык: например, продумывание и прописывание архитектуры, или zenject или ещё что-то.
Так как курс стоит 10.000–30.000, а не +150.000 рублей, то он не будет сильно на вас давить, и у вас есть возможность передумать и не изучать выбранный язык, но если вы решите дальше изучать ЯП, то после прохождения узкоспециализированного курса, вы получите важный и полезный навык.
В любом случае нужно создавать проекты, в идеале 3–4 проекта, если это игры — выложить на яндексе. После первого проекта создавать и улучшать резюме и искать работу.
P. S.
29.02.24. я поставил жирную точку на геймдеве.
С 04.03.24. я начал двигаться в сторону ASP
Количество часов
730 часов = 389:15 (C#) + 340:15 (Unity)
21.07.23. — 29.02.24.
Unity → 340:15 часов
Создание своей игры → 134 часов
K. Aava Rani — Learning Unity Physics, 2017 → 3:30 часов
Денисов — Разработка игры на Unity → 9:00 часов
Ferrone H. — Learning CSharp by Developing Games with Unity, 7th Ed, 2022 → 6:15 часов
Unity in action → 18:30 часов
Геймджем от «НачниИгру» → 31:30 часов
IJunior модуль Unity → 137:30 часов
C# → 389:15 часов
Sharp John — Step by Step → 57:45 часов
Head First C# 4th + 5th ed → 145:30 часов
IJunior модуль C# → 172:00 часов
Пробная неделя IJunior, ulearn.me, w3schools.com → 14 часов