Автор: Владимир Трофимчук
Как создать свою ИЛ? |
Как создать свою ИЛ (Интерактивную Литературу)?
|
|
Что нужно, чтобы написать хорошую IF? Ответ кроется в расшифровке самой аббревиатуры - Interactive Fiction, Интерактивная литература.
Для создания интересного сюжета, способного заинтриговать игрока, требуется талант писателя.
Чтобы сделать текст "интерактивным", взаимодействующим с игроком, требуются навыки программиста.
Другими словами, необходимо задействовать оба полушария мозга. Задача не из легких, особенно учитывая то,
что большинство людей склонны либо к творчеству, либо к точным наукам, но не к тому и другому сразу.
Когда сюжет книги или игры у вас готов, то первое, что нужно сделать, это определиться с тем, где её оформить. Если у вас книга с различными вариантами сюжета, без
предметов и их применений, то для вас может подойти как один из вариантов - оформление книги-игры в формате HTML с гиперссылками внутри текста. Подобные игры имеются
в этом выпуске журнала. Картинки здесь можно вставить, но они не главное. Для более лучшего оформления на таких страничках, когда текст не скроллируется, а появляется
в одном месте, в одном окне - нужно знать язык программирования Java Script, либо оформлять каждый параграф на разных страничках.
Другой вариант для создания своей ИЛ - специальный сайт Квестер, на котором есть конструктор квестов. Там есть инструкция по созданию
игр и готовые работы различных авторов. Для иллюстрации приведу скриншот одной игры, под названием "Жизнь и удивительные приключения Нинурты Эло" Автор:Turmalin. В этом конструкторе
можно помещать свои иллюстрации и есть возможность использовать предметы, они отображаются в инвентаре.
|  |
Теперь рассмотрим существующие наиболее популярные платформы. Для адвентюр с текстовым интерфейсом и встроенным "парсером" существует платформа RTADS. Всё необходимое для работы на
этой платформе вы найдете на сайте: RTADS. Но для новичков рекомендую сначала в такие игры поиграть. Для игр, созданных на этой платформе,
нужен интерпретатор. Зайдите по опции в главном меню "Скачать" и скачайте набор игрока, затем скачайте игры. На своем компьютере создайте отдельную папку для этих игр - их вы
будете запускать из интерпретатора.
Для квестов существует множество различных платформ, но для новичков в программировании, лучше воспользоваться URQ или графически улучшенный FireURQ. Как и для всех платформенных игр, вам
потребуется для запуска и проверки своей работы программа интерпретатор. Нажав эту ссылку вы попадете на сайт, где можно скачать различные
интерпретаторы для проигрывания игр и утилиты для написания программ. Сами игры вы можете скачать здесь. Интерпретатор AkURQ больше
ориентирован на текстовые игры без графики, но в нем есть возможность вставлять картинки с помощью перехода в HTML режим - при этом картинки находятся всегда на одном месте,
а если их вставлять обычным способом - они перемещаются, что является недостатком платформы. Мультимедийным интерпретатором с расширенными
возможностями, в котором можно проигрывать музыку и помещать как статичные, так и движущиеся картинки (спрайты), является FireURQ.
Но, естественно, чем больше возможностей, тем сложнее само программирование.
Но в плане программирования FireURQ мало чем отличается от AkURQ, так как используется один специализированный квестовый язык URQL,
но есть некоторые особенности, которые описаны в фале документации в папке интерпретатора. В разделе Библиотека вы найдете много статей
и описание языка для создания своей игры.
Для написания программы на FireUrq (Фурке) можно воспользоваться обыкновенным блокнотом, который есть в каждой операционной системе, только расширение файла нужно будет
поменять на qst. Давайте создадим на этом языке несколько параграфов с переходами без предметов. Открываем блокнот и на чистом листе пишем так:
:1
cls
decordel
decoradd scr (65,55,0) image "gfx1.jpg"
pln
pln
pln
pln Лес перед вами. В сумерках деревья похожи на высоких часовых, молчаливо смотрящих на нежданного путника.
pln Где-то впереди на севере над лесом виднеется темный силуэт горы Шрекенштейн. Блеклая луна осторожно выглядывает из-за неё,
pln словно ожидает, когда же сядет солнце. Из глубины чащи слышится протяжный волчий вой, напоминая вам о том, что путь вовсе не будет легким.
pln Осматриваете опушку и обнаруживаете две тропинки, уходящие вглубь леса. Одна ведет, по-видимому, на северо-восток,
pln другая, по которой ходят реже, идет на северо-запад.
btn 2, Идти на северо-восток
btn 3, Идти на северо-запад
end
:2
cls
decordel
decoradd scr (65,55,0) image "gfx2.jpg"
pln
pln
pln
pln
pln Тропа ведет вас в глубь леса, уводя немного вправо от Шрекенштейна. Но идти еще очень далеко, и, возможно, путь еще изменит свое направление.
pln Под ногами хрустит ветка, и две птицы, сидевшие на дереве рядом, взмывают в закатное небо. Нужно успеть пройти как можно больше.
pln Лес не преподносит сюрпризов, и вас это вполне устраивает. Однако вскоре тропа раздваивается. От тропы, по которой вы шли, отходит другая на север.
pln По ней, если и ходят,то очень редко.
btn 4, Сменить направление и пойти на север
btn 5, Продолжать идти на северо-восток
end
:3
cls
decordel
decoradd scr (65,55,0) image "gfx3.jpg"
pln
pln
pln
pln
pln Вы движетесь на северо-запад. Однако вскоре под ногами начинает хлюпать вода.
pln Тропа ведет вас в болото. Если вы хотели найти дровосека, то сомнительно, чтобы он поселился в столь сыром месте.
pln Лес становится немного реже, а воды по обе стороны тропинки больше.
pln Похоже, не замочить ног не удастся. Но вот и новая развилка. Одна тропа уводит в том же направлении, в котором вы шли.
pln Вторая - идет на север. С одной стороны вам и нужно на север, с другой - вы незнакомы с местными дорогами и куда приведет тропа тоже неизвестно.
pln Но решать вам.
btn 6, Продолжать путь на северо-запад
btn 4, Пойти на север
end
:4
cls
decordel
pln Вы находитесь перед входом в пещеру. У чернеющего входа лежит огромный валун весь покрытый зеленым мхом. Конец.
end
:5
cls
decordel
pln Дорога была длинной и наконец я стал приближаться к какому-то возвышению. Оно находилось точно на севере.
btn 4, Идти на север
end
:6
cls
decordel
pln Вы движетесь на северо-восток. Тропа более-менее сухая, но заросла колючими кустарниками.
pln Вы весь израненный и поцарапанный, громко ругаясь, что выбрали не ту дорогу, выходите на тропу, ведущую на север.
btn 4, Идти дальше
end
Из приведённого примера видно, что параграфы начинаются с разделителя : и метки, в данном случае цифр. Если у вас есть картинки к игре, то нужно будет ввести перед вводом текста
три строчки. Одна с командой CLS - очистка экрана, другая удаляющая предыдущую картинку DECORDEL, третья - вывод картинки из той же папки, где будет находиться этот игровой файл (не забудьте поставить расширение qst в этом файле).
Это команда DECORADD SCR(x,y,z) IMAGE "", где x, y и z – координаты декоратора на экране. Параметр z используется для определения «глубины» декоратора, то есть можно накладывать
картинки друг на друга. Если картинка одна, то параметр z=0. В кавычках пишется название файла картинки. Далее каждая новая строка текста параграфа начинается
командой PLN, если у вас была выведена картинка, то нужно сделать на высоту картинки несколько пустых команд PLN без текста.
Затем идут одна или несколько опций переходов. Начинаются они командой BTN, после которой через пробел ставится метка перехода на другой параграф, а после
запятой пишется текст ссылки (опции). Завершается параграф командой END.
Для написание интерактивного рассказа данного примера достаточно, но если вы в игру хотите вставить какой-нибудь предмет и проверять его наличие, то для этого нужно освоить еще несколько
команд. Сначала приведу пример программы, а потом его разберем. Допустим вы попали в пещеру, внутри темно, но если у вас есть в наличие фонарик, то вы включаете его и рассматриваете
помещение. Для реализации этой части программы я изменю параграф 4 предыдущего примера и дополню новыми.
:4
cls
decordel
pln Вы находитесь перед входом в пещеру. У чернеющего входа лежит огромный валун весь покрытый зеленым мхом.
btn 7, Войти в пещеру
btn 8, Осмотреть камень
btn 9, Идти дальше по тропе
end
:7
cls
decordel
if фонарик=0 then pln Вы зашли в пещеру, здесь очень темно и ничего не видно.
if фонарик=1 then pln Вы зашли в пещеру и осветив стены фонариком, обнаружили надпись: "Заминировано".
btn 10,Пойти в глубь пещеры
btn 4,Выйти из пещеры
end
:10
cls
decordel
pln Через несколько шагов вы наступаете на что-то, просходит взрыв и вы умираете. Конец.
end
:8
cls
decordel
if фонарик=1 then pln Под камнем больше ничего нет.
if фонарик=0 then inv+ фонарик & pln Под камнем я обнаружил фонарик.
btn 4, Дальше
end
:9
cls
decordel
pln Я прошел дальше по тропе, обходя гору с пещерой стороной. Конец.
end
Теперь рассмотрим новые команды и логику игры. В параграфе 4 есть три опции, одна из которых ведет к осмотру валуна. Осматриваем валун в параграфе 8.
Здесь вы видите новые команды IF и THEN. Слово "фонарик" в данном случае не текст, а переменная, которая отвечает за наличие фонарика (может иметь значение 1 или 0), а
также имя самого предмета, который при взятии (INV+) появляется в инвентаре. Команда IF означает ЕСЛИ, а THEN - ТО. Так записывается условие. А строчка данная
переводится так: ЕСЛИ фонарик взят, ТО вывести сообщение "Под камнем больше ничего нет". Это нужно для того, если игрок будет несколько раз осматривать камень. Второе
условие звучит так: ЕСЛИ фонарик не взят, ТО взять фонарик и вывести сообщение "Под камнем я обнаружил фонарик". Символ & между командами означает последовательное исполнение
разных команд в одной строке. Те же условия есть и в седьмом параграфе, разобрать которые вы уже сможете самостоятельно. Логика этого участка программы проста. Если осмотреть валун, то
можно найти фонарик. Если не осматривать валун, а сразу идти в пещеру - ничего не увидит игрок и может погибнуть, а с фонариком он обнаружит предостерегающую надпись.
Если вы составили подобную программу и поиграли немного в неё, то заметили, что при гибели или при достижении конца, игра останавливается и для того, чтобы начать игру
заново, приходится перезапускать игру. Для перезапуска нужно нажать на слово "FireURQ" интерпретатора и выведется меню, а там нажать на опцию "Начать игру заново". А можно ли сделать перезапуск в самой игре опцией? Можно, но если в первом примере для этого достаточно установить в параграфе 4 команду перехода
на первый параграф:
btn 1, Начать игру заново
то с добавлением предметов в игру, необходимо при перезапуске очищать инвентарь командой INVKILL. Поставить её необходимо в самом начале игры. В нашем случае в первом параграфе.
Вот как будут выглядеть изменённые параграфы:
:1
invkill
cls
decordel
decoradd scr (65,55,0) image "gfx1.jpg"
pln
pln
pln
pln Лес перед вами. В сумерках деревья похожи на высоких часовых, молчаливо смотрящих на нежданного путника.
pln Где-то впереди на севере над лесом виднеется темный силуэт горы Шрекенштейн. Блеклая луна осторожно выглядывает из-за неё,
pln словно ожидает, когда же сядет солнце. Из глубины чащи слышится протяжный волчий вой, напоминая вам о том, что путь вовсе не будет легким.
pln Осматриваете опушку и обнаруживаете две тропинки, уходящие вглубь леса. Одна ведет, по-видимому, на северо-восток,
pln другая, по которой ходят реже, идет на северо-запад.
btn 2, Идти на северо-восток
btn 3, Идти на северо-запад
end
:10
cls
decordel
pln Через несколько шагов вы наступаете на что-то, просходит взрыв и вы умираете. Конец.
btn 1, Начать игру заново
end
:9
cls
decordel
pln Я прошел дальше по тропе, обходя гору с пещерой стороной. Конец.
btn 1, Начать игру заново
end
Остальные команды вы можете изучить в мануалах и инструкциях на сайте URQ. В этом выпуске я урок по квесто-строению закончу, а в следующем мы с вами ознакомимся с командами
для более качественного и красивого оформления вашей игры. Это будет касаться изменения цвета фона и цвета текста, изменения шрифта и его размера.
|