• В шутерах должно быть достаточно одного монстра, но с оружием будет сложнее. Оружие может наносить урон просто при попадании противника в перекрестье прицела, а может иметь снаряд. Причем это не вопрос выбора между простым прицеливанием и реалистичной баллистикой пули для пистолета, ведь в шутерах также встречаются гранаты и ракетницы, для которых придется делать какую-то физику, независимо от механики выстрела пистолета. И если в нашей игре будут и пистолеты, и гранаты, значит, для этого этапа необходимо будет реализовать и то и другое.
• Если в нашей игре все монстры будут передвигаться по поверхности и вести себя одинаково, то достаточно реализовать одного такого персонажа, независимо от того, будут ли они иметь разные уровни и параметры. Но если в игре предполагается наличие разных механик передвижения монстров, например у нас планируются еще и летающие противники, то необходимо реализовать хотя бы одного такого.
Даже при том, что мы выбрали минимальное количество ассетов, они не являются совсем разрозненными объектами и связаны друг с другом, а значит, у нас будет некая последовательность производства. С одной стороны, мы занялись вертикальным срезом, чтобы эту последовательность и выработать, с другой стороны, основные детали этой последовательности должны быть и так вполне очевидны. Например, чтобы получить финальную игровою локацию, нужно не только спроектировать ее, но и дождаться, когда художники создадут все предметы, которые там должны располагаться. В результате работа даже над единственным уровнем превращается в довольно затейливое дерево зависимостей, например дизайнеров уровней от сценаристов и художников.
Практически все элементы игры можно так или иначе сгруппировать по процессу производства, свойственному именно этому элементу. Он есть у отдельных предметов на уровне, у персонажей, даже у графической части работы над ними. Процесс, свойственный производству какой-то группы элементов игры, называется пайплайном (pipeline – «трубопровод»). Однако это не просто путь из точки А в точку Б.
Пайплайн работы над каждым отдельным элементом разделен на этапы, которые позволяют не просто передать работу от одного специалиста к другому, но также добавить процессу итеративности, очень похожей на производство всей игры: разработки концепции, проверки прототипом и производства. Это позволяет вернуться на шаг назад или начать все сначала для каждого отдельного объекта игры, пока он не станет удовлетворять нас.
Если продолжать аналогию с этапами производства, наш список объектов, которые необходимо реализовать, является списком идей. Они должны быть оформлены в концепцию с четким описанием того, как объект выглядит, работает, какие имеет параметры, а также концепт-арт, помогающий другим участникам команды буквально увидеть место объекта в игровом мире. Когда концепция будет утверждена, начинается процесс прототипирования. Как и у прототипа игры в целом, цель прототипирования отдельного объекта не только попробовать, насколько этот объект интересен, но и можем ли мы вообще его реализовать. Даже при том, что все, например, автомобили в целом делают по одному и тому же пайплайну, при производстве какой-то отдельной модели вполне может возникнуть какая-нибудь непреодолимая проблема.
Это особенно важно на этапе вертикального среза, ведь может так получиться, что мы просто не обладаем необходимыми навыками и ресурсами для реализации какого-то объекта в соответствии с разработанной концепцией. А значит, нам нужно либо восполнить пробел в виде недостающих навыков – нанять исполнителя, обратиться к помощи аутсорса, подучиться, – либо что-то изменить в концепции объекта, а может быть, и всей игры.
Если этап прототипирования отдельного объекта пройдет успешно, то можно заняться его финализацией. И вот тут есть довольно важное отличие от более масштабных этапов разработки самой игры. Учитывая, что каждый отдельный объект создается с целью наполнить игровой мир, а сам этот мир, по сути, претерпевает итерационное развитие, получается, что нам необходимо делать все одновременно. К тому моменту, когда у нас будут готовы прототипы мебели для уровня, у нас должен быть готов концепт самого уровня со схемой расположения этой мебели, чтобы мы смогли сразу попробовать расставить ее по уровню. Механики, разработанные еще на этапе прототипирования игры, позволят взглянуть на уровень очень близким к финальному образу. Мы должны сразу увидеть, насколько прототип или даже концепция вновь созданного объекта соответствуют тому, что мы в конечном итоге хотим показать игроку.
По мере принятия этапов реализации отдельных элементов игры наш прототип начнет обрастать «мясом». Кубики будут заменяться предметами и персонажами, простые механизмы взаимодействия – более сложными. Разработка одного объекта игрового мира может требовать большого количества разноплановых навыков. Так, для создания простой двери может понадобиться работа не только художника, но и программиста, не говоря уже о дизайнере уровней. Идея итеративности и здесь должна нам помочь. Ведь чтобы расположить дверь на уровне и заняться разработкой механизма взаимодействия с ней, нам не нужен финальный арт этой двери. Все, что нам требуется для начала, – это финальные характеристики: какого она будет размера, как будет открываться, с какой скоростью, в какую сторону.
Метод итеративности разработки отдельных элементов игры позволяет не дожидаться финальных результатов работы отдельных специалистов для начала работы над отдельным элементом. В результате время создания того же уровня не складывается из времени работы над всеми его составными частями, а в значительной степени пересекается с ними, что несколько усложняет планирование таких сложносоставных компонентов. Чем проще и независимее элемент, тем легче определить время, необходимое на его реализацию.
В результате работы над вертикальным срезом мы должны получить финальную документацию проекта и набор пайплайнов для разных групп элементов нашей будущей игры. Документация может остаться на уровне глубокой деконструкции: со списком, например, механик, регионов и монстров, – но необязательно должна содержать финальную декомпозицию: схемы работы механик, макеты интерфейсов и цифры характеристик оружия. По итогу вертикального среза у нас должна получиться документация того, как будет реализовываться игра: описание графического стиля и палитры основных графических элементов игрового мира и интерфейса, описание используемых технологий, технических ограничений, размеров и масштабов, инструкции, которым должны будут следовать исполнители каждой конкретной задачи.
Остается лишь удостовериться в том, что выбранные нами методы разработки игры сходятся с доступными нам ресурсами. Может так случиться, что производство всего намеченного для игры контента не умещается в ограниченный бюджет или лимит времени. Есть два решения этой проблемы: либо резать контент, либо оптимизировать производство. Оба варианта подразумевают, что мы откатываемся лишь к началу этапа вертикального среза, а результаты этапов концептирования и прототипирования остаются неизменными. Первый вариант может потребовать переделки многих концептуальных моментов типа сценария и устройства создаваемого в игре мира. Второй же вариант может касаться качества ассетов, сложности игровых систем или необходимости обратиться к аутсорсу. Вместо высококачественных моделей персонажей можно использовать низкополигональную стилизацию. Чтобы избежать проблем с лицевой анимацией, можно нарядить всех персонажей в маски. Можно упростить боевую систему и сократить количество анимаций и оружия.
Одним из самых опасных аспектов вертикального среза является то, что мы можем ошибиться с выбранными пайплайнами и в конце, проводя финальные подсчеты, узнать, что они совсем не вписываются в доступные нам ресурсы. К этому моменту бюджет, выделенный на проведение этого этапа, может уже закончиться и на новые эксперименты просто не останется денег.
Важно не забывать, что финальное качество подразумевается не только для отдельных игровых механик, объектов и ассетов, но и для игры в целом. Количество багов должно быть сведено к минимуму. А значит, на этом этапе проекту будет требоваться полноценное тестирование, а команде – тестировщики. И сам процесс тестирования, вероятно, нуждается в изучении и разработке собственного пайплайна, встраивания его в пайплайны других компонентов, что может повлиять на продолжительность их производства. При этом, учитывая имеющиеся ограничения по времени и бюджету, очевидно, что вычистить из игры все баги, скорее всего, не получится, они будут накапливаться и переходить на следующие этапы производства.
Если же все закончится удачно, мы получим первую версию игры, которой можно будет хвастаться перед коллегами и игроками, а также план дальнейших действий, которому спокойно сможем следовать на этапе производства.
Производство
И вот мы, наконец, добрались до производства нашей игры – самого скучного этапа всего процесса разработки. Всевозможные эксперименты с игровыми механиками и различными графическими стилями должны остаться позади. На предыдущих этапах мы проделали очень серьезную работу, чтобы прийти к этому моменту хорошо подготовленными и не ждать никаких сюрпризов. У нас должен быть готовый план производства и отлаженный конвейер (набор пайплайнов), готовые списки игровых объектов, уровней, персонажей, предметов, математическая модель, которая позволит придать персонажам и предметам какие-то ролевые характеристики, сценарий, описывающий игровой мир и происходящие в нем события. Осталась, казалось бы, сущая мелочь: реализовать задуманный план, используя разработанные инструменты. Пришло время делать саму игру.
Так как дальнейшая разработка игры – процесс в некоторых случаях довольно продолжительный, его традиционно делят на дополнительные этапы по степени готовности игры: альфа– и бета-версии. Количество этапов и требования к ним будет выставлять издатель или инвестор. В случае самостоятельной разработки или если игра небольшая, дополнительное деление на эти этапы может использоваться разве что в маркетинговых целях, чтобы дать понять имеющимся фанатам, как долго им осталось ждать выхода игры. Довольно часто результат работы вертикального среза называют пре-альфа-версией игры – чтобы будущим игрокам опять же было понятно.