27.12.2015
Время прочтенияВремя чтения: 6 минут
Оценка пользователей3Оценка пользователей
Поделиться:
Другие статьи
  • Middle-earth: Shadow of Mordor

    Middle-earth: Shadow of Mordor берет свое начало там, где большинство других игр по мотивам трилогии «Властелин колец» заканчиваются.

  • Система подбора команд в Overwatch

    Как же на самом деле работает эта загадочная система? Постараемся разобраться!

  • Сказ о том, как Blizzard и Valve Dota пилили

    Мало кто помнит, как так получилось, что Dota была основана на игре Blizzard, а продолжение полностью и безраздельно принадлежит компании Valve.

Что нужно делать, чтобы сделать видеоигру?

Предыдущая статья
Следующая статья
В обсуждении вышедших видеоигр обязательно кто-то говорит: лучше бы вместо фишки А сделали Б! Или: чем они вообще занимались три года?
Время прочтенияВремя чтения: 6 минут
Оценка пользователей3Оценка пользователей
Поделиться:

Реже мы хвалим труд разработчиков (хотя обычно хорошая игра так увлекает и затягивает, что о разработчиках и не думаешь, как в кино не вспоминаешь о съемочной группе). Но, увы, игры не появляются на свет магическим образом от того, что авторы представили их у себя в голове.

Каждая игра рукотворна, каждая деталь – результат решений и потраченного авторами времени. Разработка наполнена нюансами, которые совершенно невозможно угадать конечному пользователю. При этом неудачное выполнение этих нюансов способно подточить и уничтожить игровой процесс.

Управление – всему голова

Игра не может быть лучше своего управления: если управление или интерфейс не позволяют реагировать на ситуацию и взаимодействовать с миром, то процесс превращается в лучшем случае в подобие интерактивного DVD-фильма, а в худшем – вообще перестает быть игрой. Казалось бы, разработка управления должна быть довольно простой, как и конечный результат: нажал пробел – случилось то, нажал стрелку – другое (скажем, движение персонажа).

Но если сделать именно так, то персонаж будет двигаться от малейшего, даже миллисекундного (1/1000 секунды) нажатия. Возьмем, однако, реальную ситуацию, в которой игра не обрабатывает 1000 fps (кадров в секунду). Обычно в секунду совершается 60, в крайнем случае 120 проходов – больше не способен воспринять человеческий глаз.

Лучшие профессионалы в киберспорте совершают 10 действий в секунду, то есть в 6–12 раз реже, чем обновляются кадры.

Зажатие клавиши на 1/120 секунды просто не отражает решения или даже рефлексов игрока: специально удерживать клавишу такой мизерный срок человеческое существо просто не способно. Если игра зарегистрировала такое нажатие, то игрок просто «думал вслух» – захотел нажать клавишу и тут же передумал. Иначе говоря, игра должна игнорировать нажатия клавиш короче, чем определенное число миллисекунд (обычно 1/30 или 1/60 в зависимости от темпа игры).

Сделать видеоигру. Марио

Программирование управления прыжком в платформере – первостепенная и непростая задача

«Дутая проблема!», скажете вы, «Ничего плохого не произойдет, если программист управления не будет тратить свое ценное время на такие мелочи!». Это и правда простительно в неторопливых играх. Но любой, кто делал управление для более ли менее активной игры, подобной претензии высказывать не станет. У новоиспеченных разработчиков может уйти немало времени, чтобы выяснить, почему игра получается дерганной; и почему в битвах с боссами, когда точность нажатия кнопок должна быть идеальной, игрок почему-то теряет контроль над ситуацией.

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

Конечно, игра не должна ждать полсекунды, чтобы подтвердить действие – это точно так же убило бы темп; но задержку в 1/60 секунды человеческий мозг не замечает. А вот необъяснимую потерю контроля, чувство бессилия, вызывающее злость и желание грохнуть геймпад или клаву об стену, – да...

Есть и другие каверзные вопросы. Допустим, движение осуществляется по стрелкам клавиатуры, WSAD или ручке геймпада. Вполне обычная раскладка. Что, если игрок нажмет стрелки вправо и влево одновременно? Или одновременно нажмет стрелку вправо, W и отклонит ручку геймпада под произвольным углом? Ладно, нормальный игрок не станет так делать. Достаточно, чтобы игра не вываливалась с ошибкой, когда это происходит, и чтобы не было «дыр», позволяющих ускориться, зажав две кнопки «вперед» одновременно.

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

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

Калейдоскоп служебных экранов

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

Не во всех играх это есть. Но что есть во всех – это оболочка из различных служебных экранов: заставка, подгрузка, титульный экран, настройки, пауза, главное меню, экран персонажа, экран сохранений... Никакой движок не сделает это за вас – по крайней мере в серьезной разработке, где игроки ожидают уникального дизайна, свойственного конкретной игре.

Допустим даже, что движок решает проблему вложенности экранов и приостановки действия «старшего» экрана, пока активен младший (иначе говоря, чтобы при на паузе персонаж не продолжал ходить по игровому миру; а также чтобы при снятии с паузы все процессы игры, все анимации, действия и ввод продолжились так же, как если бы никакой паузы и не было).

Я перечислю служебные экраны в такой простой игре, как Angry Birds (первая часть):

1) Экран первичной загрузки данных
2) Ввод личных данных
3) Главное меню
4) Экран для вопросов да/нет
5) Информационные экраны с текстом, картинками и кнопкой «Назад»
6) Титры
7) Экран промежуточной загрузки данных
8) Экраны магазина
9) Экраны регистрации и авторизации в системе Rovio
10) Ввод промо-кода
11) Экраны кинозала – системы для просмотра мультиков по Angry Birds
12) Экраны системы выбора уровня (только сейчас мы дошли до экранов, непосредственно относящихся к игровому процессу!)
13) Экран сюжетного видеоролика
14) Несколько экранов обучения
15) Экран паузы
16) Экраны победы и поражения
17) Экран рекламы
18) Экран получения приза

Сделать видеоигру. Angry Birds

Сколько дней труда различных специалистов было потрачено на создание этого промежуточного экрана?

Наверняка я не вспомнила или пропустила еще ряд экранов – экраны различных ошибок, прохождение блока уровней... Или можно сказать, что большая часть экранов в бесплатной мобильной игре направлена на монетизацию и неактуальна для «обычных» игр. Давайте тогда посмотрим на популярный независимый проект – Super Meat Boy:

1) Экран первичной загрузки данных (с предупреждением о геймпаде)
2) Экран логотипов компаний
3) Заставка (видеоролик)
4) Титульный экран с меню
5) Глобальный рейтинг игроков
6) Экран статистики
7) Экраны системы реплеев
8) Экраны помощи
9) Настройки
10) Титры
11) Экран для вопросов да/нет
12) Экраны выбора уровня
13) Экран сюжетного видеоролика
14) Экран промежуточной загрузки данных
15) Экран паузы
16) Экран выбора персонажа
17) Экран завершения уровня с реплеем

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

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

Контент как проблема

Одна из теорий поддержания интереса к игре ставит во главу угла кривую обучения: когда игрок перестает постигать новое, игра перестает быть интересной. Это могут быть личные навыки (киберспортсмены достигают 10 действий в секунду), сюжет, игровой мир... Но так или иначе, чтобы что-то постигнуть – автор сначала должен заложить это в игру в форме контента.

Сделать видеоигру. Fallout 4

Каждая консервная банка, каждый рисующий историю скелет, каждая забавная композиция в огромном мире Fallout 4 размещены вручную

В зависимости от игры, усилия, требуемые для производства контента, могут расти в арифметической или геометрической прогрессии. Например, создание новой миссии для стратегии не зависит от уже созданных карт – максимум требуется не повторить их. Создание десяти миссий требует в 10 раз больше времени, чем одна.

Но создание нового юнита для стратегии – совершенно другое дело, потому что он должен быть сбалансирован со всеми остальными юнитами в игре. Значит, создание каждого нового юнита или фракции требует все больше усилий по сравнению с предыдущими.

В особенности это бич ролевых игр и песочниц. Чем больше свободы действий, тем больше комбинаций контента игрок может задействовать – и тем больше нужно предусмотреть и проверить. Допустим, вам захотелось добавить в песочницу действие «понюхать», доступное, казалось бы, почти каждому в реальной жизни. Для этого требуется обеспечить всем существующим и новым вещам дополнительное текстовое описание того, как они пахнут.

Даже если запах нужен не всякому объекту, он определенно должен быть у всего, у чего игрок ожидает его почувствовать (фрукты, цветы, мусорные свалки...).

И это если забыть, что в песочницах подобные возможности присутствуют ради изобретения необычных способов решения задач. Чтобы журналисты потом не писали «В игре можно нюхать все до последнего полигона, только это совершенно бесполезно» (или, наоборот, «Раскачивать навык наблюдательности бессмысленно, потому что персонаж может учуять приближение врагов не хуже гончей»), нужно проверить действие новой возможности в каждом уголке игры, а если она не дает новых творческих решений – то доработать существующий контент.

Во всем нужна сноровка, огранка, полировка

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

К этой категории относятся внешние излишества вроде анимаций бездействия у персонажей платформеров или фраз при закликивании юнитов в стратегии, а также целые игровые механизмы, такие как система поселений в Fallout 4 или коллекционные предметы в Assassin's Creed... Далеко не все игроки станут тратить время на эти мини-игры, но все мы понимаем, что это признаки высококлассной игры.

И, конечно же, они тоже требуют труда. А значит, чтобы не выпустить «минимальную» игру, время и бюджет разработки следует увеличить на четверть.

Сделать видеоигру. GTA V

GTA V не перестала бы быть убойной криминальной песочницей без галлюцинаций про перевоплощение в животных... Но утратила бы кроху народной любви

Человекочасы и гидра коллектива

До сих пор мы говорили о труде довольно абстрактно. В действительности он измеряется в человекочасах различных специалистов, что вполне себе денежная единица. Будь то независимая разработка или наемный труд, человекочасы не берутся из воздуха – они берутся из бюджета, с которым постоянно приходится считаться. Если бы команда разработчиков могла поставить время на паузу и трудиться во вневременном кармане, то игры были бы ограничены только нашей фантазией.

На деле же... Если на создание одной карты для стратегии у автора уходит три полных рабочих дня – то для ста понадобится больше года (или несколько авторов). Все проблемы, описанные выше, составляют трудность именно потому, что требуют для своего решения многих человекочасов труда. Иногда игры создаются одним человеком, но давайте лучше поговорим о создании игры коллективом, ведь именно так появляются на свет наши любимые продукты – высокобюджетные игры класса ААА.

Главное, незримое для конечных пользователей препятствие – это политика.

Человекочасы действительно дороги. Много человекочасов – большие деньги. И они должны откуда-то взяться, а точнее, от кого-то. В случае ААА-класса это акционеры и инвесторы, перед которыми руководство компании держит ответ. И ответ они должны держать в формулировках, понятных этим далеким от игр людям. Да и само руководство компании проходит скорее всего по части бизнес-мышления. Так или иначе, создание высокобюджетной игры – в той же мере искусство разработки, как и дипломатии.

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

Сделать видеоигру. Игровая конференция

Участие в отраслевых конференциях – важная часть жизни крупного разработчика

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

Опытные проект-менеджеры специально закладывают дополнительные часы к тому, за сколько ожидается справиться с задачами в идеальном случае. А дополнительные часы – это увеличение бюджета...

Но даже если инвесторы осыпают команду деньгами, человекочасы нельзя увеличивать вечно. Многие игры ААА-класса разрабатываются к определенному сроку – например, новогодним праздникам. Также параллельно с разработкой ведется маркетинговая компания, где какие-то сроки уже были названы. Решить проблему успевания с наймом новых сотрудников, заказом у третьей стороны или переработкой не всегда возможно.

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

Подведение итогов

Все вышеизложенное никак не означает, что игры делать настолько сложно, что не стоит и пытаться; или что ни одна задумка не может быть воплощена достойно. Это происходит каждый день и в любом классе игр, от инди до ААА. Более того, в междусобойчиках независимых авторов постоянно проходят конкурсы вида «игра с нуля за 2 суток», и многие заявки в них поражают воображение. Я бы хотела сделать только два вывода.

Если вы игрок и хотите причаститься к разработке игр, объявив собственный проект... не стесняйтесь начинать с малого. Даже за маленькой задумкой, вроде типичного «три-в-ряд», стоит много неожиданного труда, и скромный законченный проект даст вам опыт, необходимый для создания чего-то грандиозного.

Если вы ценитель и взвешиваете работу игроделов в свежей новинке... Когда игра выходит безупречной – это редкая удача. Если же нет, то очевидные огрехи далеко не всегда можно было предотвратить так просто, как кажется. Увы, банальная профанация в разработке встречается чаще, чем хотелось бы, но не каждое расхождение игры с воображаемым идеалом – результат пороков лени и глупости. Главное, хороша ли игра такой, какая она есть.