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