10 шагов к дизайну замечательной игры (http://taplap.ru/articles.php?op=show&aid=58) Отправлено: Chipollino Автор: C.E. Forman, перевод Ton Fireball 2003-02-01 14:27:51 10 шагов к дизайну замечательной игры автор К.Э. Форман (C.E. Forman), перевод Ton Fireball (fireton@mail.ru)
Вы прошли все игры, выпущенные когда-либо Infocom. Вы скачали бесчисленное множество текстовых игр из Интернета в отчаянных попытках утолить ненасытную жажду к IF, но этого было недостаточно. Поэтому вы решили сделать последний шаг - написать свою собственную игру. Но откуда вам знать, что она понравится другим людям? Как вам избежать тех ошибок, которые вы встречали в играх, переигранных вами за много лет? Каковы качества «хорошей» текстовой приключенческой игры?
Вот в чем я и хочу вам помочь. Я проанализировал мои любимые произведения из жанра текстовых игр, определяя почему именно они стали моими любимыми, и собрал список их общих характеристик, которые начинающие авторы могут использовать как руководство.
Примите к сведению, эта статья - не руководство по программированию игр. Эти десять советов относятся исключительно к дизайну игры и к проработке ее сюжетной линии. Моей задачей было указать на ошибки, которые часто делают начинающие авторы и определить методы, благодаря которым можно избежать тех же промахов.
Возможно вы спрашиваете себя: «Кто это такой вообще? Я никогда не слышал об этом парне за всю мою жизнь!» Ну да, ну да... Я стал фанатом текстовых игр начиная с семилетнего возраста и даже написал пару собственных. То что вы не видели нигде моего имени означает, что мои игры пали жертвой большинства (если не всех) проблем, на которые я указываю в этой статье. (Конечно, я использовал Бейсик как единственный язык программирования. Плюс, мне было тогда 12 лет.) Сейчас я работаю над парой новых игр, и, возможно, в этот раз у меня выйдет получше. Надеюсь, и вы сможете учиться на моих ошибках.
1. Разработайте хороший парсер
Это единственный наиболее важный элемент в любой работе над текстовыми играми. К сожалению, именно им чаще всего пренебрегают начинающие. Даже наилучшим образом спланированная и сделанная игра не удержит внимание игрока, если у него будут проблемы объяснить программе, что он хочет сделать. В самых ранних тестовых играх, таких как «Adventure in Colossal Cave» и серия игр Скотта Адамса, использован грубый парсер типа «глагол+существительное», в котором команды могли состоять лишь из двух слов. Из-за ограниченности тогдашних компьютеров, общий словарь парсера был часто тоже очень ограничен, что оставляло чувство неудовлетворенности у игроков.
Парсер ZIP (Zork Implementation Parser), который Infocom представила в конце 70-х, является признанным стандартом для парсера. Если вы используете такое средство разработки IF как Inform или TADS, то разработка хорошего парсера не является проблемой. Если же вы решили написать свой собственный парсер, то вооружитесь хорошим словарем синонимов и подберите 2-3 для каждого глагола и существительного. Пусть лучше загадки в самой игре будут вызовом для играющего, не заставляйте его играть в «угадай глагол».
Кроме того, чем больше возможностей будет встроено в ваш парсер, тем лучше. Команда “UNDO”, встроенная система подсказок, возможность сконфигурировать функциональные клавиши для ввода команд и автоматическое построение карты - все это поможет избежать разочарования со стороны игрока.
2. Проработайте структуру загадок
Не заставляйте игрока бесцельно слоняться от одной загадки к другой, задерживая его прогресс в игре полностью до тех пор, пока он не решит единственную загадку, которую и можно решить в настоящий момент. Разделите структуру загадок на ветки и сделайте ее настолько нелинейной, насколько это возможно. Переплетайте загадки друг с другом и позвольте игроку пройти приключение разными путями. Также, не заставляйте игроков решать загадки все время в одном и том же порядке, дайте им возможность быть гибкими. Единственная точка в игре, где возможен лишь один путь - это заключение, где все ветки загадок сходятся воедино, формируя последнее испытание.
Связь между загадками также важна. Убедитесь, что каждая из загадок «подходит» к другим. Если у вас есть в запасе необычайно трудная загадка, но вы не можете логически вплести ее в повествование, то не вставляйте ее в игру лишь для того, чтобы использовать идею. Сохраните ее для другой игры, где она будет более к месту. В этом смысле, одним из самых больших злоупотреблений являются лабиринты. Часто авторы просто впихивают лабиринт в игру, чтобы сделать ее потруднее, несмотря на то, что это совершенно не к месту и не имеет с игрой в целом никакой связи. Построение карт является очень нудным занятием, и лабиринты не одобряются в современных текстовых играх, если только они не воплощают изощренный сюжетный ход (как катакомбы в «Leather Goddesses of Phobos») или могут быть пройдены без построения карт (как мокрые туннели в «The Lurking Horror»). В общем, продумывая игру, вы должны спросить себя: «Этот лабиринт связан с игрой каким-то образом, или он находится здесь только чтобы быть?» Если последнее, то вам, скорее всего, нужно выкинуть его.
3. Сбалансируйте сложность загадок
Сколько удовольствия пробираться через всю игру только для того, чтобы обнаружить, что последнее испытание - самая простая загадка в истории вселенной? В большинстве случаев, лучшие приключенческие игры - это те, в которых сложность загадок возрастает по мере прохождения. Вначале все довольно просто, но по мере погружения в игру трудность загадок постепенно возрастает. Не поймите неправильно, вполне можно вставить трудную или скрытую загадку (или две) в начальные стадии игры, смысл в том, чтобы не перегрузить игрока в самом начале игры.
Конечно, основным фактором того, насколько трудными будут загадки, будет то, насколько сложной вы решили сделать игру в целом. Если вы пишете для опытных игроков, то придумывайте загадки соответственно. Если ваша «аудитория» - новички, то вставьте кучу простых, одно или двухшаговых загадок. Во всех случаях, после особенно трудной для решения загадки наградите игрока несколькими загадками попроще. Вы удивитесь, если узнаете, сколько игроков теряют интерес к игре, если трудность загадок в ней не сбалансирована правильно.
4. Делайте свой мир и загадки логичными
Это, в принципе, всем понятно, но иногда не принимается в расчет. Если вы пишете игру в стиле научной фантастики, то уделяйте внимание физическим законам. Не позволяете игроку выходить в открытый космос и выживать там без скафандра. Реализм является меньшей проблемой в фантазийных играх, т.к. там можно что-то объяснить использованием магии. Однако, смысл в том, чтобы все имело какой-то определенный смысл. Особенно это важно в смысле загадок. Избегайте принуждать игрока делать вещи, которые не имеют за собой ни цели, ни смысла. Чем больше реалистична приключенческая игра, тем больше она притянет игроков.
5. Будьте описательны
Вы создаете целый другой мир, так почему бы не дать игроку насладиться его красотой? Сколько раз вы играли в игру с описанием локаций типа «Вы в лесу», «Вы у подножия высокого утеса», «Вы у входа в пещеру» и т.п.? Термин «интерактивная литература» не случаен, игроки на самом деле исследуют что-то вроде литературного произведения, похожего на хороший роман, и делают свой вклад в повествование. Поэтому позвольте игроку увидеть мир, который вы создали, точно также, как ваши любимые писатели дали вам увидеть их миры.
Постарайтесь, однако, не перегружать игроков описаниями. Если вы дадите им мало возможности общаться с миром игры, они подумают, что точно также они могли бы почитать книжку. Не увязайте в описаниях. Обычно половина экрана - это абсолютный максимум для описания локации или объекта, и превышать его следует лишь в особых случаях. Однако, если какая-либо загадка требует много текста для того, чтобы игрок смог понять, что от него требуется, то один-два экрана текста будет вполне приемлемым. (Хорошим примером такого случая является ящик зеркал в «Zork III».) Кроме того, не заставляйте игрока читать тот же самый текст снова и снова, если только он сам этого не захочет. Убедитесь, что ваш парсер поддерживает изменение длины описания локаций. Использование фраз типа «Вы в лесу» когда игрок во второй раз попадает в то же самое место вполне приемлемо. (Только будьте уверены, что он сможет получить лучшее описание, если захочет.)
Здесь же мне хотелось бы сделать одно замечание на эту тему. Большинство авторов, в процессе создания хорошего описания любят включать несколько объектов в каждую локацию (например, в таверне может быть очаг, бар и несколько столов со стульями). Нет ничего более раздражающего, чем, набрав «ОСМОТРЕТЬ СТУЛЬЯ», получить «Я не знаю слова «стулья». Это гарантированно разбивает фантазию и уничтожает надежду на то, что игроки действительно проникнутся игрой. Сделайте так несколько раз и вы оттолкнете их навсегда. Если вы помещаете объект в описание локации, то позвольте игроку взаимодействовать с ним, хотя бы ограниченно. Достаточно даже просто сообщения «В стульях нет ничего особенного».
Кстати, я думаю, что это является самой большой проблемой Zork-based MUD, в которую я как-то играл. Игроки видят название «основанная на Zork» (Zork-based) и они входят в телнет, ожидая тот же уровень реализма, который дал нам Infocom. И, к сожалению, очень редко получают его (если вообще получают). У меня самого была возможность испытать трудность просто пытаясь взаимодействовать с тем, что , как заявляла игра, было на одной локации со мной, и я думаю, что это скорее правило, чем исключение.
6. Будьте справедливы к игроку
Я знаю, знаю. Жизнь несправедлива. Никогда не была и никогда не будет. Но приключенческие игры - не реальная жизнь, а форма развлечений. И игроки смогут развлекаться лишь в случае, если с ними обращаются справедливо. Здесь я собрал несколько общих замечаний, следовать которым вам необходимо, если вы хотите, чтобы так оно и было в вашей игре:
Не позволяйте игре войти в состояние, из которого пройти ее невозможно, не дав при этом игроку определенного к тому знака. Как пример рассмотрим свиток KULCAD в игре «Enchanter» от Infocom. (Внимание! Дальше идет спойлер...) Предполагается, что вы используете это заклинание для того, чтобы развеять иллюзию бесконечно закрученной винтовой лестницы, и это - единственный способ преодолеть это препятствие. Однако, вы также можете использовать свиток с KULCAD чтобы избавится от охраняемой двери и от гордиева узла на шкатулке с самоцветами. Если же вы сделаете либо одно, либо другое, то свиток исчезает, и вы теряете возможность пройти игру. Несмотря на возможное разочарование, я все равно не могу назвать это несправедливым, т.к. если вы использовали свиток в любом месте, кроме лестницы, то появляется ваш учитель Бельбоз и предупреждает вас, что злой Крилл теперь знает о вашем присутствии. Вы получаете определенную подсказку, что может существовать лучший путь. С другой стороны, я слышал массу жалоб по поводу игры «Curses» из-за того, что вы можете в ней неосторожно сделать что-то, что лишает вас шанса пройти игру и при этом не получаете никаких подсказок на этот счет. (С другой стороны, сбросить все свои пожитки со скалы - не самый умный ход, и игрок может это понять и без подсказок. Объясняйте им, что они напортачили, только в том случае, если существует шанс, что они не смогут это го понять сами.) Между прочим, хороший способ позволить игроку продолжить игру, если он потерял нужный предмет, - это позволить ему получить его заново в том месте, где он его взял в первый раз. Например, позвольте ему сорвать другое яблоко с дерева, если он съел или потерял первое. Однако, если мы имеем дело с уникальным предметом, таким как свиток KULCAD, то такое решение непригодно. Здесь вам придется решать самостоятельно.
Не заставляйте игрока быть слишком предусмотрительным и благоразумным. Управление инвентарем является ответственным моментом в приключенческой игре, которая ограничивает количество предметов, которые персонаж может нести на себе. Часто игрок проходит в какую-нибудь локацию, имея возможность нести лишь максимум, предусмотренный в игре. Очевидно, если он идет в подземелье, то ему понадобится источник света, оружие и, возможно, пища и вода. Но если ему нужно будет что-либо менее очевидное, то вам необходимо дать ему заранее намек на это. Конечно, игрок может всегда загрузить сохранение, но долго идти назад через уже пройденные локации весьма утомительно, и, кроме того, управляться с большим количеством сохранений довольно трудно. Самым лучшим будет дать игроку общую идею о том, какие предметы взять с собой, а какие оставить. Не позволяйте ему подбирать и выбирать слишком много. Несколько очень хороших игр, из тех, что я видел, задуманы так, что инвентарь игрока управляется автоматически по мере продвижения в игре. Если, например, игрок использовал два предмета чтобы решить загадку, то это удалит их из его инвентаря. Затем он находит еще предметы и подбирает их с тем, чтобы избавится от них при решении другой загадки, и так далее. Если у вас нет предметов, которые можно использовать по-разному, то это неплохой метод.
Не перегружайте игрока в самом начале. Если у вас в игре большая область для исследования в самом начале, то мудрым будет указать игроку правильное направление, с которого необходимо начать. Игра «TimeQuest» от Legend Entertainment - лучший этому пример. При 80 различных времен и мест, в любое из которых можно попасть с самого начала, для игрока легко почувствовать некую перегрузку. Но эта игра с начала направляет вас в Рим 44 до н.э., что дает ему чувство направления и определяет его путь через игру. Вдобавок, все наиболее важные времена-места описаны в документации к игре, так что игрок знает, где находятся важные места. Это делает все проще.
Не откладывайте все поощрения на конец игры. Поздравляйте игрока, когда он решил трудную загадку, возможно давая ему новый предмет или наделяя его особой способностью. Согласно Джозефу Кэмпбелу, испытания, с которыми герой встречается, становятся все более и более трудными, но и награда становится все больше и больше. Это должно быть применимо и к приключенческим играм.
Не создавайте загадок, которые абсолютно должны быть решены за определенный промежуток времени, если вы только не дадите игроку обоснованной подсказки.
Включайте хорошие сообщения об ошибках в свою программу, объясняющие игрокам, что они делают не так, но не оскорбляйте их при этом. Будьте остроумны, но не склоняйтесь к оскорблениям.
Случайные события хороши, чтобы добавить остроты в приключенческую игру, но НИКОГДА не решайте, будет ли игрок жить или умрет, основываясь на генераторе случайных чисел. Я упоминаю об этом потому, что сделал так один раз. Игрок должен был пересечь яму, перебросив деревянную доску через нее, однако он все равно падал в половине случаев. Представляете разочарование! Единственно, где подомное может быть приемлемо - это там, где вы предусмотрите альтернативное решение, которое не будет случайным. Например в игре «Sorcerer» у игрока 10%-ный шанс успешно перепрыгнуть ущелье, но если у него есть заклинание полета, то он перебирается на другую сторону каждый раз.
Вы можете сказать: «Слушай, это моя игра и я делаю в ней все, что хочу. И плевать я хотел на то, что думают игроки по поводу ее справедливости!» Продолжайте в том же духе, и довольно скоро не будет ни одного игрока, которому хотелось бы пройти вашу игру до конца. Литературные авторы, которые не уважают своих читателей, не останутся авторами надолго. То же верно и для авторов текстовых игр. Игроки - кровь в ваших венах, они позволяют жить вашим играм. Если вы хотите писать игры лишь для собственного развлечения, то можете не беспокоиться, но вы не получите признания от этого. Относитесь к игрокам как к клиентам, которые вам платят, потому что так оно, по сути, и есть на самом деле.
7. Не бойтесь «убивать» игрока
В то же самое время, не водите игрока за ручку на протяжении всей игры. Дайте ему умереть в случае, если его действия были недостаточно умны. Умирание - естественная часть приключенческих игр. Можете ли вы представить, чем была бы трилогия Zork без постоянной опасности быть съеденным грю в темном месте? И попытайтесь вообразить «The Lurking Horror» без смерти! Что бы вы хотели увидеть в случае намеренно глупого поведения игрока - детальное, возможно остроумное, описание безвременной кончины вашего альтер-эго? Или занудное сообщение типа «Это убьет вас, поэтому я даже и пробовать не стану»? Верьте или нет, но это ЗАБАВНО - пытаться найти новые и изощренные способы прикончить своего персонажа (особенно если вы уже прошли игру). Если вы изнежите игрока чувством неуязвимости, то это лишь станет позднее причиной более сильного разочарования. Кроме того, это единственный способ избежать наказания за убийство в наши дни. Если вводите в игру команду UNDO, то не бойтесь дать игроку попользоваться этой командой.
8. Одинаково уделяйте внимание как созданию загадок, так и повествованию
Разрешение загадок - занимательное занятие, но в приключенческой игре главное, все-таки, повествование. Чем заставлять игрока бесцельно слоняться от одной проблемы к другой, разработайте сюжет, который станет развиваться по мере продвижения игрока в игре. Неожиданный поворот сюжета или появление нового NPC может оживить игру, особенно если это происходит внутри хорошей загадки. Одни лишь загадки не смогут сделать этого.
Другой момент, о котором стоит подумать, это хорошие вступление и эпилог. Некоторые авторы, может, предпочтут просто начать игру сразу после загрузки, как, например в первом «Zork». Другие же захотят последовать путем «Beyond Zork» и пропишут вводный текст на несколько экранов. В нескольких играх, таких как «Zork Zero» и «Demon's Tomb», есть даже своего рода прологи - вводные эпизоды, похожие на игру в целом, но занимающие непродолжительный период времени. Подойдет любой из этих методов.
Однако, хорошее завершение игры - вещь абсолютно необходимая. Чего стоит продираться через всю игру только для того, чтобы увидеть в конце надпись: «Поздравляю, вы победили»? Хороший эпилог должен связать все сюжетные ходы воедино, проложить путь для продолжения (если вы пишете серию игр) и оставить у игрока чувство, что он действительно чего-то добился. Хорошая концовка будет перечитываться игроками снова и снова, но я могу гарантировать, что небрежно написанный эпилог будет прочитан лишь один раз.
9. Включите в игру хорошие источники информации
Ваше вступление к игре - это все, что игроки узнают о мире игры в самом ее начале. Позвольте им исследовать этот мир, все различные детали, самостоятельно. Если мир вашей игры огромный и сложный, то создайте несколько источников информации внутри его самого чтобы помочь игроку. Вы можете сделать что-то вроде энциклопедии (как сделал Infocom в нескольких своих играх), газеты, компьютерную базу данных или другой вид хранилища информации (приходят в голову катушки с пленкой в игре «Stationfall»). В дополнение, вы можете создать одного или нескольких персонажей в игре, которые будут служить основным источником информации. Игрок сможет спросить этих персонажей о различных людях, местах или предметах в игре. Чем больше вы расскажете игроку о вашем мире, тем более сложным и реалистичным он предстанет перед ним.
10. Позаботьтесь о долголетии игры
Куча хороших приключенческих игр просто собирают пыль на полке после того, как игрок проходит их. Часто этого можно избежать (или, по крайней мере, отложить), если будет приложено немного дополнительных усилий со стороны автора. Дайте возможность решить ваши загадки несколькими путями. Подумайте о различных способах смерти или забавных происшествиях для игрока. Некоторые игры даже завершаться могут по-разному, в зависимости от действий, которые игрок сделал или не сделал. Все эти вещи сохраняют интерес игрока к игре даже после того, как он прошел ее. Серии игр «Zork» и «Enchanter» - особенно хороший пример такого подхода. До сих пор я нахожу в них вещи, о которых даже и не подозревал. Немного дополнительного программирования может хорошо повлиять на вашу игру.
Если вы видите, что допустили в своей игре любые из приведенных выше ошибок, то вам, возможно лучше ее переделать, по крайней мере, часть. Создание хорошей текстовой приключенческой игры - это долгая, сложная, требующая посвященности и крайне утомительная работа, но в конце вы будете вознаграждены. Хорошая текстовая игра всегда пользуется спросом, и я надеюсь, что сумел помочь и направить вас к успешному созданию вашей собственной.