Идея создания текстовых
приключенческих игр с нуля все еще популярна среди молодых авторов, желающих,
чтобы в их игре было все сделано ими самими. С первого взгляда, это вполне
обоснованный подход: кто как не автор синтаксического анализатора (парсера)
знает всю его подноготную?; отпадает необходимость
в изучении довольно объемных стандартных библиотек RTADS или Inform. Однако,
считая, что написание собственного парсера будет вполне посильным делом для начинающего
программиста, автор игры, по-видимому, не задумывается, что системы написания
текстовых приключенческих игр TADS и Inform появились
не на пустом месте и создавались не без причины. В течение двух десятилетий до создания
систем TADS и Inform вполне
серьезные программисты создавали свои собственные парсеры,
улучшали и использовали их, пытаясь достичь совершенства. Удавалось ли им это?
Я бы сказал, что с различным успехом -- очень многое
зависело от таланта программиста и от труда, вложенного в парсер.
В большинстве же своем эти парсеры понимали только
команды из двух слов, т.е. «взять палку», «осмотреть камень», «открыть ящик».
Да, большинство команд в текстовой игре и не требуют большего,
однако, когда игрок хочет, например, «положить большой камень на серый стол» могут
возникнуть проблемы. Проблемы могут возникнуть и в случае, если камень у игрока
не один, а столов в текущей локации несколько. (Подобных несовершенств в самодельных парсерах
множество, я не буду их все перечислять.) Выход из этих ситуаций один -- автор
должен сознательно ограничивать свою фантазию и творческие замыслы так, чтобы
они «поместились» в весьма тесном мирке их самодельного парсера.
Однако, я не считаю, что основной недостаток таких парсеров в неспособности
_понять_ сложные команды -- этого,
в конце концов, можно и избежать, заведомо ухудшая качество создаваемой игры
еще на этапе планирования. Проблема, по-моему, в том, что автор _игры_ -- а
он автор прежде всего _игры_, а не
синтаксического анализатора -- тратит свое время на борьбу с довольно
специфическими проблемами, связанными с переносом вводимых игроком команд в «мозг»
игры, заставляя его адекватно реагировать на них. Естественно, терпение автора
и объем располагаемого им времени не безграничен. В результате, очень вероятно,
что автор будет вынужден, с одной стороны, оставить парсер
на неидеальном уровне, и, с другой стороны, игра также будет менее
отшлифованной. Здесь, по-моему, срабатывает простая психологическая ловушка по
типу «да черт с ним, и так сойдет -- играть ведь
можно... ну и все». Таким образом, автор игры, в качестве парсера
выбирая самодельный, не догадывается, что ловушка может захлопнуться еще до
начала создания игры. Нет, я не утверждаю, что самодельный парсер
вообще не может быть исключительно хорошим и отшлифованным, но человеческая
психология (частью которой является лень) может взять верх.
Больше всего в самодельных парсерах меня раздражает то, что в них нет той привычной
функциональности, которую игры, созданные на основе RTADS или Inform получают «бесплатно».
Я говорю о таких моментах как,
логичных реакциях на стандартные команды игрока вроде «толкнуть стол» или
«взять руКЧу». Отсутствие таких, казалось бы,
несущественных мелочей может разрушить игру, сделав ее играбельной
исключительно для автора. Впрочем, как я писал выше, все зависит от конкретной
реализации парсера.
Итак, что же представляет
собой игра «Кукша из Домовичей»,
чей обзор вы собственно и пытаетесь прочесть, если бы я не отходил от темы? «Кукша» --
это довольно легкая (или
скажем «несерьезная») приключенческая игра. Действие происходит в году...
впрочем, вот цитата из игры:
Скифия. Несколько
веков до возникновения Киевской Руси. Скифские деревни страдают от набегов
варягов. Они грабят жителей и требуют дань. И нет силы, которая может их
остановить...
И далее по тексту:
Ты - скиф по имени Кукша.
Тебе 16 лет. Уже два года ты сирота. Твой отец погиб на охоте, а мать
скончалась вскоре после этого. Сейчас ты лежишь в углу своего дома...
...Было раннее утро, когда варяги пришли в
твою деревню - Домовичи. В ней испокон веков жили
потомки Домового - великого воина, защищавшего Скифию.
Они врывались в дома и грабили их. Распахнув дверь, в твою избу вломились два
вооружённых варяга. Один из них отшвырнул тебя на пол. Поискав чего-нибудь
ценного и не найдя, они с ворчанием вышли вон из избы в поисках наживы.
Ты поднялся на ноги. Снаружи стало тише.
Видимо, варяги уже ушли. В твоём сердце закипает ненависть, а в голове - жажда
поквитаться с варягами.
По сути своей игра является короткой сказкой, что, учитывая, некоторую
несерьезность изложения, создает милый симпатичный антураж. В этом, я считаю,
заключается главное преимущество данной игры. Эта сказка, вполне в русских
традициях, предлагает нам принять участие в спасении деревни от врагов.
Естественно в одиночку и, по сути, совершенно не имея понятия с чего бы начать.
(Илья Муромец, как сейчас помню, до 30-ти тоже особо не утруждался спецподготовкой
к отражению атак агрессоров.) Впрочем,
направление деятельности появляется вскорости -- как
же без этого? -- неужто добру молодцу никто не поможет?! Как говорит один
персонаж в игре: «Для хорошего человека за деньги ничего не жалко».
Итак, с сюжетом все ясно -- необычайно захватывающе, грандиозно,
но, вместе с тем, по-домашнему и ненавязчиво, с юмором. Перейдем к техническим
деталям, которые, являются неотделимой частью игры -- напомню,
что IF игры (или по-русски «текстовые приключенческие игры») являют собой
сплав программирования и литературы.
К сожалению, парсер данной игры не блещет
функциональностью и отшлифованностью. Впрочем, со своими
задачами он справляется -- в конце концов, я смог
закончить игру, но впечатление, конечно, было несколько подпорчено. Что же в
нем плохого? «Мне не понятно.» -- эту фразу я видел не
раз и не два. Примитивная опечатка при вводе, и я набирал всю команду сначала,
в этот раз, проверив ее на грамматические ошибки, перед тем как нажать на «Enter».
Довольно ограниченный словарь допустимых команд не особенно помогал с
уменьшением неудовольствия от общения с парсером.
Честно говоря, борьба с синтаксическим анализатором, непонимающим именно _мою_ трактовку
команды не является моим излюбленным типом пазлов.
Очевидно, что многих подобных проблем автор игры мог бы избежать, если бы
пользовался «нормальным» средством создания текстовой приключенческой игры.
В связи с ограниченностью парсера, разговор с НГП (Не
Главными Персонажами) ограничен одним вариантом диалога, срабатывающим на
команду «говорить с ...». Стоит обратить внимание и на
то, что в некоторых локациях автор забывал указывать направление выхода из нее --
еще бы -- игрок именно оттуда и пришел, он _должен_
помнить, откуда и куда он движется. Впрочем, эти мелкие недостатки были вполне
терпимыми и не вызвали особых у меня проблем.
Что же имеем в итоге: с одной стороны, хорошие сюжет и атмосфера игры, неплохо подходящие
друг-другу. С другой: неуклюжий парсер, встающий на пути игрока. Могла бы эта игра
получится лучше? По-моему, да. Как? См. выше.
(c) 2004, Стас Старков <stas_@fromru.com> Все права защищены.
Если Вам есть, что показать миру (или сказать нам), пишите:
admin@ifiction.ru
ВНИМАНИЕ! Все материалы, размещенные на сайте, являются интеллектуальной собственностью их авторов.
Свободное использование материалов возможно только при согласии авторов и соблюдении их прав
(см. «Закон РФ об авторском праве и смежных правах»).