Ландшафт разработки

Вернуться к оглавлению

Обычно под разработкой игры мы понимаем процесс создания, когда разработчик представляет игру в своем воображении и проецирует ее в реальность. В этой статье я предлагаю альтернативную метафору. Что если разработка — это не процесс создания, а процесс исследования?

Вавилонская библиотека

В рассказе Борхеса «Вавилонская библиотека», написанном в 1941 году, представлена вселенная в виде огромной библиотеки, в которой есть все возможные книги. В ее бесконечных стопках можно найти книгу с любой комбинацией букв, заполняющих 410 страниц. Там есть книга с 410 страницами, заполненными буквой «а». Есть книга, в которой все буквы — «а», кроме последней; последняя — «б». И так далее. Книги содержат все комбинации букв. Так как любая возможная книга представлена, то не может быть написано ничего, чего уже нет в библиотеке. Основная часть книг в библиотеке — просто случайный набор букв, который ничего не значит, полная белиберда. Но при этом на полках прячутся книги обо всем на свете: здесь есть поминутная история будущего, биографии архангелов, правдивые каталоги библиотеки, тысячи и тысячи ложных каталогов, доказательства ложности этих каталогов, доказательство ложности правдивых каталогов, гностическое евангелие от Василида, комментарии на это евангелие, комментарии на комментарии на это евангелие, правдивая история вашей смерти, перевод каждой книги на все языки, интерполяции всех книг во всех книгах.

Вавилонская библиотека не беспредельна. То, как алфавит может быть представлен в книге на 410 страницах, является конечной величиной. Это число намного больше количества атомов во вселенной, но оно не бесконечно.

Библиотека игр

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

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

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

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

Ландшафт разработки

Чтобы придумать, как нам исследовать библиотеку игр, мы применим еще одну метафору. Представьте себе, что схожие варианты размещаются рядом друг с другом. Два разных StarCraft 2, которые отличаются только одним параметром, непосредственно примыкают друг к другу. Варианты StarCraft 2 с разными патчами лежат в одной области (но не примыкают, так как они отличаются несколькими параметрами). Еще немного в стороне находятся все исходные версии StarCraft со всеми различными патчами. Они похожи на StarCraft 2, но не так, как различные патчи StarCraft 2 похожи между собой. Еще дальше можно найти другие стратегии в реальном времени, такие как Age of Empires. Совсем далеко, в совершенно другом разделе библиотеки, можно найти варианты Joust, Donkey Kong, Halo и MineCraft. Эти игры лежат далеко от StarCraft 2, потому что они сильно отличаются друг от друга.

Мы можем представить, что все эти варианты являются своего рода ландшафтами. Вы можете стоять на вершине Doom II, сделать один шаг и встать на вершине Doom III, где зомби наносят чуть больший урон. Немного пройдя вперед, можно найти изначальный «Дум». Пройдя дальше, можно найти Quake, а затем Unreal. Пока вы передвигаетесь по ландшафту, те варианты, на вершине которых вы находитесь, постепенно трансформируются с каждым вашим шагом. Любая точка этого ландшафта соотносится с каждой игрой, которая может существовать.

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

Ландшафт вашей разработки может отличаться от моего, если у вас другая цель. BioShock может быть высоким пиком для меня, если моя цель — создание эмоционально интенсивной, живописной игры с быстрым сюжетом для одного игрока. Но если вы пытаетесь создать обычную детскую игру-мультиплеер, то BioShock для вас глубокая впадина, так как не отвечает вашим целям.

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

Следующее качество этого метафорического ландшафта — это то, что он полностью залит туманом. Трудно разглядеть что-либо, кроме того места, где находишься. Часто туман настолько густой, что непонятно, куда приведет следующий шаг: наверх или вниз по склону. И почти невозможно увидеть горы в отдалении, только совсем расплывчато. И этот ландшафт вы, разработчик, должны исследовать. Ваша задача — найти эти высокие горные пики идеального варианта среди туманных впадин скуки. У вас нет карты, и вам почти ничего не видно.

Но у вас есть один инструмент — альтиметр, который указывает, насколько высоко вы находитесь. Этот метафорический измеритель высоты олицетворяет данные, которые вы получаете при игровой обкатке — тестировании. Реакция игроков во время игрового тестирования подсказывает вам, находитесь ли вы на вершине или во впадине. Но это дорого и медленно, приходится останавливаться и тратить на это много времени. Поэтому этот альтиметр так ограничен и неточен. Хорошие навигационные данные трудно достать.

Итак, оказавшись в подобной ситуации, какой метод мы будем использовать для поиска вершин?

Стратегии поиска

Все то, что мы делаем, чтобы улучшить разработку игры, можно сравнить с методом поиска вершин в ландшафте разработки.

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

Можно совершать восхождение на гору быстрее. Можно ломиться вперед по всем возможным вариантам, только слегка их тестируя, даже толком в них не разобравшись. Это даст нам более быстрое продвижение вперед с меньшим тестированием.

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

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

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

Форма ландшафта

Ключ к оптимизации наших методов изучения ландшафта — в понимании его формы.

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

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

Во-вторых, в нашем ландшафте много вершин. Некоторые расположены рядом друг с другом: Halo — это хорошая стрелялка, чтобы поиграть с друзьями, так же как и Call of Duty 4. Эти две вершины соответствуют по большей части одним и тем же целям, но все же отличаются друг от друга (хотя и не настолько, чтобы находиться на разных континентах). Некоторые вершины расположены далеко друг от друга: Age of Empires соответствует многим целям Halo, но находится на совершенно другом континенте.

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

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

Совокупность стратегий для конкретного разработчика зависит от его творческих целей и ситуации. В начале процесса разработки делайте большие прыжки, для того чтобы обнаружить горные хребты. Позже двигайтесь вверх по склону, оптимизируя свою ситуацию. Если вы в районе, полном горных пиков, где любое небольшое изменение приведет к значительному эффекту, то двигайтесь медленно. Если вы на большом плоском плато, двигайтесь быстро. Основная исследовательская группа разработчиков может послать небольшой отряд на разведку ближних и дальних земель. Это похоже на создание отдельных команд, работающих над прототипами, — так сделала компания Double Fine при изобретении основной механики Stacking, Iron Brigade и других игр.

Метафора

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

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

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

Текст был создан под влиянием главы о ландшафтах бизнес-планов из книги Эрика Д. Бейнхокера «Происхождение благосостояния: эволюция, теория сложных систем и радикальный пересмотр экономики», выпущенной издательством Гарвардской школы бизнеса в 2006 году, начиная со страницы 233.

Читать оригинал на английском.


Добавить отзыв

Меня зовут:
Моя почта:
Отзыв:
Заполняя заявку, я лично принимаю решение о предоставлении своих персональных данных и даю согласие ООО "ОГОГО" на их обработку свободно, своей волей и в своем интересе с целью приобретения товара. Подтверждаю, что моё согласие на обработку персональных данных дано конкретно, информированно и сознательно. Мною изучена Политика ООО «ОГОГО» в отношении обработки персональных данных, и я принимаю её условия.
Олег
7 мая 2017
Большое спасибо за переводы и публикации!
Нужные и ценные материалы.
Ответ:
:)

Перезвоните мне

Мой кабинет

Восстановить пароль

Электронная почта

Мой город:

Пароль отправлен

Письмо с новым паролем отправлено на указанную почту

Спасибо!

Ваш комментарий отправлен

Спасибо!

Мы вам перезвоним

Отправляем ссылку на почту:

Моя почта:
Мы отправим только ссылку и ничего кроме ссылки

Ссылка отправлена

Письмо с ссылкой отправлено на указанную почту

Магазины в Москве