Как я сделал игру-портфолио, чтобы попасть в gamedev
Начнём со знакомства. Меня зовут Павел, я около 10 лет проработал в разных игровых медиа в основном над трансляциями (Games-TV, Игромания, DTF, Wylsacom), а после начала ковидной эпидемии потерял работу и решил податься в gamedev. Около двух лет ковырял Blender, потом Unreal Engine 4, делал модельки, и даже поучаствовал в двух Epic MegaJam 2021 и 2022 года. Для первого проекта делал level-дизайн, модели и генерировал идеи вместе с командой:
Для второго проекта делал анимации и немного крутил механики. В итоге так накрутил, что на его основе сделал quake-jump игру в духе Jump King и Getting Over It with Bennett Foddy:
Изучение программ я начал с YouTube туториалов и желания сделать игру, вдохновлённую проектом Ex Machina. Тогда мне казалось, что это достаточно просто. Мне и сейчас так кажется, но только просто это для того, кто что-то понимает в разработке. Я даже успел сделать карту и первый транспорт, но именно участие в Epic MegaJam заложило в мою голову большую дозу базовых знаний о том, как весь этот gamedev работает. И поэтому первый совет — не игнорьте Джемы.
Начало
В середине февраля 2022 года мне пришла идея сделать шутер, но не простой, а с самыми крутыми и недооценёнными механиками: возможностью пинать врагов, прибивать их штырями к стенам и забавным рэгдолом. К тому моменту я уже знал some shit в блюпринтах и модельках, а так же изучал YouTube на предмет туториалов, и на мой взгляд, по шутерам их было больше всего. Правда, в итоге у меня получилась другая игра и это второй совет — умейте отпускать идеи, они не все могут дойти до релиза.
Я начал с прототипа, использовал базовый шаблон, которые есть в Unreal Engine, намоделил руку, ногу и всё это заставил двигаться и пинать коробки. Когда мой код (блюпринты, да) впервые заработал, а предметы хаотично залетали по уровню, радости не было предела. Но это только начало.
Оружие
Я довольно долго не хотел добавлять в игру огнестрельное оружие, моделировал какую-то наручную гравипушку с кольями, игрался с ней, но всё же сдался и сделал первый ствол, взяв за основу Glock17. На самом деле, как и любому маленькому 30-ти летнему мальчику 3D-артисту — мне просто очень хотелось замоделить оружие. Примерно так же в игре появились MAC Ingram (просто обожаю этот странный квадратный пистолет-пулемёт), автомат и дробовик.
Про автомат упомяну отдельно, потому что я знал, что мне нужна какая-то винтовка, но она должна быть как брутальной, так и небольшой в размерах. В итоге я решил совместить короб АК-12 (угловатый и современный вид) и АКСУ (укороченный вариант калаша). Согласен, что стоило бы добавить какую-то насадку на ствол, а то он выглядит, как труба, но так как я изначально понимал, что ничего дальше lowpoly делать не буду, то решил оставить как есть. Совет номер три — трезво оценивайте свои силы и способности.
Концепция
Примерно тогда было найдено окончательное направление и жанр игры: это будет шутер от первого лица, вдохновлённый Джоном Уиком и логикой Hotline Miami. Все в игре умирают от одного ранения, будь то противник или игрок, а ставка делается на скорость прицеливания и точность стрельбы. Так же — никаких перезарядок и бездонных карманов с кучей стволов — персонажу доступно лишь оружие врага, выпавшее после смерти, с оставшимся там количеством патронов. Довольно странно, как я пришёл к такой концепции, учитывая, что не люблю очень потные игры, но оно получилось само, просто в процессе тестирования геймплея. Кстати, Джон Уик — не единственная отсылка в игре.
Разработка
Разработка шла очень потихоньку. Иногда я каждый день что-то ковырял, иногда забрасывал всё на несколько недель. Одной из сложных частей была коллизия. В Unreal Engine она имеет хитрую систему свой-чужой, которая у меня никак не хотела работать. В игре должна была быть возможность пинать или бросать предметы во врагов и с этой частью я отлично справился, но вот заставить их не спотыкаться на собственном оружии или неподвижном ящике — уже сложнее. К слову, даже в финальном билде, переделав всё с нуля, я так до конца эту болезнь не вылечил.
Наверное, сильнее всего загорелся идеей «доделать» проект, после создания первой катсцены. Тогда я решил, что сделать целую игру (будучи безработным) я не смогу, а вот один уровень — вполне. Так я не только покажу будущему работодателю, что умею, но и получу законченный продукт, за который не стыдно. Плюс к этому, тогда для общего доступа открыли Unreal Engine 5 — отличный повод попробовать Lumen и чуть упростить себе жизнь. Кстати, совет номер четыре — никто не любит что-то сделанное не до конца, или на половину. Даже если вы делаете маленькую игру — добейте её до какого-то логического конца.
Сильно легче от внутренней системы рейтрейсинга не стало, и появилась вторая проблема — освещение. Если вы в каком-нибудь Discord или Telegram-чате спросите о том, как сделать нормальное освещение в UE, то со 100% вероятностью вам скинут гайд от Уильяма Фаучера — Lighting in Unreal Engine 5 for Beginners. К сожалению, мне он только всё испортил. Пришлось всё переделывать, а вернуться в начало не вышло и как итог — я не очень доволен светом в своей игре, но точно сделал всё что мог. Нет, я не утверждаю, что видео плохое, просто всё зависит от специфики проекта. И это пятый совет — не все гайды одинаково полезны, но из них можно брать лишь часть нужной вам информации.
Level-дизайн
Работая над level-дизайном, я вдохновлялся серией Dark Souls, а именно некоторыми её замками (ну не болота же). Меня всегда впечатляли уровни, где ты вроде много ходишь, то вверх, то вниз, а по факту — локация не очень большая, просто сделана в виде вертикального лабиринта. Да ещё и пройдя её, ты открываешь какую-нибудь дверь и оказываешься в самом начале. Эта компактность в сочетании с комплексностью — отлично подошла для моей игры. Забавно, что основой так и остался базовый шаблон, а вот из его геометрии уцелели разве что пару стен.
Модели
Все модели я делал в Blender и использовал упрощённую систему окраски через атлас. Это когда у вас есть одна небольшая картинка-палитра и с помощью UV-развертки вы расставляете полигоны модели на нужные кусочки этой картинки. Но где-то в июле я узнал о существовании программы Substance Painter. Точнее, знал я о ней и раньше, но тут решил, что мне точно надо провернуть через неё мои модели оружия. Даже если мне не понравится, я хотя бы научусь и пойму, как это всё работает. И знаете, я не разочаровался. Не скажу, что было просто, или что я достиг заоблачного результата, но вот, например мой AK44 до и после и другие стволы:
После я планировал использовать SP ещё для персонажей и транспорта, но остановился только на последнем, да и то в пол силы. Остальное поправила пост-обработка, до которой я добрался уже в конце. Сел-шейдинг, лёгкая пикселизация, толстые границы — я понимал, что lowpoly-графику лучше сделать ещё немного low, иначе она так и будет смотреться, как прототип.
Анимации
Изначально, анимацию я делал тоже в Blender — там достаточно понятный секвенсор, особенно после того, как разберёшься в основах работы программы. Современные аниматоры чаще используют риггинг — создание специального управляющего скелета, который может двигать кости последовательно. Например, вы создаёте якорь на ладони и груди, и передвигая якорь ладони, все кости межу этими двумя метками стараются сгибаться и вращаться относительно направляющих — это экономит много времени. Но для общего образования и набивания руки, я действовал по старинке — то есть, двигал каждую кость вручную.
Но ближе к концу разработки мне надоело вечно переимпортировать анимации из-за мелких исправлений и я освоил анимирование прямо в Unreal Engine. Больше того, в нём оказался более удобный инструмент плавности хода анимации. Ну и будем честны, я тут не мультфильмы Pixar анимирую — для моих задач его вполне хватало.
Интересный факт: у врагов есть механика перезарядки и для тестирования она была почти полностью добавлена для игрока, но её пришлось выключить, так как она не вписывалась в концепцию. Правда, позже я всё же придумал, как её можно реализовать, но сделаю это, когда-нибудь потом. Возможно.
Не могу не поделиться одной забавной хитростью: в главном меню персонаж едет на машине по улице и мимо него проносятся дома и фонари. И это на самом деле так — при запуске игры машина в сцене стоит на месте, а движутся дома, столбы и материалы. Такая вот магия кино :)
Релиз
Пошаманив с бесплатным видеоредактором Shotcut, я сделал трейлер, накликал скриншотов и разослал ссылки во все свои социальные сети. Готово, я сделал и опубликовал свою первую игру! Ладно, только первый уровень, но полностью законченный.
Изначально планируя выпустить игру где-то в сентябре, релиз пришёлся на вторую половину ноября. Для публикации я выбрал сервис itch. io, потому что публиковаться в Steam с одним уровнем игры, которая возможно никогда не выйдет — не уважать игроков, которым сам и являюсь. Так же как и стричь деньги за неготовый проект — по этому игра бесплатная. Ну и потому что это портфолио :)
Ссылка на игру:
Ну и какая разработка без багов и исправлений? Собрав немного отзывов, исправил некоторые довольно досадные вещи: например, игра плодила огромные логи, которые могли увеличить размер папки игры до 10 гб. Что-то исправить так и не удалось — иногда в игре пропадает возможность включать slow-mo, а так как это не завязано на других механиках и баг случается редко, вычислить его мне пока не удаётся. А ещё после отзывов добавил в игру таймер (кнопка T) для тех, кто решил поиграть в спидранеров. И даже добавил тайный уровень-арену.
Итоги
Я делал эту игру с нуля в одиночку около 8-ми месяцев. Я сделал для неё модели, звуки, музыку и логику не пользуясь готовыми ассетами или аутсорсом. Да, некоторые звуки я нашёл в интернете, вроде выстрелов или шагов, но их всё равно пришлось изменить и обработать под свои нужды: программы iZotope и Audicity для настройки и обрезки, и FL Studio c ACiD Pro для музыки. А ещё (чего не стоит говорить работодателю, если собрался стать игровым программистом) всё это функционирует исключительно на блюпринтах, то есть я не использовал ни одной строчки кода. Хотя нет, использовал — 5 строчек отвечают за смену цветов одежды врагов.
Так нашёл ли я работу в gamedev? Пока нет, но кто знает, может этот текст мне в этом поможет, ведь сделать игру — пол дела, надо чтобы о ней узнали. Да и цель этой игры — не только показать, чему я научился, но и подарить игрокам какие-то впечатления и эмоции, иначе зачем вообще делать игры. А ещё передаю привет всем тем, кто говорит, что вы не будете делать игры, которые вам нравятся и стоит начинать с чего-то очень простого — это зависит от вашего желания и умения находить информацию — и это моё последнее напутствие. Я знаю, что моя игра не идеальна и не делает прорывов в жанре, но она прикольная, сделана недурно и с душой. Очень надеюсь, что она понравится и вам — удачной игры!
P. S. Уровень проходится примерно за 3 минуты, но только при условии если:
- Вы самый меткий и быстрый стрелок на DTF
- Вы траили уровень около часа. Или больше — на высокой сложности
- Вы разрабатывали его 8 месяцев и знаете здесь каждый уголок (правда, даже в этом случае не всегда выходит с первой попытки)
Ну ты крут!
Хорошая тема делать проекты для портфолио и это касается не только геймдева, а многих других профессий.
Удачи с поиской лучшей и любимой работы :)
Сделать проект в одиночку, занимаясь всеми аспектами - весьма серьезное достижение. Так сказать, не многие могут, добавлять "не только лишь все" не буду. Просто немногие.
Но в текущих реалиях редко кому нужен и чтец, и жнец, и на дуде игрец. Возможно, за годы, связанные с индустрией ты обзавелся знакомыми, которым такой многостаночник нужен. Но обычно такие люди нужны или с очень большим бекграундом, либо в гиперкеже, в котором обычно не хочется надолго задерживаться.
Я бы рекомендовал сосредоточиться на чем-то одном для ускорения процесса входа в команду. Так можно сильно экономить время на процессах, которые не ведут напрямую к результату.
на базовом уровне все это будет плюсом, дальше конечно нужно выбрать что то одно
Но если хочешь сам релизнуть игру, то придётся быть всем подряд. :)
Сосредоточиться на чем-то одном сомнительная затея - сейчас тренд на Т-специалистов, и условные узкоспец дизайнеры нахуй никому не нужны, они в грейдах джунов трутся.
Как я понимаю примерно для такого скиллсета существует позиция "технического геймдизайнера", хз шо по востребованости у этой позиции
Кодзима с тобой бы не согласился)
Ты большой молодец что сделал такой проект. Но если ты действительно хочешь попасть в геймдев(особенно ААА), то лучше не распыляйся на все позиции. Рекрутеру и ребятам с команды очень тяжело понять что ты из себя представляешь по конкретному направлению, которое они пытаются закрыть. Я покажу твою работу в своей компании, вдруг заинтересуются.
Эта одна из самых больших проблем, потому что моё желание - делать игры лучше. Работать над деталями, мелочами, над игровым опытом, ощущениями игрока. Я могу представить себе игру, как она будет работать, как выглядеть, но если ты один - кто реализует все твои хотелки? Вот и сделал сам) Мне говорили, что это скорей должность технического геймдизайнера, но я смотрю и в сторону обычного геймдизайнера. Ещё есть PM, но там больше про управление персоналом, хотя, если разобрался в пайплайне производства, то и это должно быть вполне реально.
Эх, были же времена…
Комментарий удален модератором
Эх, мистер крутой. Завидую такой усидчивости и целеустремленности. Это тебе не саппортом за 50к 5/2 сидеть и проходить свой бэклог в стиме(
Что за саппорт за 50к?
Бля, Паша с утренних выпусков. Успехов тебе!
Он ещё и кондовые ролики на канале раньше делал,кстати):
https://www.youtube.com/watch?v=QAhrowAGQ7A
(если я ничего не путаю,конечно).
Паша, респектос тебе! Продолжай, прогресс отличный
увожение за Ex Machina
Мужик, при всей уважухе за то, что взялся за дело - этот текст просто больно read.
Комментарий недоступен
Неплохо, но это лишь один уровень :) 8 месяцев? Вот и считаем, если их хотя бы 10 надо - это 4 года только на уровни :)
8 месяцем в том числе на ядро геймплея проекта, то есть если надо сделать ещё один уровень, на него может уйти меньше месяца, в зависимости от размеров. А вот на уровни с другими механиками (например после этого уровня должен быть уровень-погоня) может уйти побольше, но всё же уже не 8 месяцев.
Ну человек попутно учился как что делать, плюс судя по всему он занимался этим не фул-тайм (что, наверное, не очень хорошо, если действительно хочешь отучиться и попасть в геймдев, особенно, если ты безработный).
Удачи!
У тебя всё получится ✊
Секретный уровень, надеюсь, с коровами?
Я до этого не додумался, а ведь у меня даже моделька коровы есть
Комментарий недоступен
Выглядит круто, я бы такого парня взял на работу каким-нибудь директором 👍
Так же нашёл работу, только цель у нас с художником была поконкретнее:"Сделать пару мобильных казуалок от и до". Базовые механики + свои идеи + всякое "неинтересное" вроде магазинов, рекламы и релизов в стор.
Очень круто руку набить помогает) главное делать проекты, которые не стыдно показать. Нууу и страничка в линкедине маст хев🌚
Так нашёл ли я работу в gamedev? Пока нет
Очень тонкий приём манипулирования ожиданиями. Каждый зашел в надежде увидеть историю о том, как человек сделал игру и попал в геймдев, а получил какую-то дженерик стори про чувака, 8 месяцев делавшего какую-то залупу с полутора механиками на блюпринтах.
Я всегда говорю что геймдев это призвание, а не место где деньги зарабатывают)
Событие всё ещё происходит, но простите, если ввёл вас в заблуждение) Кстати, а сколько механик должно быть в игре, чтобы она не была залупой? У SUPERHOT немного механик и это ей не помешало. А недавний Vampire Survivors вообще построен на схеме "игра играет сама в себя" и ничего, десяток клонов уже в Steam, ещё сотня на подходе.
Очень похоже по задумке на paint the town red🤔
А ещё, пока я делал игру, была анонсирована и вышла демка Anger Foot, которая по геймплею тоже чем-то напоминает мою. И пусть там не сильно заморачивались над стрельбой, но сама игра явно стильней и веселей моей
https://www.youtube.com/watch?v=7R1XJv-pylk
Ты молодец, а насчёт поиска работы - много кому уже резюме разослал?
Пока прощупываю оставшиеся связи в индустрии и внешний посев, если не выйдет, буду уже искать конкретные студии и стучаться к ним
сорри очень много букв, но в принципе, я в прямом эфире наблюдал, так сказать. Жду нового проекта с собаками
Чувак, ты сейчас столько воспоминаний разблокировал...
Наверное,это он DOOM 2016 стримил на канале в своё время)
Молодец. Если нужна. Работа.сосрелоточьсч на VFX или работе техартиста. Этих ребят с руками открывают.
Хорошая работа, не останавливайся на достигнутом, принимайся за следующий проект. Со временем найдется работа и хороший доход.
В основах работы с движком ты разобрался, это уже достижение
Хоть ты сделал только техно демку так сказать уже прослеживается стиль. В следующей твоей работе надеюсь будет больше дизайнерских деталей. Удачи
Паша, наконец ты в геймдеве! Респект.
You are pretty good! Очень понравилась динамика Хотлайна/Ruiner которую ты передал в FPS. За упоминание Ex Machina отдельный респект, уникальная игра. Хотелось бы, посмотреть на её идейного наследника)
Паш, ты крутой. Желаю тебе, чтоб всё получилось !
Не прошло и 8 месяцев как я дождался конца этой эпопеи с разработкой игры) ты молодец, мне хоть проект и не интересен, потому что на стримах все видел, но за тебя рад)
а где роад рэш? в ролике не показано
От Road Rash там петляющая дорога, но так-то в ролике и Clustertruck нет - взял самый последний ролик, что был по проекту. Основная механика у нас была в том, что при столкновении с другим транспортом ты вылетал наружу (как во Flatout) и мог запрыгнуть в другой транспорт на дороге, продолжив погоню от летающей тарелки. Вот тут версия игры ещё без города:
https://www.youtube.com/watch?v=ouTUGr3cmIg
На анрил энджине можно сделать игру без знания языка?
Блупринты это визуальные скрипты?
Комментарий недоступен
Очень крутой материал. Спасибо. Было интересно
Комментарий удален модератором
Гонка в стиле Split/second как преальфа - очень круто, что-то на таком можно интересное запилить
Есть еще игра Anger Foot, там похожие механики на Hotline Miami, но тоже в 3D.
это мощно. прототип действительно хорош! ты мега чел)
Молодец! Этим портфолио ты сможешь показывать в первую очередь своему работодателю что можешь доводить всё до конца и можешь разобраться в любой сфере. Это однозначно плюс тебе как специалисту.
https://dtf.ru/indie/1330415-delayu-igru-na-mehanike-raketnogo-pryzhka-cannon-jump
Пашка молодец!
С таким потоком новичков уже давно надо думать о том как лучше свалить из геймдева, чем как сюда попасть :)
Эх, любил делать игры. Много начинал, ни одну не закончил. Дико доставлял процесс решения проблем, придуманных тобой или совершенно неожиданных, самого разного рода, от рисования спрайтов до придумывания алгоритмов(да я люблю изобретать велосипеды). И затем слияние этих решений в один рабочий механизм.
В общем, охуенная тема. Искренне рад за тебя
Блин, это настолько "по старинке", пря по пайплайнам 97-го года, хах
Буду ждать твоей игры, нравится Лоу Поли графику, круто выглядит, но как это можно было почти без кода без понятия
мегахорош!
Чувак а ты раньше в дс на одном серваке по геймдеву сидел? А то один проект прям мне кое что напоминает
Только в телеге по анрилу
Мое почтение, снимаю шляпу. Пусть и далеко не жир уровня А, какой некоторые здесь отметившиеся ожидали и хотели увидеть. Но стремление однозначно заслуживает уважения 🎉
Лицевые кости для loy-poly персонажа без лица не нужны. Понятно что твоя игра не требовательна, но т.к. ты ее делал для портфолио то следовало бы хотябы не светить такими вещами
Хорошая статья , и интересно читать было, что редкость для таких длинных стен текста. Паша а ты программист ? Или прям вообще с 0 вкатился ?