Авторизация
×

Логин (e-mail)

Пароль

Интерактивные истории, текстовые игры, квесты и визуальные новеллы
Гиперкнига

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

автор: Грэхем Нельсон

Искусство Adventure.
Часть 5-я. Отделка и глянец

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

Присуждение очков

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

Beginner (0), Amateur Adventurer (40), Novice Adventurer (80), Junior Adventurer (160), Adventurer (240), Master (320), Wizard (360), Master Adventurer (400), Beta-tester (401)

в котором, хотя ранги представляются круглыми числами, они наверняка подобраны так, чтобы соответствовать игре. Другой хорошей деталью может быть наименование рангов как профессий игрока в игре – так, музыкант может начинать "Новичком", и пройти через "Вторую скрипку" к "Дирижёру". Неплохой пример есть в детективной игре "Sherlock", где наименьший ранг – при нулевых достижениях – "Главный управляющий Скотленд-Ярда".

Среди возникающих вопросов есть: обязательно ли любой победивший наберёт 400 очков из 400 (этого сложно достичь, если ценятся даже мелкие детали)? Будет ли прошедший в финальную часть игры иметь 360 очков, получив звание "Волшебника" ("Wizard")? Действительно ли ранг "Любитель" ("Amateur") соответствует переходу игрока из пролога в центральную часть?

Так за что даются очки? Понятно, что за решение основных головоломок. Но как насчёт менее важных, стоящих-по-дороге-к? В этом пункте, как можно догадаться, игры различаются во мнениях. В "Zork III" можно набрать всего 7 очков, по количеству главных головоломок (хотя достижение 7 очков не означает конца игры). В "The Lurking Horror" за решение каждой из 20 задач присуждается по 5 очков, то есть, в итоге получаем максимум 100.

Как альтернатива, есть усложнённый вариант. Здесь очки присуждаются по два-три за небольшие решения, и гораздо больше – за найденные сокровища: серебряные слитки ценятся в 5 очков, золотые амулеты – в 10, платиновые браслеты – в 20. Сокровища оцениваются дважды: один раз при поднятии, и еще раз при выкладывании в безопасное место – в трофейную сумку в "Zork I" или в чемодан в игре Level 9 "Dungeon" (которая не имеет никакого отношения к адаптации "Zork I" с тем же именем). Более того, по одному очку игрок получает за посещение в первый раз любой комнаты, и еще одно – за несохранение игры на всём её протяжении – довольно подлая уловка.

В некоторых играх (таких как "Acheton") счёт может уменьшаться, когда игрок просаживает время, ничего не делая. Некоторых это постоянно раздражает (хотя другие могут сказать, что это не так уж и плохо).

Раньше игры иногда имели "Последнее Хитрое Очко" – единственное очко, присуждавшееся за совершенное нелогичное и неочевидное действие, вроде прихода в определённое место Пиратского Лабиринта и выкидывания ключа. Слава Богу, эта привычка ушла в прошлое.

Неправильные догадки

Для некоторых загадок игрок может найти своё, безупречно правильное, решение. Хороший стиль – запрограммировать два или более решений к одной головоломке, если это не влияет на дальнейший ход игры. Но даже если и влияет, по крайней мере стоит что-нибудь вывести в ответ на удачное действие (попытка пересечь вулкан на волшебном ковре в "Spellbreaker" – как раз такой случай).

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

Одни из причин, почему "Zork" привлекал внимание игроков (и почему он потребовал в десять раз больше кода, чем исходный "Adventure") – то, что в нём имелась целая куча шутливых ответов на возможные, но невыполнимые, действия игрока.

Мой любимый ответ, от приведения которого я не могу удержаться, таков:

Вы несётесь к земле, ветер свищет мимо вас.
>восток
Вниз будет логичнее.

("Spellbreaker". Хотя я также рекомендую попробовать взять морскую змею (sea serpent) в "Zork II"). Это хороший пример, поскольку именно от нудных правил такого типа (нельзя двигаться, находясь в падении) большинство дизайнеров обычно пытаются избавиться как можно быстрее и не используют воображение.

Другим источником неправильных догадок может быть словарь. Хорошая игра должна понимать около 1000 слов – если много меньше, то возможно, что где-то не хватает синонимов; много больше – понаписали лишнего. Запомните, что игроки не знают изначально, что в комнате является уместными или неуместными предметами. К примеру:

Старинный винный погреб

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

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

Это не та вещь, которая понадобится вам по ходу игры.

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

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

Подсказки и награды

Хорошая игра (написанная не для соревнования) обычно будет содержать службу подсказок, как было в играх Infocom под конец её работы. Большинство игроков действительно намертво застрянут в процессе игры раз-два (но место застревания может различаться), и было бы неплохо их спасти из такой ситуации (если не так, то, по крайней мере, снизить число входящих e-mail с просьбами о помощи). Есть два способа предоставлять подсказки:

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

В конце игры, когда она уже пройдена, есть ли что ещё сказать? В некоторых играх – да. В своих последних воплощениях (увы, не включенных в коллекцию "Lost Treasures of Infocom") "Zork I" предлагал победителям доступ к системе подсказок в строке RESTART, RESTORE or QUIT. "Curses" идёт дальше – там есть небольшой экскурс по странным вещам, которые могут быть сделаны в игре. (Кроме того, это весьма неплохой шанс для автора выделиться).

Пользовательский интерфейс и всё такое

Нет, не окна и выпадающие меню, но пара дополнительных (мета-) команд, которые предназначаются программе и не представляют собой действия игрока в игре. Конечно,

SAVE, RESTORE, RESTART, QUIT

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

Ваш счёт только что увеличился на десять очков.

и команды для вывода последовательности действий на принтер или в файл – это особенно полезно при получении замечаний от испытателей игры.

UNDO сложно реализовать, но стоит того. В "Curses" UNDO может восстановить игрока даже после смерти (хотя это не отражено в игре; Смерть, где есть такая команда?).

Сокращения (особенно "g" для again, "z" для wait, "x" для examine) теперь считаются неотъемлемыми.

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

Единственная инновация, стимулированная автором в этом плане – снабдить игрока командой "full score", которая вспоминает, как игрок заработал каждое очко и выводит вписок на экран; снабдить игрока переключателями "inventory wide" и "inventory tall", переключающие режим отображения списка несомых предметов, что должно помочь игрокам с малым числом строк на экране; и предоставить команды "objects" и "places":

>objects
Предметы, которые вы брали:
мятый обрывок бумаги (несёте)
электрический факел (несёте)
шоколадное пирожное (несёте)
птичий свисток (в Старой комнате)
пакет в подарочной упаковке (потерян)

>places
Вы посетили: Чердак и Старую комнату.

Возможно, эти команды и приживутся (они уже есть в компиляторе Inform).

Отладка и тестирование

Каждому разработчику требуется несколько "секретных" отладочных команд (всё еще присутствующих в паре игр от Infocom, к примеру) для перемещения игрока по карте или заполучения любого объекта в игре. Поскольку отладка никогда не заканчивается, никогда не станет пора убирать эти команды – вместо этого их можно защитить паролем в выпускаемых на свет версиях. (Система Inform реализует это как набор отладочных глаголов, которые включаются только если соответствующий ключ был указан при компилировании).

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

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

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

Ошибки обычно легко исправляются: в большинстве они – просто небольшие промахи. Очень маленькая их часть требует больше пяти минут для исправления. Особенно часто встречаются:

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

Игровое тестирование

Дни такого тестирования изводят. Первым делом следует найти несколько "друзей", и дать им поиграть в вашу игру немного. Заглядывайте им через плечо, нервно записывайте на бумажку, издавайте звуки отчаяния или расстройства – но не говорите ни слова. Заставляйте себя ничего не объяснять и не защищаться, как бы ни было сильно искушение. Ожидайте упрёков в свой адрес, и терпеливо их переносите. Цитируя Дэйва Леблинга (из тестирования "Suspect", опубликовано в статье в "New Zork Times"):

> БАРМЕН, ДАЙ МНЕ ВЫПИТЬ
"Извините, я был нанят только смешивать напитки, и ничего больше".

> ТАНЦЕВАТЬ С АЛИСИЕЙ
Какую Алисию вы имеете в виду, Алисию или пальто?

Тело Вероники упало за стол, задушенное удавкой.
> ГОВОРИТЬ С ВЕРОНИКОЙ
Тело Вероники внимательно слушает.

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

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

Игровое тестирование выдаст где-то сотню или около того ошибок, в основном совершенно тривиальных и легко исправляемых. Однако, ожидайте пары катастроф.

Хорошие испытатели ценятся на вес золота. Они всё делают не так, как вы рассчитывали. Цитируя Майкла Киньона, чьё влияние чувствуется почти всюду в "Curses",

Испытатель с новым действием похож на ребёнка с молотком: любая проблема кажется ему гвоздём.

И как же ещё вы можете узнать, даёт команда "погладить попугая" какой-нибудь результат или нет?

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

Она никогда не закончена

Игры никогда не готовы. Всегда найдётся ещё одна ошибка, или ещё одно сообщение, которое может быть переписано, или еще одна небольшая реплика для вставки. Отладка – созидательный процесс, она добавляет игре жизни. Процесс игрового тестирования увеличил размер "Curses" где-то на 50%: другими словами, более трети игры посвящено посторонним вещам, тупикам, шуточным репликам и тому подобному.

Приблизительно 300 ошибок в "Curses" было обнаружено с тех пор, как она была выпущена на публику два года назад (я получил по этому поводу более тысячи e-mail писем), и это было после "окончания" игрового тестирования. Где-то раз в неделю я вносил исправления, и примерно раз в три месяца я выпускал исправленную версию. Так что, множество людей, предлагавших небольшие улучшения и исправления, сильно помогли игре – вот почему в титрах так много имён.

Послесловие

Боб Ньюэлл недавно спросил, почему старые, грубые, простые игры Скотта Адамса всё ещё захватывают воображение многих людей. Частично – ностальгия по "любимым книгам детства", конечно. Но ещё и чувство обладания миниатюрным произведением искусства, Китайской коробочкой-головоломкой с мастерски вырезанными кусочками.

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

Однако для меня, думаю, и потому, что каждый день кто-то новый может войти в мир игры, как это сделал я, случайно сев за мэйнфрейм Digital в 70-х, пройдя через тёмную цепочку проходов грязнее моей спальни, так что свет миров не скрылся от моих глаз.

Спасибо Сергею Симоновичу за перевод 1995-го года (чья работа хоть и была неудовлетворительной для такого монументального труда, как этот, но помогла в переводе некоторых фраз) и Старкову Стасу за перевод "Билля о правах", откуда также была заимствована пара предложений.

Источник: http://ifwiki.ru
Текст доступен в соответствии с лицензией Attribution-Noncommercial 3.0 Unported