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

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

Если бы разработчик игры Magic Ричард Гарфилд решил ограничить игрока тысячей жизней, оставить уровень выносливости существа в пределах от 25 до 50, а игрокам разрешалось бы иметь не более 3 карт земли одновременно, то взаимодействия были бы нарушены. Для преобразования чисел потребовались бы утомительная математика и сложное округление, и игра утратила бы свою элегантность.

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

Механика, которая используется повторно, «пахнет» элегантностью.

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

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

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

Механики, которые не накладывают ограничений на содержание, воспринимаются как элегантные.

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

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

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

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

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

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

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


Рекомендуем почитать
Изучаем 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-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.