Вячеслав Уточкин – Хочу в геймдев! Основы игровой разработки для начинающих (страница 13)
План бюджета – это обычно именно внутренний документ, по которому фактически работает команда. А бизнес-план предназначен для демонстрации планов и прогнозов инвесторам/издателям.
Документация и инструменты управления помогают понять, в какой последовательности реализовывать фичи, где может не хватить ресурсов и времени, где проект может «просесть». Задачи разбиваются на более мелкие и структурируются по времени и приоритету.
Нельзя не сказать о том, что четкое планирование больше подходит для крупных профессиональных команд, потому что имеет те же недостатки, что и Waterfall: любые планы имеют тенденцию расходиться с реальностью, особенно когда вы делаете что-то впервые. Идеи, которые вы собираете в бэклоге, – это прежде всего цели, и для многих команд эффективнее дать исполнителям определенную свободу на пути к их достижению. Главное, чтобы эти задачи были реальными и выполнимыми в указанные сроки.
Выбор инструментов не в последнюю очередь зависит и от самого проекта. Для клиентских однопользовательских игр дорожные карты (roadmap) и майлстоуны (milestones) работают хорошо. Если компания заключила договор с инвестором или издателем, в нем так или иначе будет прописано, что и в какой срок должно быть готово и что произойдет в случае неисполнения. В такой ситуации не составлять четкие графики и планы очень рискованно. Небольшие мобильные игры с понятными механиками и опытной командой тоже пользуются всеми этими инструментами, так как производство зачастую поставлено на поток.
Для неопытных команд или экспериментальных проектов все, конечно, несколько сложнее. Многое может меняться на ходу, ведь риски и приоритеты могут быть изначально определены неверно.
И конечно, каждая команда индивидуальна; выбирайте или придумывайте что-то свое, главное – результат.
Выбор игрового движка
Если с планированием более или менее определились, пора переходить к важному техническому решению – выбору игрового движка.
Термины «игровой движок» и «игра» тесно переплетены, разработчики могут по-разному понимать границы между ними. Мы будем рассматривать игровой движок как базовое программное обеспечение, пригодное для повторного применения и расширения, служащее основой для создания различных игр.
Игровые движки в современном понимании зародились в середине 90-х. В то время инди-разработки как таковой практически не было, созданием игр занимались более или менее профессиональные компании – хотя, конечно, по современным меркам многие из них были инди. Каждый движок делался под специфический жанр или игру.
Если вы делаете игры с похожими механиками, каждый раз создавать движок с самого начала неэффективно. Поэтому было решено отделить саму базовую игровую логику и просто дополнять ее необходимыми для каждой конкретной игры элементами.
От текстовых адвенчур (
Теперь игровая логика и механики отошли на второй план; новые технологии ценились за честную картинку, которой раньше не было, физику и возможности рендера (визуализации). Удачное сочетание центральных компонентов игры (подсистем графики, звука, расчета столкновения объектов и других) позволило создавать новые проекты на базе готового игрового движка, что сильно сократило время разработки.
Позже появились движки Unreal Engine (1998, первая разработанная игра – шутер от первого лица
В то время самостоятельно издавать игры было очень тяжело: следовало договориться с магазинами о размещении дисков, а прилавок обычного магазина, в отличие, например, от Steam, физически не может вместить все выпускаемые игры. По этой же причине разрабатывать нишевые игры с небольшой аудиторией поклонников было сложно.
Только с появлением цифровой дистрибуции и развитием рынка мобильных игр разработчики получили возможность знакомить со своими играми широкую аудиторию. Теперь современные движки стали удобным инструментом создания самых разных игр. Сначала Unity, а позже CryEngine и Unreal Engine стали условно бесплатными, что сделало эти движки доступными практически для любых разработчиков.
Сегодня в базе игровой движок дает «строительные кубики», из которых собирается игра, а также большой выбор инструментов, облегчающих жизнь разработчика. Вам не придется изучать множество материалов по программированию, однако совсем без таких навыков гейм-дизайнеру будет непросто. Зная, как работать хотя бы с одним языком программирования, вы относительно легко сможете переключиться на другой. Если писать код вы не хотите, все равно вам придется составлять техническое задание своим программистам, а значит, вы должны хотя бы в общих чертах понимать, какие методы они могут использовать для решения различных задач. В общем, в этой области знания нужно будет подтянуть. Существует очень много вариантов для визуального программирования, облегчающих жизнь разработчика. Если сегодня вы можете работать только, например, с блупринтами[42] Unreal Engine или в GameMaker[43], это лучше, чем ничего.
• Главное достоинство любого движка – эффективный рендеринг графики, позволяющий сократить время разработки.
• Движок задает базовую физику, например гравитацию, так что не нужно самому вспоминать законы Ньютона; у предметов уже есть параметры того, как они должны лежать, падать и т. п. Системы моделирования взаимодействия игровых объектов помогают правильно определить, попала ли пуля во врага, если это шутер, или как колеса автомобиля сцепляются с дорогой в гонках.
• Также движок часто дает сетевой протокол. Если мы делаем онлайн-игру, где один игрок стреляет в другого, информация об этом уйдет на сервер, где результат будет посчитан, обработан и отправлен игрокам.
• Движок дает систему искусственного интеллекта. Например, можно определить, как монстры будут перемещаться, бегать группами, атаковать игрока и т. д.
• Сегодня движки ценятся за кросс-платформенность, то есть за возможность разрабатывать с их помощью игры разных жанров для разных платформ (PC, PlayStation, Xbox, Nintendo Switch, iOS, Android пр.). Чем больше устройств смогут поддерживать вашу игру, тем больше людей будут иметь возможность ее оценить.
• Как правило, в движке есть средства для создания игрового контента. Вы найдете множество инструментов для моделлеров, аниматоров, художников по окружению, тестировщиков и других членов команды.
• Некоторые движки дают средства для разработки игровой логики. Если вы хотите, чтобы, открывая какую-то дверь, игрок сталкивался с монстром, достаточно прицепить к двери триггер события «открытие», а к монстру – действие «появиться». Гейм-дизайнер без специальных знаний программирования с помощью понятного интерфейса сможет собрать игровую логику. Хотя есть движки, требующие написания кода для добавления таких триггеров.
• Часто движки дают средства оптимизации и отладки, возможность проверить проект на ошибки и увидеть, на какие части игровой логики или рендеринга тратится больше всего времени.
• Важное преимущество готовых движков – комьюнити. Вы всегда сможете узнать у техподдержки или у других пользователей, как сделать то, что вам необходимо. Чем больше комьюнити, тем проще найти готовое решение.
• Отдельно нужно отметить наличие у движков магазинов с платными и бесплатными готовыми решениями: системой оплаты, библиотеками для работы с физикой и др. Например, Unreal Engine часто дает пользователям бесплатные функции, будь то система красивых аутлайнов[44], физика пробивания пулей различных материалов или генерация правдоподобного леса. Разработчики Unity, имея примеры готовых игр в магазине, выкладывают новые наработки под свободными лицензиями.
Выбор игрового движка – это принципиальное техническое решение, его смена в процессе разработки практически невозможна. Обычно решиться на такой радикальный шаг может подтолкнуть только какая-то глобальная катастрофа, например понимание, что изначально принято неверное решение о выборе движка и игру просто не получится доделать на текущем. Переделывать придется очень многое или почти все, поэтому стоит со всей ответственностью подойти к этому вопросу.
Конечно, обладая навыками программирования, вы можете сами написать код движка. Крупные компании, работающие над экспериментальными решениями и имеющие специалистов должного уровня, нередко выбирают такой путь. Но нужно помнить о том, что это очень дорого. Многие движки, особенно создаваемые для сложных комплексных игр, разрабатывались с бюджетами в 10–20 миллионов долларов, то есть стоили как полноценная ААА-игра[45]. Разработчики новых движков могут рассматривать их как вложение в будущее – для новых игр по франшизе или для продажи.