Геймдизайн. Рецепты успеха лучших компьютерных игр от Super Mario и Doom до Assassin’s Creed и дальше - [100]

Шрифт
Интервал

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

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

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

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

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


Помощь в отношении входных сигналов

ПОМОЩЬ В ОТНОШЕНИИ ВХОДНЫХ СИГНАЛОВ – это предварительная обработка на основе необработанных входных данных, полученных от игрока.

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

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

Давайте разберем пример помощи в прицеливании. В консольных шутерах игрок целится, управляя маленьким джойстиком с помощью большого пальца. Этот метод настолько сложен, неточен и вызывает фрустрацию, что в течение многих лет люди думали, что консольные шутеры всегда будут уступать шутерам на ПК с управлением мышью. Затем, в 2001 году, игра Halo показала нам всем, как помочь игрокам с прицеливанием, чтобы шутеры хорошо работали на консоли. С тех пор они стали одним из самых крутых жанров консольных игр. Без помощи в прицеливании консольные шутеры никогда не стали бы такими, какими мы знаем их сегодня. Но как именно работает помощь в прицеливании?

Она помогает игрокам отслеживать цели. Хитрость в том, что игроки не должны заметить, что им помогают. Просто навести прицел на цель кажется слишком очевидным. Единственный способ не очевидно, но эффективно помочь при прицеливании – это создать ряд чередующихся подсистем, помогающих разными способами. Одна подсистема помогает игрокам отслеживать движущиеся цели, заменяя часть входного сигнала стика на входной сигнал, который точно соответствует движению цели на экране. Никто не наводит прицел на цель, дизайнер только помогает компенсировать движение цели. Другая подсистема помогает игрокам перестать двигать прицелом, когда он попал на цель. Система определяет, когда стик отпущен, ищет ближайшие цели и незаметно скользит прицелом по одной из них. На первый взгляд кажется, что это будет заметно, но игрок не сможет ничего почувствовать, потому что все происходит только при медленном движении прицела. Третья подсистема следит за игроками, которые почти пропустили цель, и слегка смещает направление движения прицела, чтобы он попал на нужный объект. Поскольку мы лишь немного регулируем направление движения прицела, а не его скорость, игрок ничего не заметит. Эффект зависит от расстояния между целью и игроком, ее углового расстояния от прицела, наличия других целей, уровня сложности, используемого оружия и прочих факторов. И эти три варианта являются лишь примером. В различных играх используются и многие другие подсистемы.


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.