Маленький мир на большом Unreal Engine 4
Я — креативный директор студии Redruins Softworks, занимающейся разработкой космическо-выживательного приключения Breathedge.
Хочу поделиться со всеми, кто интересуется разработкой игр и цифровым искусством своими мыслями о создании игровых миров маленькими силами на примере нашего вышеупомянутого проекта. Если вы художник, креативщик, начинающий гуру геймдизайна или просто не знаете, как потратить 15 минут своей жизни — смело читайте дальше.
Измерение потенциала
Для начала хотелось бы сразу же уточнить, что под маленькими силами я имею в виду действительно маленькие силы. В нашей команде — 5 человек и одна инвестиция в виде банки оливок (шутка, никакой банки нет). Все члены команды имеют различный опыт разработки, выпущенные большие и маленькие проекты, а еще мы давно знаем друг друга, что важно. Если вы решились, что вам нужна игра и мир в ней, первое, что стоит осознать — есть ли с кем этот мир создавать. От этого вопроса зависят все ваши дальнейшие шаги, и в особенности — отношение качества ко времени разработки. Будучи единственным разработчиком без опыта, желательно не замахиваться на умопомрачительную мультиплеерную драму с RPG элементами и размахом мира как в Звездных войнах. Начните лучше с попытки сделать мир серой коробки, в которой живет серый болван, умеющий бегать и громко орать по нажатию Space. Тут вам и моделинг с концепт-артом, и левелдизайн, и анимации, и программирование, и работа со звуком. А вот если вы опытный сеньор со сработанной командой и бюджетом — зачем вы вообще это читаете? В любом случае — правильно оценивайте свои силы и возможности, это сэкономит много нервов.
Цель — ваш центр мира
Можно уже начать рисовать вселенную? Нет, рано. Когда-то, лет 15 назад, я черкал карандашиком по тетрадке, выдавая великолепные идеи, новые жанры и фантастические пейзажи. Это были потенциальные убийцы всех игр на свете, которые, правда, никому не были нужны ни в каком виде. Все потому, что даже самая интересная идея потенциально мертва без первоначального плана и цели (исключения всегда бывают). Если вы уже осознали количество и качество ваших соратников, необходимо ответить на вопрос — чего вы хотите добиться? Вы хотите сделать игру мечты или сделать игру-произведение искусства, заработать много денег, заработать мало денег, попасть на выставку, получить награду за лучший сценарий, сделать 10 игр за 10 дней и так далее. Ваша цель — ваш ключ к успеху. Умейте описать ее несколькими словами и всегда держите в голове. Без четкого осознания цели процесс разработки превратится в бесконечное размазывание идей по монитору.
Цель Breathedge — быстрая разработка коммерчески успешной игры (грязная меркантильность!) Более широкой целью является соответствие игры некоторым нашим эстетическим требованиям, что уже слегка размазывает основную задачу, подобные «хотелки» стоит вводить в ваши планы с осторожностью. Чем больше ограничений и стен вы возведете вокруг главной цели, тем тяжелее будет по итогу.
Кто вы?
Если цель ясна и команда в сборе, задумайтесь о ваших сильных сторонах. Если вы собрались группой классных художников-мультипликаторов, обожающих динозавров — нет никакого смысла делать физическую головоломку про роботов или мультиплеерный рыболовный шутер, где вам придется углубиться в низкоуровневый C++ и погибнуть. Лучше делайте простой геймплей, мультяшный и с динозаврами, тут вы сильны и всегда сможете выплыть.
Наша команда в большей степени состоит из людей творческих — моделлеры, художники, а значит, мы можем себе позволить приличный дизайн, графику и даже чуточку сценария. Помимо этого, есть сильный программист, которого можно эксплуатировать, что создает идеальные условия для создания практически любого мира.
Жанр
Как только решаются базовые вопросы препродакшена, можно определяться с жанром проекта. Выбор жанра уже отлично сформирует рамки вашего мира, он также ответит на вопрос — кто ваша аудитория и что ей от вашего мира нужно.
В нашем случае, раз проект должен быть коммерчески успешным, а значит — не только окупить себя, но и принести нам два доллара прибыли на лимонад, мы выбрали популярный жанр «survival» (далее — «выживание») как основу. В играх про выживание, в первую очередь, важна открытость мира, нелинейность, наполнение ресурсами и препятствиями, а также баланс. Это игры для особой, усидчивой категории игроков, способных несколько часов создавать палку, чтобы выковыривать ей грибы для создания улучшенной палки. Визуальная составляющая, анимации, сюжет и другие аспекты игры отступают на второй план. Это прекрасно для маленькой команды, это быстро, это популярно и конкурентоспособно, и еще это ужасно с точки зрения эстетики. Вот тут-то и вступают в силу наши второстепенные желания — сделать красивую и интересную выживалку. Как Subnautica, например.
Документация
Первым шагом на пути к истинной красоте должна стать документация. Я никогда не стал бы призывать маленькие команды составлять крутые четкие диздоки для маленькой игры. Подобное хорошо работает в больших студиях, на сложных и многогранных проектах и при большом опыте. Но я также никогда бы не был против документации хоть в каком-то виде. Если мир не описать на бумаге — будет тяжело. Бумага позволяет собрать воедино весь хаос мыслей и идей, документы структурируют мысли, оформляют четкое видение и позволяют быстро донести его до всех членов команды. Не стесняйтесь развести мусорку из несвязных текстов, идей, фич и описаний игрового процесса на начальном этапе. Пишите историю мира, опишите действующих лиц, силы, действующие в мире, все особенности вашей вселенной. Обсуждайте, причесывайте и создавайте свою маленькую библию игры.
Есть множество вариантов вести документацию, а также выстраивать процесс разработки, будь то листочек в клеточку, облачные редакторы документов или доски с информацией. Я работал с различными программами и утилитами и хочу сказать одно — верного варианта не существует. Пробуйте. Лично для меня удобнее всего вести документацию в Word и/или Google docs, общаться с командой напрямую по мессенджерам с возможностью звонков и контролировать процесс разработки с выставлением задач в Trello. Когда вас пятеро — усложнять не стоит, лучше сосредоточиться на разработке, чем застрять на вылизывании процесса документооборота, пытаясь повторить пайплайн ААА студий.
В нашем случае, самым важным документом для мира является сценарий, от которого мы выстраиваем геймплей, определяем различные фичи, формируем основные локации. Наш сценарий — это текст с подробным описанием всех ключевых аспектов игрового процесса, от эффектов и диалогов до катсцен и персонажей. Почти диздок, но без традиционной структуры.
Воруй, как художник
Прежде чем начинать творить — можно залезть в интернет. Сюда в любом случае стоит залезть и поискать вдохновения. И поворовать. Совсем чуть-чуть, самую малость.
Вам, как создателю будущего мира, важно учесть одну истину — воровать плохо, воровать, как художник — неплохо (а создавать совершенно новое — еще лучше, но это и дольше, и риски другие). Если целью стоит быстро, качественно и успешно — лучше не стесняясь посмотреть на конкурентов, перенять все хорошее и сделать своё. Главное — не увлечься и не наделать клонов, хотя если целью стоит сделать клон, то… ну, вы поняли. Цель — оправдывает средства (как художник, я готов сожрать себя за такое кощунство, как разработчик — ай, молодец!).
Помимо всего прочего, правило «воруй, как художник» распространяется в принципе на всю визуальную составляющую будущей игры. Нам хотелось космос, мы любим космос, а еще в нем ничего нет, а «ничего» очень легко создать (кстати, это ошибка). Нам также хотелось Subnautica, и тут кроется вся суть художественного «воровства», если очень сильно упростить — берется любимый объект 1, сочетается с любимым объектом 2, пропускается через ваш креатив, получается уникальный объект 3 — Subnautica в космосе с бессмертной курицей. По большому счету, вы просто используете визуальные образы, ваши фантазии, уличное искусство, книги — всё, что нравится в любых пропорциях и сочетаниях, и лепите из всего этого новое искусство. Любое произведение — это оперирование опытом, визуальным и интеллектуальным, вашим и чужим. В современном мире создать что-то, чего еще никто не делал — крайне сложно, поэтому вы, скорее всего, будете в чем-то и где-то на что-то похожими. Важно, чтобы ваша похожесть была меньше, чем собственное лицо, чем новый опыт, который получит зритель и игрок.
Я также убежден, что при создании мира, как бы вы не смотрели на других, у вас не получится зацепить зрителя, если вы не понимаете выбранного вами направления, будь то время или место событий. Если вы житель засушливой прерии, вы вряд ли сможете поведать правдивую историю о морских приключениях, а вот о жаре и пыли вы сможете рассказать так, что вами будут восхищаться. Изучайте вопрос, расширяйте кругозор, собирайте материалы (к примеру, через PureRef, крайне удобно).
Для наглядного примера художественного воровства в Breathedge можно посмотреть на концепт-арт многих объектов. Большинство из них — дети красного «Запорожца» с просторов интернета. Во время сбора референсов я наткнулся на сей занимательный экспонат, который полностью соответствует выбранному нами направлению, стилю, времени и даже задает ограничение материалов и цветовую гамму.
Используя «Запорожец» как основу дизайна, я могу в кратчайшие сроки создавать любые объекты, при этом сохраняя единство стиля, цвета, формы, функциональности и детализации. Это удивительно, но при должном внимании любой объект может стать целым миром и сформировать новую вселенную, главное — найти в нем потенциал.
Убивай, как художник
Ах-хаха, купились!
Стиль — наше всё
Истинные художники уже изнывают от нетерпения, рисуют неприличные картинки и пишут неприличные заголовки, а мы все еще топчемся по жанрам и собираем референсы. Но без этой работы не имеет никакого смысла начинать поиск стиля. Одно исключение — когда стилистика игры определяет игровой процесс, но это крайне редко бывает. Это возможно, если вы клонируете какую-то механику вроде hide and seek, вам прекрасно известен геймплей, и успех игры будет зависеть только от визуальной подачи (да и то, это нужно быть очень ленивым, чтобы не внести изюминку в механики). Обычно же рамки разработки помогут и со стилистикой.
Стилистика — вообще отдельная тема, охватывающая огромный пласт искусства, чему посвящено огромное количество материалов. Что тут можно сказать — творите! Если же попытаться выделить какие-то самые фундаментальные законы, на которые лично я всегда опираюсь, это:
Логика и функциональность
Любое произведение искусства подразумевает под собой зрителей. Игровых миров это особенно касается. Мы создаем игру для людей, они будут судить наше произведение. Наше восприятие основывается на личном опыте, и поэтому зритель может ничего не знать об анатомии, к примеру, но подсознательно ощущать, что на портрете, который мы ему втюхиваем, что-то не то с глазами, так как в своей жизни он видел тысячи глаз. Зритель может даже не суметь сказать, что ему не нравится, просто чувствовать зрительный дискомфорт, и это не проблема зрителя, а проблема кривых глаз на нашей картине. То же самое правило действует на все элементы мира. Ветер должен качать деревья, брошенный предмет — падать вниз, пистолет — стрелять, а меч — иметь рукоять, для восприятия этого не нужно быть физиком или инженером, достаточно выйти на улицу. Даже если вы создаете эльфийский волшебный лук из рога дракона — помните, что это, в первую очередь, лук, от которого будут ждать соответствующей логики (стреляет стрелами, имеет тетиву, которую нужно натянуть и т.д.).
Старайтесь продумывать мир и его элементы, основываясь на логике и функциях, которые будут понятны простому зрителю. Если все работает правильно, зритель больше верит в вашу работу.
Гармоничность
Мир должен быть цельным по наполнению, гармоничным. Все относящиеся к миру объекты должны максимально следовать общему замыслу, как в своей идее, так и в форме, цвете, динамике. В игру про неандертальцев достаточно добавить всего лишь одну иконку лампочки в интерфейсе, чтобы на подсознательном уровне разрушить веру в происходящее.
Здесь важно добиться единства и слаженной работы всех частей игрового мира, будь то персонаж, уровень или пользовательский интерфейс. Всегда проверяйте свои идеи честным сведением: делаете предмет — смотрите, как он соотносится с окружением; делаете UI — накладывайте его на концепт/скриншот игры.
Преувеличение
Не бойтесь сделать что-то более выразительным и громким, чем в реальном мире. Если вы делаете яркий источник света — делайте его сверх-ярким. Хотите мощный взрыв — делайте невероятно мощный взрыв, шатайте камеру и пускайте дым в монитор.
Пока игры не дошли до передачи полного спектра ощущений (вкус, запах, боль, жажда) — любая ваша идея будет восприниматься только через зрение и слух. Поэтому необходимо максимально усиливать эти ощущения, чтобы передать хотя бы часть желаемого эффекта (но лучше не перебарщивать).
В остальном, если смотреть очень поверхностно, можно смело разделить направление вашего будущего мира на два варианта стилистики — реализм и стилизация, притом, что фундаментальные законы работают везде одинаково. Выбор направления зависит от потребностей, жанра, команды, сил, времени и всего того, что мы рассматривали выше.
Я считаю стилизацию более выгодным вариантом для маленькой команды потому, что:
Легче добиться визуальной исключительности, вас будут узнавать. Сравните скриншоты Inside и Rayman — никогда не спутаете. Теперь сравните Battlefield и Call of Duty — стало сложнее и даже невозможно отличить одно от другого без знания серий.
Актуальность. Игра будет устаревать значительно дольше. При современных темпах развития технологий делать упор на реалистичность сложно, так как за время разработки на одной технологии успевают выйти еще две более реалистичные, и вы устареваете. Между Fallout 4 и Battlefront 2 — пара лет, но технологии уже сделали значительный скачок, что позволяет рендерить крайне реалистичную картинку.
Стилизации такое не грозит, так как однотонная текстура здесь — это не ограничение оперативной памяти, а художественный прием, который воспринимается как должное вне зависимости от времени и технологий.
Скорость работы повышается, а стоимость разработки снижается. Значительно легче сделать игру с пластилиновыми дутыми человечками, чем сканировать реальных актеров, цепляя мокап и лицевую анимацию. И это касается всех аспектов будущего мира, от костюмов до звуков. Если сравнить стоимость разработки популярной и милой Human: Fall Flat с потрясающей Detroit: Become Human — волосы начинают шевелиться и уползать в незащищенные отверстия на теле. Detroit — это дорого, очень дорого и очень сложно.
Минусом стилизации, как это ни парадоксально, является стилизация. Не все ее любят, и еще ее нужно уметь делать. Чем стилизация сильнее, тем больший художественный навык понадобится. С реализмом в этом случае проще, так как всегда можно посмотреть на примеры необходимых объектов чуть ли ни вживую.
Для Breathedge был выбран мир ближайшего будущего, но альтернативного, в стиле ретрофутуризма. В нашей памяти еще свежи образы Советского Союза, мы можем их правдиво передать, показать наши ощущения того времени, обернув в этот образ современные достижения науки и техники. В космосе же были единицы, и о нем мы можем судить только по крупицам информации, что открывает простор для творчества (и простор для сложностей, так как визуального опыта в этой среде у человечества пока мало, что вынуждает многое додумывать).
Ретрофутуризм также интересен тем, что в его основе лежат устаревшие конструкции и формы, которые отличаются простотой, крупными деталями и максимальной функциональностью. Здесь не нужны сложные швы, рельефы, формы и мелкая детализация. Наоборот — простая геометрия, крупная яркая лампа и глянец краски расскажут и покажут всё, что требуется. Это упрощает создание будущих моделей, позволяет уйти в стилизацию, при этом сохранив долю реализма и экономя время, что важно для основной цели проекта — «быстро». И конечно, здесь максимально просто отрабатываются фундаментальные законы преувеличения и логики, так как функциональность подсматривается в реальной жизни, а стиль старых вещей сам по себе стремится к некоторой гипертрофированности форм.
Для интерфейсов был выбран стиль советского пропагандистского плаката, а также рекламных плакатов того времени. Рельефная бумага, акварельные разводы, призывы попить, шум и налет старины. Это дополнительно подчеркивает стиль ретро и никак не мешает футуризму. Помимо всего прочего, образцы плакатного искусства будут присутствовать не только в интерфейсе, но и как игровые объекты, что еще больше сотрет грань между игровым миром и пользовательским интерфейсом, работая на фундаментальный закон гармоничности.
Прототипирование
Как только вы четко осознаете, что вам предстоит делать, каков ваш мир, жанр, объем работы и коргеймплей — начинайте создавать прототип. Его можно создавать до поиска стилистики, во время или после. Но чем раньше — тем лучше, так как на этом этапе есть вероятность, что вы выбросите все ваши предыдущие наработки, так как они были очень круты в голове и на бумаге, но играть в это оказалось невозможно. В связи с этим на этапе прототипа собирайте маленький кусочек вашего мира из всего, что попадется под руку, не старайтесь финализировать визуальный ряд, старайтесь понять, интересен ли ваш мир и ваша игра в целом, без красивой упаковки.
Если в команде несколько человек, этап прототипирования лучше разделить на технический прототип и визуальный. Здесь стоит продумать, каким образом игра будет собираться не только программистами, но и дизайнерами. Какой пайплайн выбрать для моделей, если у вас 3D игра. Нужны ли PBR материалы или все будет однотонной заливкой, каков свет, сколько динамики, есть ли физика.
Здесь уже необходимо определяться с инструментами, в частности, с движком, на котором будет собираться игра. Чем проект сложнее — тем инструментов понадобится больше, благо, выбор на рынке есть.
Мы остановились на Unreal Engine 4 от Epic Games.
Во-первых, мы с ним давно знакомы, что позволяет делать быстро. Во-вторых, он стоит ровно ничего, а впоследствии — 5% роялти, что хорошо сочетается с вопросом коммерческого успеха (чем меньше вы должны разным людям, тем проще будет заработать два бакса). В-третьих, при относительной сложности нашей игры по наполнению, визуальному ряду и механикам, инструментарий UE4 позволяет быстро прототипировать, тестировать и переделывать, при этом практически в финальном виде.
Быстрое прототипирование возможно благодаря языку визуального программирования (Blueprints), хорошей поддержке при обнаружении проблем и большой базе готовых материалов по всем возможным вопросам. Также даже дефолтные настройки движка выдают отличную картинку по рендеру. Поставил на сцену шарик — уже почувствовал себя разработчиком.
Вертикальный срез
Наш первый прототип мира был довольно неплох по общему впечатлению от игры, хотя мы и были недовольны некоторыми механиками и их скудностью. Пришлось расширяться, но это не мешало начинать работу над созданием финального мира уже не на бумаге, а на UE4. Стиль будущего мира был полностью отработан, создано множество объектов и начата работа по созданию вертикального среза. Вертикальным срезом мы называем небольшой кусочек игры с финальным качеством картинки и геймплея. И тут произошли некоторые изменения в изначально задуманном стиле окружающей среды. В большей степени это было продиктовано геймплеем, на который сильно влияло освещение и заполнение кадра, но это не затрагивало общей стилистики игры, что уже хорошо. В общем и целом, мир кардинально менялся три раза:
Синий космос
Первый вариант. Симпатично, но через два часа игры хочется вырвать себе глаза и вставить туда что-нибудь розовое или зеленое, или ничего. Плюс, свет в лицо дает красивый эффект и какую-то плановость, когда летишь на него, но всё это перестает работать, когда летишь от него, спиной к свету. А если перегородить свет маленьким камушком на расстоянии 10 километров от себя, весь мир погружается во тьму.
Плотный космос
Второй вариант. Освещение сбоку, решен вопрос синевы, планы еще лучше читаются. Красивая, мягкая картинка, в которой отлично видны световые контрасты. Но появились проблемы выбеливания картинки при удалении от объекта, что требовало очень плотного наполнения кадра. Это долго, дорого и полностью убило ощущение безграничного космоса.
Традиционный космос
Финальный вариант. Свет был перемещен в положение сверху и чуть сбоку, границы космоса ушли в бесконечность, никаких цветовых искажений пространства и общего белого тумана. Полная свобода перемещения и обзора, раздолье для наполнения, включая возможность плотной «застройки» как в варианте 2, где это необходимо. Всё работает как нужно, но страдает плановость (как в реальном космосе). Выходом служат отбивки искусственными плоскостями с пылевыми облаками, которые образовались от разрушения корабля. И логика не сильно страдает, и визуально отсекаются планы.
Это лишь три обобщенных итерации, призванных показать, что идеальную картинку в голове и на бумаге могут испортить непрогнозируемые проблемы в настоящей игре. Учесть подобные моменты до реализации зачастую невозможно, если вы уже не делали игру про космос, в связи с чем прототип — отличный инструмент для финального формирования видения вашего мира.
После точного определения будущего вида локации начинается перенос и добавление всех механик на готовый уровень. После чего долго и муторно ваш мир подвергается тестированиям, доработкам, тестированиям, доработкам…
Успешный вертикальный срез, прошедший тестирование и одобренный всей командой — это уже готовый, пускай и маленький мир. Дальнейшая его судьба — расширение, которое является уже скорее технической задачей, поскольку самые сложные визуальные моменты решены и отработаны, вам необходимо лишь следовать заданному курсу.
Подводя итоги
Очень сжато, быстро и проскакав по верхам, мы создали маленький кусочек мира на большом движке UE4.
Здесь не затронуты особенности работы с материалами и светом, нет описания тонкостей программирования, не приведены примеры постобработки, нет ни слова об оптимизации, звуке, эффектах, моделировании, анимировании и других аспектах создания полноценного мира на полноценном движке. Это лишь художественные и технические основы, применимые к небольшой студии и к отдельным людям, но именно четкое понимание основ позволит углубиться в дебри разработки и не утонуть в ежедневных сложностях. Экспериментируйте, создавайте новое, посматривайте на старое и не забывайте делиться этим с окружающими, ведь ваш опыт может стать чьей-то интеллектуальной основой целого мира.