Решил поделиться тем как я стал gamedev разработчиком не имея за спиной никаких навыков, знаний и ресурсов. Я подробно расскажу какие шаги были мной предприняты, какие ресурсы я изучал, сколько тратил на это время и денег (Спойлер - ни копейки)
Начать свою историю следовало бы с того, что как и многие другие я с детства увлекался видео играми. Сначала это было Dendy и Subor, Sony Playstation и вот однажды я попал в свой первый компьютерный клуб...
Итак я рос со страстной привязанностью к компьютерным играм, но не имел малейшего представления как эти игры делаются и что для этого надо. Закончил обучение, женился, обзавёлся 3 детьми, сменил массу работ и застряв на рутинной работе в маленьком провинциальном супермаркете понял, что если сейчас не поменяю чего то в своей жизни - "пиши пропало". Так я задумался о работе, которая способна приносить удовольствие и приличный заработок. Желание творить и любовь к компьютерным играм предопределила мой выбор.
Вбив в поисковой строке гугла заветную фразу : "как сделать свою игру" был ошеломлен огромной массой всяческих видеоуроков и на удивление убедительными заявлениями блогеров, как это просто и что для этого ничего и знать то по сути не нужно (забегая в перед, выражу свое мнение,- что это далеко не так)
Тут надо сделать лирический отступ, что на освоение новой профессии понадобится очень много времени. К счастью, моя супруга поддержала меня в моем новом стремлении. На время моего обучения взяла все тяготы по финансовом обеспечению семьи.
Unity против Unreal Engine
Если не считать крупных геймдев компаний, которые создают движок игр с "0" специально под свои нужды, то абсолютное большинство современных ПК игр используют один из двух игровых движков Unity и Unreal Engine.
Я не являюсь авторитетным знатоком в этом направлении и по этому не стал бы давать какие то окончательные выводы относительно каждой из этих систем. Поэтому просто поделюсь своими субъективными выводами после значительного штудирования материала.
Итак Юнити - это больше для простеньких, "мультяшных" игр на мобильных платформах. Этот движок широко используется и для серьёзных ПК игр. Но в моей сравнительной шкале ценностей, Unity значительно уступает по многим параметрам Unreal Engine.
Забегая на перед именно на UE я и остановил свой выбор. Среди прочих преимуществ этот движка со своими конкурентами я бы выделил:
- Лучше графика и рендер
- Более качественная физика
- Выше уровень стабильности
- Интуитивно понятный интерфейс и редактор
- Шикарные бесплатные библиотеки ассетов от Quixel
- Наличие простого и легко обучаемого визуального языка программирования BluePrint
- Более выгодные системы отчислений от прибыли
- Отзывчивое комьюнити и фидбек от Епик Геймс (несколько раз обращался к разработчикам с пояснением тех или иных моментов и мне всегда моментально отвечали)
- Наличие инновационных технологий в real-time, онлайн кросплатформ системы, генерации гипперреалистичных персонажей, а еще впереди ждет супер крутые технологии с приходом следующего поколения Unreal Engine 5
Программирование для чайников
Итак, определившись с игровым движком начал штудировать многочисленные уроки на youtube и пытался повторять предложенные авторами игры. Лично мне этот процесс так понравился, что с тех самых пор я практически перестал самостоятельно играть в чужие игры ибо не меньше, а то и больше удовольствия получаю от создания своих. Но если не забегать в перед, то сколько бы не повторять за кем то чужие работы, в итоге, мало чего откладывается в уме. На этом этапе я сделал для себя выводы, что следует подойти к вопросы более структурировано.
Начал искать курсы по программированию... По сколько Unreal Engine работает на С++ выбор пал на этот язык. Не буду рекламировать какие то конкретные ресурсы, потому что их в открытом доступе очень много и все достаточно толковые. В качестве вывода напишу, что для новичков есть путь проще и значительно приятнее. Я имею ввиду, упоминаемый мной ранее визуальный язык программирования, так называемых "чертежей" - Blue Prints. Освоить на достаточном уровне для создания практически любой игры этот язык можно буквально за месяц. Лично я скачал пару курсов на торрентах, если кому то интересно могу дать ссылочки.
От идеи до готовой игры...
Одна из причин по которой я решился выбрать путь разработчика - это разочарование в когда то любимых мною играх и жанрах. Не буду вдаваться в подробности, но скажу, что я давно вынашивал мысли какой должна быть идеальная игра. На своем игровом опыте, подмечал удачные и раздражающие моменты. Собирая во едина все эти мысли - начал вырисовываться первый концепт будущей игры. Об этом поговорим позже. А пока просто хочу отметить, что разработкой своей первой игры я начал заниматься задолго до того, как была написана первая строчка кода или создан первый шейдер. Имея в голове представление что мне нужно получить, какие механики я буду воплощать, в процессе обучения все новые знания я рассматривал под призмой: "могу ли я использовать этот элемент, этот код, эту особенность в своем проекте". Так, как мне кажется, удалось сохранить в памяти самую полезную и ценную информацию в процессе обучения
Графика и дизайн
В детстве, я не плохо рисовал. Именно по этому, мне казалось, что проблем с графикой для будущей игры возникнуть не должно...
Как вы уже, наверное, догадались. Я очень сильно заблуждался. Тут следует сделать небольшой отступ. Как правило для игр используется два вида графики: 2D и 3D. Так вот в случаи с 2Д - умение рисовать пригодится, а вот с 3Д - все намного сложнее. А поскольку я твердо решил делать игру в 3 измерениях меня ждало не меньше трех кругов ада обучения, практики, работы над ошибками и еще 10 раз практики.
Начать свое знакомство со ср..едой создания моделей в 3D следует из выбора приложения. Тут имеется достаточно широкий выбор софта.
- Autodesk 3ds Max - одна из самых первых программ для создания трехмерной графики
- Autodesk Maya - пожалуй, эталон в профессиональном мире 3d графики и game deva
- Blender - бесплатный аналог Maya
- Cinema 4d - то же самое с уклоном в моушен-графику
- 3D Coat - тоже самое с уклоном в скульптинг органический моделей
Надо отметить, что все эти программы платные(кроме Blendera), но всех их можно скачать на торрентах и использовать без каких-либо ощутимых ограничений
Разумеется мой взор пал на Autodesk Maya (что кстати всем, кто собирается искать работу в game dev -настоятельно рекомендую изучать). Вот только во время изучения возможностей этого софта, начал регулярно сталкиваться с просто таки вопиющей нестабильностью. Программа много кратно крашилась. Недолго думая о последствиях, начла изучать Cinema 4d. Забегая на перед, я очень доволен "синькой". Она максимально стабильна, очень функциональна, интерфейс порядком лучше Майи... но как оказалось позже - никому не нужны работники работающие в этой среде.
Вот несколько моих самых первых работ
Получалось, к сожалению, совсем не так хорошо, как того хотелось. И я понял, что на время придётся отложить создание игры, а с головой окунуться в мир графики и анимации.
Мультипликация
Что бы потренировать сваи навыки принял решение попробывать сделать несколько короткометражных анимационных мультфильмов. Принято - сделано. По правде говоря, мне даже стыдно демонстрировать результаты своих трудов в этом направлении.
Результат постыдный, но полученный опыт дал мне сил и уверенности, что с графикой, а особенно анимацией проблем не должно возникнуть.
Не буду вдаваться в детали, если же у кого то возникнут какие-либо вопросы по графике, анимации и прочем - я с радостью дам исчерпывающие ответы на любые вопросы.
Моя первая игра.
Собрав, как казалось мне, всю необходимую информацию я приступил к разработке фентезийной мобы вроде League of Legends , Dota или Smite. Около месяца я трудился над кодом, над окружающим миром, персонажами, навыками и VFX эффектами. Каково же было моё разочарование на первом тесте, когда моя якобы многопользовательская игра - совсем не игралась в кооперативе... Не стану вдаваться в технические детали, но проблемой тому стала абсолютная неподготовленность и незнания подноготной геймстроя. Совет новичкам - лучше начинать с более простых игр и не браться за проекты которые не способен осилить.
Но полученный опыт, оказался весьма ценен и вот уже как год я разрабатываю фантастический многопользовательский шутер с элементами РПГ. Альфа тест который намечен на ближайшие месяцы
Буду рад если кому то статья показалась полезной, с радостью отвечу на любые вопросы.