Реализация компьютерной игры жанра квест

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,04 Мб
  • Опубликовано:
    2014-09-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Реализация компьютерной игры жанра квест

Содержание

Введение

. Анализ предметной области

.1 Индустрия компьютерных игр

.2 Жанры компьютерных игр

.3 Анализ аналогов

.4 Постановка задачи

. Анализ моделей

.1 Выбор среды проектирования и языка разработки. Доступные языки и технологии разработки ИЛ

2.1.1 ADRIFT (Adventure Developer & Runner - Interactive Fiction Toolkit)

.1.2 Hugo

.1.3 Inform

.1.4 Hydra

.1.5 TADS (Text Adventure Development System)

.1.6 URQ (Universal RipSoft Quest)

.1.7 QSP (Quest Soft Player)

2.1.8 TKR 2 (Текстовоквестовый редактор 2)

.1.9 GTI - графическо-текстовый интерпретатор

.1.10 "6 дней"

.1.11 Выбор технологии разработки

.2 UML-моделирование

. Разработка

.1 Ознакомление с платформой разработки и реализация игры

.2 Отрисовка графики

. Тестирование

.1 Интерфейсное тестирование

.2 Функциональное тестирование

. Внедрение

Выводы

Список источников

Приложение А - Охрана труда

А.1 Анализ условий труда на рабочем месте программиста

А.2 Промышленная безопасность в компьютерной лаборатории

А.3 Производственная санитария и гигиена труда в компьютерной лаборатории

А.4 Пожарная профилактика производственного помещения

Приложение Б - Слайды презентации

Приложение В - Программный код

В.1 Разговор в первом квесте

В.2 Конец первого квеста

Введение

"Интерактивная Литература" (далее ИЛ) - это русский аналог англоязычного понятия "Interactive Fiction" (IF). [1] В самом широком понимании термина, это - любая разновидность художественных произведений, сюжет которых не является жестко фиксированным, но способен изменяться в зависимости от действий читателя (в компьютерном варианте - пользователя). Например, популярные некогда книжки с нелинейным или "ветвящимся" сюжетом - это тоже вариант ИЛ.

Конечно, ИЛ - это очень древний (возможно, даже древнейший) жанр компьютерных развлечений (или, если хотите, компьютерного искусства). Что и понятно, поскольку для текстовой игры не требуется видеокарта с аппаратным 3D-ускорением, графический монитор с высоким разрешением и стереосистема - простейшего текстового дисплея и клавиатуры вполне достаточно. Поэтому текстовые игры появились сразу после того, как были созданы первые интерактивные компьютеры, т.е. компьютеры, с которыми пользователь мог общаться напрямую, вводя команды и почти немедленно получая на них какой-либо отклик.

Но жанр интерактивной литературы отнюдь не устарел - он продолжает жить и развиваться. [2]

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

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

Можно также сказать, что текстовые игры в очень малой степени подвержены моральному старению (если, конечно, Вы не считаете, что жанр устарел морально как таковой). Увы, даже в самых классических рисованных квестах графика сегодня часто выглядит архаично ("неплохо, но в 1024x768xTrueColor этот волшебный лес смотрелся бы намного лучше"). Безусловно, это одна из сильных сторон ИЛ - когда графика отсутствует, она в принципе не может устареть. Совершенно то же, конечно, можно сказать про звуковое сопровождение, и прочие атрибуты мультимедиа

Конечно, свое коммерческое значение в наши дни этот жанр в основном потерял - сегодня вряд ли кто-нибудь будет создавать ИЛ исключительно ради прибыли (хотя до сих пор встречаются и shareware, и даже коммерческие текстовые приключения). Основной движущей силой ИЛ-сцены сейчас являются энтузиасты-любители. Однако, их довольно много; среди них есть исключительно талантливые люди, и многие современные произведения ИЛ нисколько не уступают "классическим образцам". Можно даже считать, что декоммерциализация жанра отчасти пошла ему на пользу - появилось немало по-своему любопытных образцов нетрадиционной и экспериментальной ИЛ, находящихся где-то на стыке между компьютерными развлечениями и литературным авангардом.

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

компьютерный игра графика программа

1. Анализ предметной области

.1 Индустрия компьютерных игр

Индустрия компьютерных игр (также индустрия интерактивных развлечений) - сектор экономики, связанный с разработкой, продвижением и продажей компьютерных игр. [3] В неё входит большое количество специальностей, по которым работают тысячи человек по всему миру.

Индустрия компьютерных игр зародилась в середине 1970-х годов как движение энтузиастов и за несколько десятилетий выросла из небольшого рынка в мейнстрим с годовой прибылью в 9,5 миллиардов долларов в США в 2007 году и 11,7 миллиардов в 2008 году (согласно ежегодным отчётам ESA). На рынке работают как крупные игроки, так и и небольшие фирмы и стартапы, а также независимые разработчики и сообщества (напр. Kickstarter и др.).

Современные персональные компьютеры дали множество новшеств игровой индустрии. К числу самых значимых относят звуковые и графические карты, CD- и DVD-приводы, Unix и центральные процессоры.

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

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

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

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

Бен Сойер (англ. Ben Sawyer) из Digitalmill рассматривает цепочку ценности игровой индустрии, которая составлена из шести связанных, но хорошо различимых слоев:

-    уровень издательства и капитала: издательства оплачивают разработку новых проектов и извлекают прибыль посредством лицензирования наименований;

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

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

         уровень распространения (также индустрия издателей): создание перечней игр и их продвижение в розничных и интернет-магазинах;

         уровень аппаратного и программного обеспечения: сюда входят аппаратные базисы-платформы, в том числе такие как консоли и мобильные устройства. В этот уровень сейчас входят также и неаппаратные платформы, такие как виртуальные машины (например Java или Flash) или программные платформы, такие как браузеры и (в последнее время) Facebook;

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

История индустрии началась в 1971 году с запуска аркадной игры Computer Space. В следующем году компания Atari выпустила первую коммерчески успешную видеоигру Pong. Успех этой игры открыл аркадным автоматам в течение "золотой эры" путь в такие общественно значимые места как торговые центры, традиционные торговые залы, рестораны и круглосуточные магазины. Во всем мире всего было продано более 360 тысяч аркадных автоматов с игрой Space Invaders, таким образом в 1982 году игра заработала 2 миллиарда долларов монетами по 25 центов, что составляет 4,6 миллиарда долларов в ценах 2011 года.

К началу 1980-х "золотая эра аркадных игр" была в расцвете. Объем рынка аркадных автоматов в США значительно увеличился с $50 млн. в 1978 до $900 млн. в 1981, при этом доход всей индустрии аркадных игр утроился, составив $2,8 млрд. в 1980. Начало этого периода также совпало с появлением многих домашних компьютеров и энтузиастов-разработчиков игр для них. Большого успеха достигла домашняя игровая приставка Nintendo Entertainment System, что привело к захвату этого рынка различными японскими компаниями типа Nintendo.

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

-    широкое внедрение CD-ROM для распространения и хранения данных;

-        широкое распространение операционных систем, основывающихся на GUI, таких как AmigaOS, Microsoft Windows и Mac OS;

         существенное развитие технологий трехмерной графики и широкое распространение 3D графических процессоров, переход к трехмерной графике как к стандарту де-факто визуализации игр;

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

         миниатюризация аппаратного обеспечения и массовое распространение мобильных телефонов, что привело к появлению мобильных игровых приложений;

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

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

В 1993 году продажи компьютерных игр в мире составили $19,8 млрд. ($31 млрд. в ценах 2011[), $20,8 млрд. в 1994 ($32 млрд. в ценах 2011) и приблизительно $30 млрд. в 1998 ($41,5 млрд. в ценах 2011). Суммарные продажи игровой индустрии США более чем в 2,5 раза превысили продажи кинематографа в США.

В 2000-е было создано и стали популярными множество казуальных и инди-игр. Также крепнет направление игр для мобильных платформ, появилось направление создания игр для социальных сетей. Особенно известен разработчик Zynga игр для социальной сети Facebook. Другим примером успешных платформ для компьютерных игр являются iOS и Android.

На начальном этапе существования компьютерных игр стоимость разработки была минимальной, поэтому это был прибыльный бизнес. Игры, разработанные единственным программистом или небольшой группой, состоящей из программиста и нескольких художников, могли обеспечивать продажи в количестве сотен тысяч копий. Многие из этих игр были разработаны всего за несколько месяцев, что давало возможность разработчикам выпускать по несколько игр в год. Это давало возможность издателям предлагать весьма щедрые отчисления разработчикам, включая различные роялти с проданных копий. В течение этого экономически благоприятного периода было создано много известных компаний-издателей, например, Origin Systems, Sierra Entertainment, Capcom, Activision и Electronic Arts.

В настоящее время компьютерные игр вносят значительный вклад в мировую экономику ввиду большого успеха продаж основных игровых систем и игр типа Call of Duty: Black Ops, заработавшая в течение первых 5 дней продаж более $600 млн., что стало мировым рекордом пятидневных продаж среди фильмов, книг и компьютерных игр.

Альтернативным способом издания игр является самостоятельное издание посредством shareware-модели, либо по модели открытого кода через интернет.

В последние годы набирает популярность модель "пожертвований" (с помощью сервисов аналогичных Kickstarter) для разработки компьютерных игр. Часто известные в прошлом разработчики игр предлагают создать идейное "продолжение" или "аналог" известных игр, если пользователи соберут запрашиваемую сумму. Примерами проектов наиболее успешно собравших средства с помощью этой схемы являются Star Citizen (запросили - $2 млн., собрали - $27 млн.), Torment: Tides of Numenera (запросили - $1 млн., собрали - более $4,2 млн.) и Elite: Dangerous (запросили - $1,25 млн., собрали - более $1,7 млн.).

.2 Жанры компьютерных игр

Компьютерные игры в основном классифицируются по жанрам, а также по количеству игроков. [4]

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

Существуют игры с элементами нескольких жанров, которые могут принадлежать каждому из них (например, серия Grand Theft Auto, Космические Рейнджеры, Rome: Total War и многие другие). Такие проекты причисляют либо к одному из жанров, который в игре является основным, либо сразу ко всем, присутствующим в игре, если они в равной мере составляют геймплей проекта.

D-шутер (англ. 3D Shooter) - в играх данного типа игрок, как правило, действуя в одиночку, должен уничтожать врагов при помощи оружия ближнего боя (как правило холодного) и стрелкового оружия (чаще всего огнестрельного оружия и энергетического. В шутерах от первого лица (англ. First person shooter, FPS) игрок не видит персонажа со стороны - он наблюдает за происходящим от лица персонажа - "глазами персонажа" (англ. First person look), и наблюдаемая игроком картина совпадает с тем, что "видит" персонаж. В шутерах от третьего лица (англ. Third person shooter, TPS) игрок видит персонаж со стороны с фиксированной (обычно со спины) или произвольной точки зрения (англ. Third person look). В ряде игр реализована возможность переключения первое/третье лицо и фиксированная/произвольная камера.

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

Аркада (англ. Arcade) - игра, в которой игроку приходится действовать быстро, полагаясь в первую очередь на свои рефлексы и реакцию. Игровой процесс прост и не меняется в течение игры. Аркады характеризуются развитой системой бонусов: начисление очков, постепенно открываемые элементы игры и т. д.

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

В технических симуляторах при помощи компьютера как можно более полно имитируется физическое поведение и управление каким-либо сложным объектом технической системы (например: боевым истребителем, автомобилем и т. д.). Если аркадные игры стремятся развлечь игрока при помощи разных невозможных явлений, трюков и остроты сюжета, то главный критерий качества технических симуляторов - полнота и реалистичность моделирования его объекта (автомобиля, воздушного судна и т. д.). Аркадные симуляторы - упрощённая версия технических симуляторов, нередко с альтернативной физикой. Принципиальное отличие от собственно аркад - наличие хоть и упрощённой, но всё же физической модели. Чаще всего с подобной физикой делаются симуляторы космических кораблей и автомобилей.

Стратегии (англ. Strategy) - игры, требующие планирования и выработки определенной стратегии для достижения некоей конкретной цели, например, победы в военной операции. Игрок управляет не одним персонажем, а целым подразделением, предприятием или даже вселенной. Различают походовые или пошаговые стратегические игры (Turn-Based Strategy, TBS), где игроки поочерёдно делают ходы, и каждому игроку отводится неограниченное или ограниченное (в зависимости от типа и сложности игры) время на свой ход, и стратегические игры в реальном времени (Real Time Strategy, RTS), в которых все игроки выполняют свои действия одновременно, и ход времени не прерывается.

Квест (англ. quest), или приключенческая игра (англ. adventure game) - также один из основных жанров компьютерных игр. Квест представляет собой интерактивную историю с главным героем, управляемым игроком; при этом важнейшими элементами игры являются собственно повествование и обследование мира, а ключевую роль в игровом процессе играют решение головоломок и задач, требующих от игрока умственных усилий. Бои, экономическое планирование и задачи, требующие от игрока скорости реакции и быстрых ответных действий, в квестах сведены к минимуму или вовсе отсутствуют [1]. Игры, объединяющие в себе характерные признаки квестов и жанра action, выделяют в отдельный жанр - action-adventure. [5]

Англоязычное название adventure game восходит к первой игре жанра, Colossal Cave Adventure, и должно пониматься как "игра, подобная Adventure", хотя современные игры могут сильно от нее отличаться. В русском языке закрепилось наименование "квест", которое изначально также было именем собственным и использовалось в названии популярных игр этого жанра, разработанных компанией Sierra On-Line: King's Quest, Space Quest, Police Quest.

Разновидности квестов:

Текстовые приключения. Первые приключенческие игры - Colossal Cave Adventure, Охота на Вампуса и коммерческая Zork - были текстовыми и использовали парсеры, основанные на управляющих глаголах [6]. С развитием компьютерной техники и графических подсистем текстовые игры были вытеснены более наглядными и удобными в управлении графическими квестами.

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

Графическая приключенческая игра (англ. graphic adventure game) - одна из разновидностей приключенческих компьютерных игр. [7] В отличие от текстовых приключенческих игр, в которых игрок осуществлял взаимодействие с игровым миром посредством текстовых команд, в графических стало возможно управление и взаимодействие с различными объектами на игровом экране с помощью курсора.

Новый этап развития графических приключенческих игр начался с появлением интерфейса поинт-н-клик (англ. point-and-click, дословно укажи и выбери). Одной из первых компьютерных игр, использующих этот интерфейс стала Planet Mephius, разработанная Эйджи Йокояма (англ. Eiji Yokoyama) и выпущенная T&E Soft в Японии на персональных компьютерых FM-7 в 1983 году. В игре помимо меню команд был доступен курсор, с помощью которого игрок мог взаимодействовать с различными объектами на игровом экране. Аналогичный интерфейс управления был впоследствии использован в другой японской игре Wingman, разработанной компанией TamTam и изданной Enix для персональных компьютеров NEC PC-8801 в 1984 году.

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

Большинство игр подобного вида выполнены от первого лица, где игрок путешествует по "миру" из заранее отрисованных изображений, прерываемых короткими анимационными или видеовставками. Ярким примером этого поджанра является игра Myst, впервые использовавшая подобный стиль.

Развитие широкополосного_интернета и программирования как хобби привело к новому витку в истории квестов. Любителями были созданы несколько бесплатных движков, на основе которых другие могли свободно создавать свои игры. Также иногда в качестве движка для небольших игр применяется Macromedia Flash (естественно, проблема flash-игр - в них лишь очень редко есть возможность сохраниться).

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

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

.3 Анализ аналогов

Был проведен анализ ряда случайно выбранных игр-аналогов для QSP.

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

Рисунок 1.1 - Темный замок

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

Рисунок 1.2 - Мировое сознание

Лабиринт (рисунок 1.3) - также вариация на тему фэнтези, как и Темный замок, но с другим шаблонным сюжетом. Сделана она гораздо приятнее и удобнее, но вызывающе линейна и когда дается выбор, он не блещет разнообразием и никак не влияет на сюжет.

Рисунок 1.3 - Лабиринт

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

Рисунок 1.4 - Звездная эпопея

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

Рисунок 1.5 - Komm

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

Рисунок 1.6 - Взгляд из коробки

Феи: пропавший зонтик (рисунок 1.7) - игра с явно детским сюжетом, не слишком увлекательная для взрослой аудитории, зато разветвленная с множеством концовок и интересной нестандартной механикой, где использование квестовых предметов действительно дает разные результаты в разных сочетаниях.

Рисунок 1.7 - Феи: пропавший зонтик

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

Рисунок 1.8 - Ночная сказка

Можно выделить следующие особенности квестовых игр:

-    чем интереснее сюжет, тем короче игра;

-        чем ограниченнее в применении механика, тем она интереснее;

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

.4 Постановка задачи

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

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

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

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

-    диалога с выбором из нескольких возможных реплик;

-        использования инвентаря и предметов;

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

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

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

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

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

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

2. Анализ моделей

.1 Выбор среды проектирования и языка разработки. Доступные языки и технологии разработки ИЛ

2.1.1 ADRIFT (Adventure Developer & Runner - Interactive Fiction Toolkit)

Популярная интерактивная ИЛ-система. Создана относительно недавно. Последняя версия - 4.0 (Generator & Runner), наиболее популярна 3.9 в силу ее бесплатности. Разработка и поддержка - Кэмпбелл Уайлд (Campbell Wild), начиная с декабря 1997. Версия 4.00 распространяется как shareware ($17), более ранние - freeware.[8]

Принципы технологии: интерактивная среда разработки и исполнения ИЛ-приложений. Средствами Adrift Generator разрабатывается игра, которую можно выполнить с помощью Adrift Runner. Готовые файлы игр имеют расширение '.TAF'.

Переносимость: все версии Windows. Кроме того, для выполнения готовых Adrift-программ можно использовать альтернативы: мультиплатформенный Adrift-интерпретатор SCARE (имеются версии для DOS, Windows, Linux…) и Java-приложение jAsea.

Разработка или редактирование игры с помощью Adrift Generator предполагает работу в удобной интерактивной среде.

.1.2 Hugo

Относительно молодая (по сравнению с Inform и TADS), но довольно успешно набирающая популярность ИЛ-система. Последняя версия: Hugo engine - Version 3.1.03 - 5Jan06. Разработка и поддержка: Кент Тессман (Kent Tessman) занимается разработкой системы с 1995 года вплоть до настоящего времени. Доступность: freeware. Исходные тексты также доступны.

Принципы технологии: компилируемый язык программирования. Файлы с исходным кодом (обычно имеющие расширение ’.HUG’) обрабатываются Hugo-компилятором. Естественно, файлы-результаты (‘.HEX’) выполняются Hugo-интерпретатором.

Переносимость: широкая. Технология доступна на: Acorn RISC OS, Amiga, BeOS, MS-DOS, большинстве Unix-систем, OS/2, Win95/NT. Интерпретатор также переносим на любую систему, поддерживающую технологию Glk (например MacOS), хотя с поддержкой мультимедиа при этом несколько хуже.

Основные возможности. Hugo может поддерживать многооконный интерфейс (с не перекрывающимися окнами), графику (JPEG), аудио (MOD, S3M, MP3, MIDI, XM, WAV; до 32 аудиоканалов), а, начиная с версии 3.0 - даже видео (MPEG, AVI).

2.1.3 Inform

Безусловно, в англоязычном (и не только) мире, это - одна из самых популярных платформ (по общему количеству программ, созданных на этой основе, она явно может претендовать на мировое лидерство). Последняя версия: компилятора 6.30, стандартных библиотек 6/11.

Разработка и поддержка: язык Inform в 1993 г. создал Грэхем Нельсон (Graham Nelson). Помимо него, к созданию технологии приложили усилия еще многие: компания Infocom (оригинальный формат Z-файлов), группа InfoTaskForce (его последующая "расшифровка"), Эндрю Плоткин (Andrew Plotkin) - технологии Glk, Glulx и Blorb. В настоящее время, поддержкой и развитием технологии занимается группа, которую возглавляет Роджер Фирт (Roger Firth).

Доступность - freeware. Распространяется свободно, при условии неизменности. Исходные тексты библиотек, компилятора и большинства интерпретаторов доступны.

Принципы технологии: компилируемый язык программирования. Файлы с исходным кодом (обычно имеющие расширение ’.inf’) обрабатываются компилятором Информ, поддерживающим две целевых платформы - Z-code и Glulx.

Переносимость: технология доступна очень широко. Вот список (не самый свежий) платформ, где компилятор Inform доступен: Acorn RISC OS, BeOS, Macintosh, Atari ST (версия 5.4), Amiga, MS-DOS (также версия для GO32), Linux, OS/2, UNIX, VMS (DEC VAX или Alpha) и EPOC (Psion 5/Revo/7), Windows. Z-интерпретаторы доступны еще шире. Glulx-интерпретаторы пока распространены меньше, но для Windows, Linux (консольный и X) и MacOS X имеются.

Основные возможности. Inform - полнофункциональный объектно-ориентированный язык программирования, во многом похожий на C и SmallTalk. Есть возможность создавать ИЛ-игры, дополняющие стандартный парсер мощным Legend-подобным многооконным интерфейсом. Более того, уже появились библиотечные пакеты, помогающие это делать (например, GWindows).

.1.4 Hydra- базовая система для написания парсерных IF игр на языке программирования Python. Разработка: (c) Copyright 2001-2002 WildWizard, позже присоединился Стас "Unreal" Старков. Система была доведена до рабочего состояния и позволяет создавать полноценную ИЛ. Доступность - freeware.

Система программирования похожа на Inform и довольно проста и гибка. Известно, что интерпретатор языка Python распространен, например на смартфонах с операционной системой Symbian, и вообще является кросс-платформенным. Однако, тестирование Гидры на данных платформах пока не производилось.

2.1.5 TADS (Text Adventure Development System)

Безусловно, вторая по популярности (после Inform) ИЛ-платформа в мире и первая (среди парсерных платформ) в России. Последняя версия: 2.5.X (TADS 2), 3.0.X (TADS 3).

Разработка и поддержка: TADS - профессиональная система для разработки ИЛ - создана Майклом Робертсом (Michael Roberts) в конце 1980-х годов. Он ее продолжает развивать и поддерживать до настоящего времени (при участии и поддержке множества энтузиастов). Доступность: когда-то система разрабатывалась как shareware-продукт; теперь распространяется свободно вместе с исходными текстами.

Принципы технологии: компилируемый язык программирования. TADS-компилятор обрабатывает исходные файлы (обычно имеющие расширение ’.T’), и генерирует переносимый двоичный файл игры (расширение .GAM), для выполнения которого необходим TADS-интерпретатор.

Переносимость широкая. Система TADS доступна на: Acorn RISC OS (только интерпретатор), AmigaDOS, Atari ST/TT/Falcon, DECStation, Linux, Macintosh, MS-DOS (есть также версия для GO32), NeXT, OS/2, SGI Iris/Indigo, SunOS & Sun 3, все версии Windows. Интерпретаторы TADS предъявляют несколько большие системные требования, чем Z-интерпретаторы, поэтому на очень маломощных системах (старые ПК, наладонники) могут не работать.

Основные возможности. TADS - объектно-ориентированный язык программирования, напоминающий гибрид между C и Паскалем. Относительно новое расширение технологии - HTML-TADS - позволяет лучше управлять выводимым текстом, путем включения в него тегов разметки (подмножество HTML). За счет этого можно управлять шрифтами, размерами, цветом и прочими стилевыми атрибутами текста; можно включать в текст гиперссылки и графику (JPEG, PNG, MNG - анимированный PNG), воспроизводить многие популярные аудиоформаты (MIDI, WAV, MP3, OGG). Программы, ориентированные на HTML-TADS, работают и в более старых TADS-интерпретаторах (хотя, конечно, без перечисленных "излишеств"). Сейчас HTML-TADS интерпретаторы доступны для Windows и MacOS X.

.1.6 URQ (Universal RipSoft Quest)

Простая платформа отечественного происхождения для разработки "консольной" ИЛ (управляемой с помощью меню и кнопок).

Интерпретаторы:

-    URQ 1.4 от RipOs. (Есть версия 2.0 alpha, очень неустойчивая - не применяется) разработка прекращена;

-        Urq_dos 1.35 от 30.11.2004 консольная, работает в ДОС-окне, самая устойчивая в работе, фактический стандарт языка. Разработчик URQ_DOS (с 2000 г. по сей день) - Виктор Корянов;

         AkURQ 1.28 от Акела. На настоящий момент самая продвинутая версия интерпретатора, поддерживает некоторые функции, отсутствующие в "досурке" (математические, строковые, работу с окнами, настройка шрифтов пользователем и т.п.), имеет развитые мультимедийные возможности. Уникальная особенность по сравнению с предыдущими интерпретаторами URQL - поддержка html-кода (через обращение к браузеру).

Разработка и поддержка: можно обращаться на форум #"784961.files/image009.gif">

Рисунок 2.1 - Диаграмма Use Case

Также имеется диаграмма развертывания (рис. 2.2), показывающая, что развертывание предельно просто: на компьютере пользователя должен иметься интерпретатор Quest Soft Player, также туда копируется файл с игрой и по мере необходимости рисунки.

Рисунок 2.2 - Диаграмма развертывания

Первая диаграмма активности (рис. 2.3) показывает то, как будет выглядеть структура типичного задания - структурного элемента квеста. Как было указано в постановке задачи, любое задание должна быть возможность выполнить как минимум тремя путями: путь, где может ошибиться пользователь, путь, где можно проиграть случайным образом, и путь, который доступен всегда.

Рисунок 2.3 - Диаграмма активности общего случая

Примером могут служить первый (рис. 2.4) и второй (рис. 2.5) квесты. В первом главной героине необходимо попасть в избушку, и есть три пути достижения цели: уговорить хозяйку открыть дверь через окно, выбрав все правильные ответы в диалоге, найти ключ под окном и открыть дверь самой, и, пробравшись и крыше, залезть в трубу.

Рисунок 2.4 - Диаграмма активности первого квеста

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

Рисунок 2.5 - Диаграмма активности второго квеста

Общая схема сюжета игры представлена на рисунке 2.6. Сюжет состоит из нелинейной последовательности связанных квестов, от выполнения которых зависят доступные варианты концовки. Только три квеста являются обязательными; для доступности хотя бы одной концовки необходим еще один из необязательных. Максимальное количество концовок при всех выполненных квестах - четыре.

Рисунок 2.6 - Диаграмма активности сюжета игры

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

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

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

Рисунок 2.7 - Локационная структура игры

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

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

Рисунок 2.8 - Диалог первого квеста

Вторая механика (рисунок 2.9) - рискового действия. Здесь дерево вариантов всегда простое и не зависит от игрока. Возможных исходов также всегда два - выигрыш или проигрыш.

Рисунок 2.9 - Рисковое действие

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

Рисунок 2.10 - Сбор предметов первого квеста

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

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

3. Разработка

.1 Ознакомление с платформой разработки и реализация игры

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

Рисунок 3.1 - Интерактивная среда разработки

Были написаны первые локации и реализована последовательность событий первого квеста вместе с тремя базовыми механиками взаимодействия с игрой - диалог, рисковое действие и головоломка.

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

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

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

#Лес0

$FNAME = 'Arial'= 1

Открыто = 0

Ключ_взят = 0

Упала = 0

Разговор = 0

Тропинка_видна = 0

Можно_в_город = 0

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

'<center><img src="img/Wood.jpg" width="100%"/></center>'

' '

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

'Теплый июньский день подходит к концу. Тени удлиняются, и между деревьев вьется прохладный ветерок. Луна устала.'

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

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

Важный элемент - оператор DELACT, удаляющий действия меню с экрана. В этой игре он используется для действий, которые можно выполнить только один раз подряд - к примеру, взять уникальный предмет или подойти или заглянуть куда-то.

'<table width="100%"><tr><td bgcolor="#eeeefF">Обойти избушку слева</td></tr></table>': GOTO 'Юг_избушки''<table width="100%"><tr><td bgcolor="#eeeefF">Обойти избушку справа</td></tr></table>': GOTO 'Север_избушки''Заглянуть в окно':

'Изнутри окно занавешено красивой кружевной занавеской.''Заглянуть в окно'Ключ_взят = 0:

'На подоконнике лежит небольшой блестящий ключик.'

'<img src="img/key.png" />'

ACT 'Взять ключик':

'Ключик поблескивает на окне. Луна предполагает, что его здесь просто забыли, подбирает и прячет в сумку.''Небольшой блестящий ключик','img/key_small.png'

Ключ_взят = 1'Взять ключик'

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

Это достигается путем запоминания места разговора в соответствующей переменной и множественного выбора при инициации разговора.

'Постучать в окно':Разговор > -1:

'Занавеска отодвигается. В окне появляется сморщенное, загорелое старушечье лицо с густыми бровями, крючковатым носом и бородавкой на остром подбородке.'Разговор = 0: GOSUB 'Разговор1'Разговор = 1: GOSUB 'Разговор2'Разговор = 2: GOSUB 'Разговор3'Разговор = 3: GOSUB 'РазговорОкончен': GOSUB 'РазговорНеВышел''Постучать в окно'

Механика головоломки реализуется путем использования операторов работы с инвентарем. К ним относятся ADDOBJ, добавляющий предметы в инвентарь, DELOBJ, удаляющий предметы из инвентаря, и OBJ, проверяющий наличие предмета в инвентаре по его названию. При добавлении предмета в инвентарь можно указать адрес файла изображения, и в этом случае предмет в инвентаре будет отображаться рядом с этим изображением. При этом не представляется возможность настроить размер изображения, поэтому важно следить за размером загружаемого файла.

#Взять_бутыль'Взять бутыль'

'Луна берет бутыль и прячет в сумку.'

'- Вот спасибо, - вздыхает хозяйка.''Бутыль с зельем','img/bottle_small.png'

Бутыль_взята = 1

…OBJ 'Узелок с пирожками':'Предложить пирожки':'Предложить пирожки'

'Луна достает из сумки узелок с пирожками и разворачивает.'

'- Хотите? - жизнерадостно спрашивает она, беря один себе.'

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

'- Ты проходи, если хочешь, - кивает он на дверь.'Можно_в_город = 0:'<table width="100%"><tr><td bgcolor="#eeeefF">Пройти через дверцу</td></tr></table>': GOTO 'Ворота_внутри'

Можно_в_город = 1'Узелок с пирожками'

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

Упала = 0:'Попробовать залезть в трубу':

'Луна осторожно, на корточках, пытается перебраться через скользкую крышу - маслом, что ли, она намазана? - к трубе.'1000

…1000RAND(1,2) > 1:

'Внезапный порыв ветра бьет по ведьмочке, и она, теряя равновесие, катится вниз по скользкому скату. Не успевая сгруппироваться, Луна приземляется напротив двери избушки.'1000

…1000

Упала = 1'Запад_избушки'

'Внезапный порыв ветра бьет по ведьмочке, но она, вцепившись в конек крыши, удерживается на месте. Фух... вот и труба.''Залезть в трубу': GOTO 'Внутри_избушки'

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

.2 Отрисовка графики

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

Примером изображения локации служит вид избушки с севера на рисунке 3.2.

Рисунок 3.2 - Избушка с севера

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

Рисунок 3.3 - Избушка с запада

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

Рисунок 3.4

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

Рисунок 3.5 - Портрет главной героини

Итоговый внешний вид игры в процессе прохождения изображен на рисунке 3.6.

Рисунок 3.6 - Интерфейс игры

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

4. Тестирование

.1 Интерфейсное тестирование

Часть программной системы, обеспечивающая работу интерфейса с пользователем - один из наиболее нетривиальных объектов для верификации. Нетривиальность заключается в двояком восприятии термина "пользовательский интерфейс". [11]

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

С другой стороны, пользовательский интерфейс - "лицо" системы, и от его продуманности зависит эффективность работы пользователя с системой. Факторы, влияющие на эффективность работы, слабо поддаются формализации в виде конкретных требований к отдельным элементам, однако должны быть учтены в виде общих рекомендаций и принципов построения пользовательского интерфейса программной системы. Проверка интерфейса на эффективность человеко-машинного взаимодействия получила название проверки удобства использования (usability verification; в русскоязычной литературе в качестве перевода термина usability часто используют слово "практичность" [12]).

Функциональное тестирование пользовательского интерфейса состоит из пяти фаз:

-    анализ требований к пользовательскому интерфейсу;

-        разработка тест-требований и тест-планов для проверки пользовательского интерфейса;

         выполнение тестовых примеров и сбор информации о выполнении тестов;

         определение полноты покрытия пользовательского интерфейса требованиями;

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

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

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

При сборе информации о выполнении тестовых примеров обычно применяются технологии анализа выводимых на экран форм и их элементов (в случае графического интерфейса) или выводимого на экран текста (в случае текстового), а не проверка значений тех или иных переменных, устанавливаемых программной системой.

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

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

Особенностью текстовых квестовых игр на платформе QSP является то, что большая часть интерфейса предоставляется самим проигрывателем / интерпретатором Quest Soft Player, и задача разработчика состоит лишь в красивом оформлении и в проверке того, что все действия выполняют именно то, что должны. Стоит заметить, что в большой игре потенциал ошибок в этой области огромен, и пропускать это тестирование все равно нельзя.

.2 Функциональное тестирование

Функциональное тестирование - один из основных видов независимого тестирования программного обеспечения, направленный на проверку реализуемости функциональных требований. [13] Иначе говоря, специалисты по функциональному тестированию определяют, решает ли разработанное ПО задачи, ради которых оно было создано, удовлетворяет ли оно потребности заказчика/пользователя. Среди основных требований к ПО обычно выделяют функциональную пригодность, точность, способность к взаимодействию, соответствие стандартам и правилам, защищенность. Именно по этим критериям и ведется функциональное тестирование. Зачастую применяется также модульное тестирование [14].

Огромное значение имеет регрессионное функциональное тестирование [15], которое проводится с целью проверить, не влияют ли новые функции, улучшения и исправленные дефекты на существующую функциональность продукта.

Как правило, функциональное тестирование программного обеспечения делится на:

-    компонентное;

-        интеграционное;

         системное;

         приемочное;

         регрессионное;

         автоматизированное регрессионное;

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

         функциональное тестирование совместимости.

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

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

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

5. Внедрение

К 2000 году жанр компьютерных игр "квест" как коммерческое предприятие пришёл в упадок. Хорошие квесты наподобие Myst III: Exile, The Longest Journey, Syberia не смогли изменить ситуацию - написание квестов стало нерентабельным. Взамен появился ряд движков, на которых можно было писать свои игры жанра "квест", не программируя движок с нуля (а значит, не подключая к работе высококлассного программиста). Естественно, в интернете появилось большое число бесплатных квестов. [16]

Есть несколько причин, почему в царстве любительских игр квест играет важную роль:

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

-        приверженцы жанра не всегда удовлетворены работой коммерческих разработчиков;

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

Игры на платформе QSP публикуются на сайте qsp.su [17], где они доступны для скачивания пользователям. Сайт регулярно проводит конкурсы игр, отслеживает появление новых и публикует рецензии и статьи об играх. На главной странице отображается как список самых популярных игр, так и самых новых игр, предоставляя разработчикам игры возможность показать ее миру и раскрутить без больших усилий или финансовых вложений.

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

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

Выводы

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

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

Сюжет игры основан на вольной современной интерпретации народного славянского фольклора, а главной героиней является юная ведьма Луна. Ее задача - помирить лес и город, соединив практичность с заботой об окружающей среде.

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

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

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

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

Список источников

1.      Interactive fiction - Википедия [Электронный ресурс] / ВикипедиЯ Свободная энциклопедия. - Режим доступа: www/ URL: #"784961.files/image025.gif">

Рисунок А.1- Система "Человек-Машина-Среда"

Направление связей в системе "Человек - Машина - Среда" (рисунок А.1) приведено в таблице А.1.

Таблица А.1 Направление связей в системе "Человек - Машина - Среда"

№ связи

Направление связи

Содержание связи

1

Ч1-Ч2

Влияние работы человека на его воздействие на производственную среду

2

Ч1-Ч3

Влияние работы человека на его физиологическое состояние

Ч1-М1

Работа человека с компьютером

4

Ч2-С

Влияние человека на производственную среду

5

Ч3-Ч1

Влияние физиологического состояния человека на его работу

6

Ч3-Ч2

Влияние физиологического состояния человека на его воздействие на производственную среду

7

М1-Ч1

Обратная связь компьютера к человеку о его работе


Таблица А.1 Направление связей в системе "Человек - Машина - Среда"

8

М1-М3

Влияние работы компьютера на его воздействие на производственную среду

9

М1-П

Создание программы компьютером

10

М2-М1

Влияние аварийных/регулирующих систем компьютера на его работу

11

М2-М3

Влияние аварийных/регулирующих систем компьютера на его воздействие на производственную среду

12

М3-С

Влияние компьютера на окружающую среду

13

С-Ч1

Влияние производственной среды на производительность труда человека

14

С-Ч3

Влияние окружающей среды на физиологическое состояние человека

15

С-М1

Влияние окружающей среды на работу компьютера


В данном помещении, согласно ГОСТ 12.0.003 - 74 "Опасные и вредные производственные факторы. Классификация", имеют место различные факторы.

К физическим факторам относятся:

-    повышенное напряжение сети, которое может вызвать поражение током, способное привести к смерти;

-        повышенный уровень шума на рабочем месте. Источники: разработчики, работа ПК. Повышенный уровень шума ухудшает условия труда, оказывает вредное воздействие на слуховой аппарат, умственную деятельность;

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

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

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

         повышенный уровень электромагнитных излучений. Источник: системный блок.

К психофизиологическим факторам относятся:

-    перенапряжение анализаторов (зрительных и слуховых). Источник: дисплей ПК;

-        монотонность труда. Источник: выполнение человеком однообразных движений кистей и пальцев рук при работе с клавиатурой и "мышью";

         эмоциональные перегрузки. Источник: характер трудового процесса программистов;

         физические перегрузки (статические). Источник: неправильно организованное рабочее место пользователя ПЭВМ, длительное пребывание в однообразном положении.

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

Был проведен анализ условий труда в компьютерной лаборатории и сделан вывод, что все параметры соответствуют законодательным нормам.

А.2 Промышленная безопасность в компьютерной лаборатории

Система электропитания в компьютерной лаборатории осуществляется от трехфазной четырехпроводной электрической сети переменного тока частотой 50 Гц напряжением 380/220В с глухозаземленной нейтралью.

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

Защитой от поражения электрическим током согласно ГОСТ 12.1.030-81 "Электробезопасность. Защитное заземление. Зануление" в трехфазных четырехпроводных сетях с напряжением до 1000 В является зануление.

Для обеспечения работы зануления обеспечена непрерывность цепи от каждого корпуса ПЭВМ до нейтрали источника. Кроме того нулевой защитный проводник подлежит повторному заземлению, что снижает потенциал занулённых корпусов и напряжение прикосновения в случае обрыва цепи зануления. Сопротивление первичного заземлителя нейтрали не более 4 Ом при напряжении сети 380/220В, сопротивление изоляции сети не менее 0,5 МОм, сопротивление одиночного повторного заземления нулевого провода не более 30 Ом. Контроль сопротивления проводится с периодичностью 1 раз в полугодие при отключенной сети электропитании, согласно ПУЭ-2011 "Правила устройства электроустановок".

А.3 Производственная санитария и гигиена труда в компьютерной лаборатории

Согласно ДСН 3.3.6.042-99, работа за компьютером относится к категории Ia - сидячая работа, не требующая физического напряжения. Санитарные нормы для этой категории:

температура: 22-24°С (при температуре наружного воздуха ниже +10°С) и 23-25°С (при температуре наружного воздуха выше +10°С);

относительная влажность: 40-60%;

скорость движения воздуха: не более 0.1 м/с.

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

Помещение для работы с визуальными дисплейными терминалами (ВДТ) должны иметь естественное и искусственное освещение в соответствии с ДБН В.2.5-28-2006 "Естественное и искусственное освещение".

Естественное освещение должно осуществляться через световые проемы и обеспечивать коэффициент естественной освещенности (КЕО) не ниже 1,2%.

Искусственное освещение в помещениях с рабочими местами, оборудованными ВДТ, должно осуществляться системой общего равномерного освещения. Величина освещенности на поверхности рабочего стола в зоне размещения документов должна составлять 200 - 500 лк. Если эти значения освещенности невозможно обеспечить системой общего освещения, допускается использовать местное освещение. При этом светильники местного освещения следует устанавливать таким образом, чтобы не создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк.

В качестве источников света в случае искусственного освещения должны применяться преимущественно люминесцентные лампы типа ЛБ. Допускается применение ламп накаливания в светильниках местного освещения.

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

Уровень шума соответствует норме (ДСН 3.3.6.037-99) - менее 50 дБ.

А.4 Пожарная профилактика производственного помещения

Данное помещение следует отнести к категории В по пожароопасности из-за использования в нем твёрдых горючих материалов с температурой вспышки свыше 61оС, согласно НАПБ Б.03.002-2007. Согласно НПАОП 40.1-1.01-97, помещение относится к классу П-IIа, так как в помещении находятся твёрдые и волокнистые горючие вещества.

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

Для тушения пожара в рабочем помещении использованы первичные средства пожаротушения, песок и огнетушители. В данном случае применены углекислотные огнетушители ВВК-2 4 шт., и ящик с песком, вместимостью 0,3 м3.

В помещении имеется один рабочий выход шириной 1,5 м. При наличии работающих 10-ти человек этот выход можно использовать как эвакуационный. Максимальное расстояние до выхода 8 м. На эвакуационных путях необходимо установить естественное и искусственное аварийное освещение. Максимальное время эвакуации 2 минуты, что выполняется на практике и соответствует нормам.

Согласно НАПБ Б.06.004-2007, как помещение, в котором проложены кабели и хранятся бумажные документы, в лаборатории установлена пожарная сигнализация и автоматическая система пожаротушения. Согласно ДБН В.2.5-56-10, установлены датчики - полупроводниковые ДИП-1, на высоте до 3,5 м из расчета один на 76 м2. Таким образом, достаточно одного.

Приложение Б - Слайды презентации




Приложение В - Программный код

В.1 Разговор в первом квесте

#Разговор1

'- Привет, деточка. А что это ты тут делаешь?''- Привет, красавица. Хожу, гуляю - не приютишь меня на ночь, ммм?':'- Привет, красавица. Хожу, гуляю - не приютишь меня на ночь, ммм?''- Да я вот по лесу шла, и не заметила, как вечер настал.''- Не твое дело, старуха.'

'- Привет, красавица. Хожу, гуляю - не приютишь меня на ночь, ммм? - Луна игриво подмигивает.'

Кокетство += 1'РазговорУпс''- Да я вот по лесу шла, и не заметила, как вечер настал.':'- Привет, красавица. Хожу, гуляю - не приютишь меня на ночь, ммм?''- Да я вот по лесу шла, и не заметила, как вечер настал.''- Не твое дело, старуха.'

'- Да я вот по лесу шла, и не заметила, как вечер настал. Здравствуйте, бабушка. Меня Луной зовут. Не пустите переночевать?'

Вежливость += 1

'- Ишь ты какая. А что это ты в лесу одна?''Разговор2''- Не твое дело, старуха.':'- Привет, красавица. Хожу, гуляю - не приютишь меня на ночь, ммм?''- Да я вот по лесу шла, и не заметила, как вечер настал.''- Не твое дело, старуха.'

'- Не твое дело, старуха. Впусти, переночевать хочу.'

Хамство += 1'РазговорУпс'

#Разговор2

Разговор = 1'- Красавиц ищу. Одну вот нашла.':'- Красавиц ищу. Одну вот нашла.''- А я путешествую.''- Вам-то что? Впустите, вечер же!'

'- Красавиц ищу. Одну вот нашла. Впустите! - Луна игриво подмигивает'

Кокетство += 1'РазговорУпс''- А я путешествую.':'- Красавиц ищу. Одну вот нашла.''- А я путешествую.''- Вам-то что? Впустите, вечер же!'

'- А я путешествую. Я ведьма, одна справляюсь. Только ночевать в лесу холодно... - Луна демонстративно ежится от набегающей вечерней прохлады. На самом деле ей еще не холодно, кофта хорошо хранит тепло, да она и привыкла ночевать на земле. Но так не хочется!'

Вежливость += 1

'- Я-то гостям рада, да косточки мои старые ноют... Лень мне с печи слезать, дверь открывать... - Хозяйка лукаво глядит на Луну.''Разговор3''- Вам-то что? Впустите, вечер же!':'- Красавиц ищу. Одну вот нашла.''- А я путешествую.''- Вам-то что? Впустите, вечер же!'

'- Вам-то что? Впустите, вечер же! Холодно! - Луна топает ногой.'

Хамство += 1'РазговорУпс'

#Разговор3

Разговор = 2'- Даже для такой красавицы, как я?':'- Даже для такой красавицы, как я?''- А я вам по дому помогу!''- Я тут замерзаю, а вам лень с печи слезть? Впустите же!'

'- Даже для такой красавицы, как я? - Луна кокетливо подбоченивается.'

Кокетство += 1'РазговорУпс''- А я вам по дому помогу!':'- Даже для такой красавицы, как я?''- А я вам по дому помогу!''- Я тут замерзаю, а вам лень с печи слезть? Впустите же!'

'- А я вам по дому помогу! Я подмести могу, и помыть, и постирать, и вообще! - Луна умоляюще складывает руки.'

Вежливость += 1

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

Открыто = 1

Разговор = 3

Отношения_лес += 1'- Я тут замерзаю, а вам лень с печи слезть? Впустите же!':'- Даже для такой красавицы, как я?''- А я вам по дому помогу!''- Я тут замерзаю, а вам лень с печи слезть? Впустите же!'

'- Я тут замерзаю, а вам лень с печи слезть? Впустите же! - Луна раздраженно подпрыгивает на месте, взмахивая сумкой. Хвостики подлетают и опускаются.'

Хамство += 1'РазговорУпс'

#РазговорУпс

'- Ох, деточка, старая я стала. Куда уж мне до двери дойти... Сумеешь ко мне зайти - гостьей будешь. Не сумеешь - ночуй в лесу. - Хозяйка дома морщит нос и задергивает занавеску.'

Разговор = -1

Отношения_лес -= 1

#РазговорНеВышел

'Занавеска остается закрытой.'

#РазговорОкончен

'- Что, дверь найти не можешь? Ты ищи, ищи, она не спрятана, - хозяйка смеется и закрывает занавеску.'

-

#Север_избушки

'<center><img src="img/Hut_North.jpg" width="100%"/></center>'

' '

'Тропинка выходит на небольшую полянку, посреди которой стоит покосившаяся избушка, поросшая мхом. К тропинке выходит окошко, за которым что-то виднеется.''<table width="100%"><tr><td bgcolor="#eeeefF">Обойти избушку слева</td></tr></table>': GOTO 'Восток_избушки''<table width="100%"><tr><td bgcolor="#eeeefF">Обойти избушку справа</td></tr></table>': GOTO 'Запад_избушки''Заглянуть в окно':

'Изнутри окно занавешено красивой кружевной занавеской. За ней виден неясный силуэт.'

'На подоконнике ничего нет.''Постучать в окно':Разговор > -1:

'Занавеска отодвигается. В окне появляется сморщенное, загорелое старушечье лицо с густыми бровями, крючковатым носом и бородавкой на остром подбородке.'Разговор = 0: GOSUB 'Разговор1'Разговор = 1: GOSUB 'Разговор2'Разговор = 2: GOSUB 'Разговор3'Разговор = 3: GOSUB 'РазговорОкончен'

!ELSE GOSUB 'РазговорНеВышел''Постучать в окно'

END'Заглянуть в окно'

IF Знание_ветки=1 AND Ветки_избушка=0 AND Русалка<10:

'В траве под деревьями лежат упавшие ветки.''Собрать ветки':

'Луна обходит избушку, собирая все ветки, какие найдет, и засовывая их в сумку''Собрать ветки''Ветки'

Ветки_инв += 1

Ветки_избушка=1

В.2 Конец первого квеста

#Внутри_избушки

'<img width="100%" src="img/Hut_Inner.png" />'

' '

'Луна стоит посреди комнаты. Напротив нее под окошком большая печь, на которой лежит и с усмешкой разглядывает ее маленькая старушка с седыми подвязанными платком волосами и острыми зелеными глазами, похожими на глаза самой девочки.''<table width="100%"><tr><td bgcolor="#eeeefF">Выйти из избушки</td></tr></table>': GOTO 'Запад_избушки'Посещение_избушки = 0:'Внутри_избушки_1'Посещение_избушки > 0:

'<br/>'Пирожки_взяты = 0:

'На краю стола лежат завернутые в тряпицу пирожки.''Взять пирожки': GOSUB 'Взять_пирожки'Бутыль_взята = 0:

'На сундуке стоит обвязанная веревками бутыль с зельем.''Взять бутыль': GOSUB 'Взять_бутыль'

#Внутри_избушки_1

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

ACT 'Переночевать':2000

'<br/>'

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

'<br/>'2000

'Хозяйка указывает Луне на красиво застеленные сундук у противоположной стены, и девочка послушно устраивается там.'

'<br/>'2000

'Глаза закрываются сами, и ведьмочка проваливается в сон.'

'<br/>''Проснуться':'Проснуться'

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

'- Голодная небось? Я пирожков сделала, хочешь?'

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

'- Спасибо, я сейчас не хочу, - сонно говорит она. - Вам чем-нибудь помочь?'

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

Тропинка_видна = 1

'Хозяйка демонстративно пригибается, берется за спину и кряхтит. До этого, Луна готова поклясться, скакала как молоденькая; ну да что там, ей не тяжело никуда сходить.'

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

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

'- А завтрак твой я тут на столе оставляю, - добавляет она и заворачивает пирожки в тряпицу. - Захочешь, возьмешь.'

Открыто = 1'<table width="100%"><tr><td bgcolor="#eeeefF">Выйти из избушки</td></tr></table>': GOTO 'Запад_избушки''Взять бутыль':'Взять_бутыль''Взять пирожки':'Взять_пирожки'

Посещение_избушки = 1

#Взять_бутыль'Взять бутыль'

'Луна берет бутыль и прячет в сумку.'

'- Вот спасибо, - вздыхает хозяйка.''Бутыль с зельем','img/bottle_small.png'

Бутыль_взята = 1

#Взять_пирожки'Взять пирожки'

'Луна берет узелок с пирожками и прячет в сумку.'

'Хозяйка одобрительно кивает.''Узелок с пирожками','img/cupcakes_small.png'

Пирожки_взяты = 1

Похожие работы на - Реализация компьютерной игры жанра квест

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!