Как мы игру из ассетов делали

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

Steam Launch Trailer

Почему мы решили использовать ассеты. С какими трудностями пришлось столкнуться. Как это сказалось на финальном результате. Об этом и пойдет речь в статье.

Самый важный вопрос: «Нафига, а главное зачем?»

Несколько лет назад мы поняли, что пора менять наш формат работы. Мы вышли из под крыла Alawar, ну и как следствие потеряли возможность работать над сериями Rescue Team и New Yankee. Поняли, что наш движок окончательно стухся и пора искать замену. Костя, наш художник, ушел на вольные хлеба. Чистый лист… Хочется сказать, что у нас был план и мы его придерживались. Но нет, мы просто хотели сделать что-то знакомое нам в 3D и на новом движке. Обкатать технологию и только тогда начать делать убийцу Fallout. Что еще? Помимо хотелок у нас были деньги. По нашим прикидкам их бы хватило на разработку одной казуальной игры, поэтому финансовая помощь не требовалась. И вот тут начинается самое интересное.

Вопрос номер один. Искать ли еще людей в команду? Если говорим про 3D и серьезный подход, то это как минимум трое: моделлер, аниматор и художник по текстурам. Такая толпа ребят, да еще с хорошим опытом, съест наш бюджет за полгода. Предложить процент с продаж от игры про которую мы еще и сами ничего не знали? Сомневаюсь, что на такое клюнул хоть кто-то адекватный. И самое главное, чем их нагрузить в начале работы над игрой? Окей, откладываем на потом.

Вопрос номер два. Может на первых порах подключить фрилансеров? Опыт работы у нас с ними есть, правда хорошие контакты только с 2D художниками. Плата по факту. Сплошные плюсы? Не-а. Время, нужна тонна времени: подобрать референсы, объяснить задачу, подождать, выбрать из предложенных вариантов, подождать, принять результат и отметить недочеты, подождать, принять повторно результат, вставить игру, отметить недочеты в игре, подождать, принять финал. Работать в долгую с одним фрилансером тоже невозможно: у ребят своя жизнь, дополнительные проекты и т.д. и т.п. Чтобы сократить временные издержки, нужно держать в обойме сразу несколько фрилансеров. Огромная нагрузка, чтобы получить «тыкву и камушек» через месяц, когда они нужны здесь и сейчас? Спасибо, но нет.

Вопрос номер три. Пора начинать рисовать самому?

Не, не вариант:)

Вот мы и пришли к ассетам. Идеальный вариант: покупай задешево или получай бесплатно, вставляй пачками и ни о чем не думай. Все сделано за нас! Решение всех проблем? Не совсем…

В чем подвох?

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

Первые опыты. Рабочее название: Medieval Tales.

Но время шло, игра постоянно изменялась. Мы начали с обычного тайм-менеджера. Поняли что 3D с фиксированной камерой выглядит хуже, чем 2D. Добавили перемещение камеры. Поняли, что на уровнях в несколько экранов тайм-прессинг сделать невероятно сложно. Убрали тайм и получили унылый менеджмент. Начали искать чем его «разбавить». И так постоянно, и так непрерывно…

За это время библиотека ассетов выросла и оказалось, что она покрывает почти все наши нужды. И встал вопрос, а нужно ли что-то менять?

Первый страх любого разработчика: «Ведь тысячи игр будут с этим домиком или мостиком, да игроки нас с потрохами за такое съедят». Как показывает практика, большинству игроков на это насрать. Игроки заплюют за что-нибудь другое. А уж нашей казуальной аудитории встретить этот «домик» в какой-то другой игре вообще нереально. Хотя, в игре Kitaria Fables (тоже издатель PQube) полно «наших» ассетов. Бывает…

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

Проблемы

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

Первая и основная проблема: ассетов в магазинах много, а вот контента для вашей игры катастрофически мало. Нужно очень осторожно подходить к выбору стилистики, сеттинга и возможностей в вашей игре. Если сферического реалистичного зомбаря в вакууме найти не проблема, то стилизованного воина Анубиса для древнеегипетской тематики подобрать будет проблематично. Выход один: еще на старте разработки искать целые паки ассетов, желательно от одного разработчика, которые покроют большую часть потребностей игры. Если их нет, то изменять игру до тех пор, пока не найдется нужный набор. Хотели делать космический симулятор, а в итоге пришлось делать стилизованную РПГ про эльфов и гномов? Это работа с ассетами, детка, тут по другому не получится.

Конкретный пример из нашего опыта — поиск музыки для игры. Казалось бы, все просто — ее стиль должен подходить к уже выбранной графике, поэтому изначально мы искали треки со средневековыми и фентезийными мотивами. Если ввести в поиске по Unity Asset Store в разделе Music слово Medieval, то в выдаче получаем почти 200 паков и в каждом из них — много треков. Однако на поверку оказывается, что большинство из них звучат героически и эпично. Эти треки прекрасно подойдут игре по «Властелину Колец», но совершенно не вяжутся с шайкой гномов, собирающих тыквы с поля. А еще, если в музыке слишком большое количество ударных, то они «забивают» звуки в самой игре. Так что богатство выбора оказалось обманчивым. Уже к концу разработки стало понятно, что музыки не хватает. Поэтому мы мужественно ослабили требования, еще раз прошерстили все свои запасы и вставили в игру треки, которые ранее были забракованы. Средневековьем в них и не пахнет, но они приятно звучат и не забивают озвучку игрового процесса.

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

Третья проблема: ассетов много, а полезного в них мало. Во-первых, появляется желание добавлять все к себе в проект про запас. На будущее. Размерчик растет, винчестер тает, пулл с нуля занимает века, грусть, тоска… Наш первый макет набрал 4 гига за пару месяцев, а сейчас вся игра занимает 5 гигов. С учетом того, что за место на серваке мы регулярно платим, это не может не радовать. Не забываем про нынешние цены на винчестеры и принимаем кардинальное решение: регулярные чистки, убивать все ненужное и лишнее. Для хранения временных ассетов, можно использовать дополнительный проект из которого перекидывать в основной только нужные вещи. Поработали с ними и снесли без сожалений.

Опять работать?

Как мы игру из ассетов делали

В самом начале мы верили в успех, в единорогов, в то, что ассеты сделаны на совесть и их сразу можно использовать в игре. Эх молодость… Начнем с хорошего: ассеты, которые бесплатно раздавали Эпики от своих игр, зачетные и грамотные. Правильная настройка материалов и текстур, лоды, физика, все как по учебнику. Недостаток один: в нашу игру они не подходили от слова совсем; еле-еле прикрутили наковальню из Infinity Blade: Fire Lands. И подобных разработчиков, так скрупулёзно относящихся к качеству своей работы, очень мало. В основном, ребята выкатывают работы хорошо выглядящие только на скриншотах в магазине, а дальше крутись как можешь. Вот и поговорим о том, как нам пришлось крутиться.

В качестве ремарки. Я не жалуюсь и не осуждаю разработчиков ассетов. Ни в коем разе! Это топ за свои деньги (с) Xiaomi. Но, прежде чем делать покупку, хорошо бы знать с чем можно столкнуться и что придется делать самостоятельно.

Денис, Сейчас бы хлебушка и поспать…

Первое. О LOD-ах можно сразу забыть. О качественных LOD-ах, с упрощением материалов и подавно. Из всего набора у меня только в паре паков были LOD-ы, но настроенные так коряво, что я видел переходы между ними. Как мы справились? Забили. Благо вид сверху и общий low-poly стиль не требуют сильных оптимизаций. Можно, конечно, воспользоваться внутренней тулзой UE4, но ее качество оставляет желать лучшего. Поправили пару растений и на этом успокоились.

Дальше текстуры. Тут полный разброс и шатание. Начнем с размеров. В лучшем случае вы получите текстурный атлас и чем больше мешей в ассете, тем меньше будет итоговое разрешение на модели. Привет 4К-гейминг! А что делать, если нужно только яблоко из всего набора? В худшем случае засунут тысячу текстур для каждой «бутылочки» отдельно. О грамотной группировке в атласы, с соблюдением размеров текселя относительно размера меша мало кто слышал. Что мы сделали? Maya + Photoshop и за работу. Группировка текстур в собственные атласы, правка UV координат. Если были карты для Metallic, Roughness и т.п. то объединяли все в одну текстуру с разбивкой по каналам. А после вставки в игру, текстуры принудительно уменьшали до оптимального по соотношению размер и качество.

Настройки для размера текстур
Настройки для размера текстур

Не меньше сложностей доставили разброд и шатание в цветовой гамме текстур. Все гребаные камушки были разными: то желтее, то зеленее, то синее, то серее. В итоге состыковать ландшафт и пару камней или стену и кирпичи без визуальных глитчей было крайне проблематично. И опять без Photoshop’а не обошлось: Image -> Adjustments наше все, очень здорово помогал Image -> Adjustments -> Match Color.

О том, что все материалы принудительно заменялись на наши и говорить нечего. Наплодить одинаковых материалов, различающихся только текстурами, это любимое занятие разработчиков ассетов. 😁 Встретить Material Instance в паке ассетов — это праздник и хорошее настроение на весь день.

Примерный список скелетных мешей, которые мне пришлось дорабатывать
Примерный список скелетных мешей, которые мне пришлось дорабатывать

Особо стоит отметить работу со скелетными мешами: персонажами, монстрами и т.п. У моделей в Unity обычно используется T-поза, у моделей в UE4 должна быть A-поза. Если вы используете родные анимации модели, то это не проблема. А вот ретаргетинг мне нервы подпортил нехило. Причем импорт FBX со скелетными анимациями в 3ds max или в Blender у меня не прокатил, все кости выворачивались или вообще исчезали. Лучше всего подошла Maya, она и стала нашим основным 3D-редактором. Сейчас я понимаю, что анимированные меши лучше всего покупать в магазине UE4, но не всегда это возможно — магазин Unity богаче. И совет на будущее: не стесняйтесь попросить разработчика выслать исходники модели. Дело в том, что на дефолтных анимациях с моделью может быть все окей, а вот с нашими вылазили косяки и приходилось менять вес костей и топологию модели.

С аудио оформлением тоже не все гладко. Особо запомнилась озвучка клика по деревянному завалу на игровом поле. По задумке он должен звучать как короткий удар топором по бревну. Это один из тех звуков, которые игрок слышит очень часто, поэтому мы уделили ему (и другим часто слышимым звукам) особое внимание. Перепробовали более 10 вариантов из разных паков, и везде было что-то «не то». То слишком реалистично, то слишком мультяшно. В итоге мы взяли за образец клик по древесине из Stardew Valley, взяли наиболее похожий на него звук из уже рассмотренных и с помощью Audacity постарались приблизиться как можно ближе. В дальнейшем еще несколько раз действовали по той же схеме — референс, поиск наиболее похожего, доработка.

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

Фриланс

Что пришлось отдавать на фриланс. Некоторые анимации персонажей, например рабочего или мага и клерика:

Аниматору отправляли модельку персонажа с настроенным скелетом, а также несколько анимаций в качестве примера. Все в формате FBX. Текстуры тоже желательно отправлять, так как в процессе могут «поехать» некоторые детали модели.

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

Магазины и инструменты

Как мы игру из ассетов делали

Первых двух представлять не надо. С головой покрыли все наши потребности. Есть, правда, парочка нюансов. В ассетах от UE нет «исходников», т.е. чтобы получить FBX для модификации, придется его экспортировать из движка. И если для статичных мешей проблем обычно нет, то со для мешей со скелетной анимацией они могут возникнуть. В Unity есть исходные FBX файлы, но тоже не без заморочек. Во-первых, масштаб может отличаться от принятого в UE4 в 100 раз, да эту модельку просто не будет видно. Хорошо хоть анрил на такое ругается. Во-вторых, модельку в начало координат могут ставить через префаб, поэтому в оригинальном FBX она находится в каком-нибудь очень странном месте.

Практически все 2D ассеты мы покупали в этом магазине. Удобно, так как сразу получаешь доступ к исходникам. Кстати, по поводу лицензирования. GameDev Market ограничений на использование в каких-либо движках не ставит. Но, материалы от разработчиков Epic Games или Unity Technologies можно использовать только внутри их движка. На ассеты от сторонних разработчиков, обычно таких ограничений нет, неважно в каком из магазинов вы их покупали.

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

Генерацию недостающих текстурных карт делали при помощи этих утилит. Результат получается не ахти, поэтому старайтесь искать ассеты со всеми необходимыми текстурами.

Выводы

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

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

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

Будем ли мы делать следующую игру с использованием ассетов? Да, несмотря на все недостатки, результат нам понравился.

Минутка саморекламы

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

Ну а если "Do you guys not have phones?", то можно посмотреть игру и на них:

9696
30 комментариев

Прекрасный пример, когда из ассетов делают уникальную игру, а не тупой ассет флип. 
Удачи ребят )

13
Ответить

В ешопе натыкался, захотелось купить, но отложил, ибо нищеброд.
Успехов вам!

3
Ответить

Кстати, с OverGamez (издатель на Nintendo Switch) все супер получилось. Ребята сами на нас вышли, сами портировали и сами продвигают. Мы только монетки собираем :)

5
Ответить

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

3
Ответить

Ананасик не с нами :)

4
Ответить

Спасибо за статью, давно хотел прочитать про использование ассетов в таком формате.
 Если она вас устроит, всегда можно сделать вторую часть или переосмысление с уникальным артом/звуком и большими бюджетами.Вы планируете новую часть с уникальным артом? Или останетесь на покупных ассетах?
Еще один вопрос беспокоит: с покупными ассетами разработка происходит значительно быстрее или все таки доработка этих ассетов может затянуть так, что потом не захочешь больше такого подхода? (По статье, кажется что ответ положительный, но все же спрошу.)

2
Ответить

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

По поводу скорости. По своему опыту: это быстрее чем с фрилансом, но точно не быстрее чем со своими художниками. Если делать по уму, конечно. Мы просто не встречали ассетов, которые НЕ надо дорабатывать (ну кроме музыки, причем звуки тоже надо допиливать). Ассеты для тех, кто умеет в редакторы, но руки не из того места растут, чтобы самому делать красиво.

3
Ответить