Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
06.10.2010 10:42

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

QPas - платформа для написания квестов на Pascal'e

IFPhoenix
плеер интерактивной литературы на языке Pascal

Новости проекта IFPhoenix
Сайт IFPhoenix
Скачать самую новую версию платформы IFPhoenix (QPas): http://apis.ipsys.net/phoenix/

Взялся за написание нового интерпретатора текстовых квестов. Основной язык для написания квестов - Pascal. Вывод локаций - в браузер (поддержка всего html). Будет поддержка звуков. Файлы квестов со всем содержимым можно будет запаковывать в архивы .zip.

Паскаль позволяет дробить сам квест на множество файлов-локаций, а затем включать с помощью {$I ...} в один файл. Я думаю эту фишку тоже использовать, что позволит дать квестописателям больше возможностей.

Ну и все в таком духе smile Думаю успеть с платформой и квестом для нее на КРИЛ smile Но не обещаю smile

Кто что думает по этой идее?

П.С.: Только не говорите мне про велосипеды, как это принято у нас в сообществе на подобных форумах. Цель у проекта немного другая - собрать (набрать, вовлечь) любителей РИЛ с форумов по программированию... Вроде так smile

Отредактировано APROMIX (10.11.2010 01:47)

Неактивен

0    0    #2
06.10.2010 12:41

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Серый Волк написал:

Собирать и вовлекать новых людей надо с литературных тусовок

Я думаю среди кодеров найдется не мало обладателей литературного скилла smile

Неактивен

0    0    #3
06.10.2010 13:02

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

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

Неактивен

0    0    #4
06.10.2010 13:16

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Oreolek написал:

То есть, он будет работать по CGI?

Нет.

Oreolek написал:

Какая кодировка? На Паскале не так-то просто писать для Unicode, а это уже стандарт де-факто кодировки в Интернете (и не только там).

Ну юникод в будущем будет. Также порт для Линукс и МакОси smile  Все дело в том, что пока разработчики одного Дельфийского компонента лишь планируют его переделать по юникод, а затем сделать для Lazarus'a. Другие используемые компоненты уже есть в Lazarus'e. Lazarus может компилить (уже проверял, проект скомпилился для Linux) для Windows, Linux & MacOSX.

Неактивен

0    0    #5
06.10.2010 16:26

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

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

Код:

procedure Write(s: string);
procedure Box(msg: string);
procedure But(lbl, msg: string);
procedure Play(FileName: string);
procedure Music(FileName: string);
procedure Stop;
procedure Pause;
procedure Resume;
procedure ClrScr;
procedure FontColor(S: string);
procedure BkColor(S: string);
procedure FontSize(I: Integer);
procedure Sleep(MS: Integer);
procedure Title(s: string);
function Read(question: string): string;

Ну и с десяток внутренних констант.

Я не думаю, что это транслятор. На выходе мы не получаем файл .html. Локация отображается во встроенном контроле IE как страница html. Создается динамически, браузер загружает страницу about:blank, а дальше добавляется динамический html.

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

Неактивен

0    0    #6
06.10.2010 16:45

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Да, плеер. Это все сказано о плеере. Читаем квест на диалекте паскаля и играем в него в плеере (менюшная платформа, хотя можно и парсер делать).

Неактивен

0    0    #7
06.10.2010 21:19

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Nex написал:

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

Вообще то я смотрю в сторону урки smile, а не QSP. Это сокращение. Есть еще короче QP. А полное название - QuestPascal. Разве может быть путаница? Рассмотрю любые другие названия smile

Неактивен

0    0    #8
06.10.2010 21:26

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Из других названий только что придумал PascalQuest и QuestPas. Называйте как хотите, смысл не поменяется smile

Неактивен

0    0    #9
07.10.2010 01:38

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Ну и ладненько smile С названием определились smile Уже хорошо.

Неактивен

0    0    #10
07.10.2010 10:40

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Опять жаркий спор "ниочем" smile

"Как вы яхту назовете - так она и поплывет!"

Подумал я над названием хорошенько. И ничего лучше QPas (QuestPas, QuestPascal, QPascal, QP, IFPas, IFPascal) не придумал smile К сожалению...

Ну и последние вести с фронта. Вчера я понял, что портирование QP на Лазарус (чтобы затем и на Линукс и другие сис. платформы) будет жарким smile

Неактивен

0    0    #11
07.10.2010 11:32

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Надеюсь правила КРИЛ разрешают открыть малюсенькую дверцу квеста и показать часть его кода, чтобы все поняли, какими будут квесты на QPas и попутно дали рекомендации, как избежать многих граблей:

Код:

// Квест "Легенда о Золотом Геккончике"

// В этом блоке описываем свои переменные, константы, типы и подпрограммы
const // Константы
  GQVersion = '1.0'; // Версия квеста

var // Переменные
  Power: Byte;  // Магическая сила золотистого геккончика
  Way: Byte;    // Варианты прохождения

// Это блок основной части квеста
// В нем содержатся все локации
begin

// Первая локация menu (пишем названия локаций латиницей!)
// Главное меню игры
##menu// Локация всегда должна быть в отдельной строке и начинаться с ##

// Начальные значения для всех переменных квеста
Way := 0; // Пока нет пути к спасению :)
Power := 80; // Начальная сила геккончика

// Надпись в шапке интерпретатора
Title('Главное меню - Приключения Золотого Геккончика');
WriteLn('');
WriteLn('');
WriteLn('');
But('start', 'Играть');
But('about', 'О квесте');
But('exit', 'Выход');// В этой кнопке используется специальная метка exit
quit;
// Каждая локация заканчивается quit,
// но в отличие от exit или halt (выход из
// квеста), quit обозначает конец локации (только выход из локации)
// и не завершает работу квеста

// Это локация Common, которая вызывается каждый раз,
// когда мы переходим на новую локацию (кроме самой common)
// Может использоваться для многих целей
// В этом квесте я ее использую, чтобы растрачивать запас сил геккончика
##common
Power := Power - 1;
quit;

##about
Title('Информация о квесте - Приключения Золотого Геккончика');
WriteLn('Как все начинается');
WriteLn('Вы - крохотный золотистый геккончик очень редкого вида, попавший в неволю, но мечтающий вырваться на свободу. ');
Write  ('И вот, однажды, такой случай представился...');
WriteLn('Автор');
WriteLn('Сергей Ткач (Apromix), bees@meta.ua');
WriteLn('Спасибо');
WriteLn('... всему сообществу РИЛ за тестирование, советы и обнаруженные ошибки!');
WriteLn('Информация');
WriteLn('Версия интерпретатора QPas: ' + QPVersion + '.');
WriteLn('Версия квеста: ' + GQVersion + ', Октябрь 2010.');
WriteLn('Количество локаций: ' + IntToStr(LocCount) + '.');
But('menu', 'Назад в меню...');
quit;

##start // Приключение начинается
Title('Террариум - Приключения Золотого Геккончика');
WriteLn('');
WriteLn('');
WriteLn('');
But('', '');
But('', '');
But('', '');
quit;

##loc
WriteLn('');
But('', '');
quit;

##linux // Выиграл :)
Title('Победа! - Приключения Золотого Геккончика');
WriteLn('Ах, как приятен вкус свободы! ');
case Way of
  1: Write('Забравшися в спасительную норку под большим валуном, вы чувствуете себя в безопасности.');
  2: Write('');
  3: Write('');
end;
WriteLn('Утомленный стремительным побегом золотистый геккончик засыпает и ему впервые в жизни сняться приятные сны...');
But('menu', 'Ура! Победа!!!');
quit;

##windows// Проиграл :(
Title('Поражение - Приключения Золотого Геккончика');
WriteLn('К великому сожалению заветной мечте золотистого геккончика не суждено сбыться...');
But('menu', 'Может, попробовать снова?');
quit;

end.// Это конечный end и точка после него обязательна для Pascal (но не для QPas :) )

Отредактировано APROMIX (07.10.2010 11:39)

Неактивен

0    0    #12
07.10.2010 15:01

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Oreolek написал:

Окей, ещё парочка вопросов.
1. Есть ли ограничение на длину строки, как в Pascal?
2. Обязательно писать СТОЛЬКО WriteLn? Я перестал писать квесты на Паскале только потому, что мне было до чёртиков противно писать WriteLn каждый раз, когда я хотел вывести текст. (см. пункт 1)
3. Choicescript.
Метки комнат также интересны, да :-)

Ответ: да и да. Это паскаль и тут никуда не отвертеться. Согласен, эти проблемы нужно как-то решить, ведь есть препроцессор. Есть предложения?

Неактивен

0    0    #13
07.10.2010 16:03

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Для урки есть FireURQ smile

Неактивен

0    0    #14
08.10.2010 11:52

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Oreolek написал:

1. Есть ли ограничение на длину строки, как в Pascal?
2. Обязательно писать СТОЛЬКО WriteLn? Я перестал писать квесты на Паскале только потому, что мне было до чёртиков противно писать WriteLn каждый раз, когда я хотел вывести текст. (см. пункт 1)

Мне удалось решить эту проблему. Никаких ограничений теперь нет и много WriteLn() писать не нужно (их вообще писать не нужно). Достаточно перед каждой новой строчкой ставить символ ' Это дает знать препроцессору, что дальше текстовая строка и он сам ее разбивает на нужные строки и добавляет к ним Write() и WriteLn(). Сами Write() и WriteLn() сохранены и тоже могут использоваться.

Спасибо за своевременное предложение smile Этим ты облегчил жизнь многим авторам.

Неактивен

0    0    #15
08.10.2010 12:29

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Итак, все работает smile Вот скрин.


Прикрепленные файлы:
QPas1.png, Размер: 29,478 байт, Скачано: 214

Неактивен

0    0    #16
09.10.2010 11:07

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

QPas в базовой реализации готов! smile Сообществу платформу уже представлю после КРИЛ'a.

Возможности платформы:
1. ООП и прочее, что дает нам язык паскаль.
2. Вставлять картинки в квест (в том числе и анимацию .gif).
3. Звуки и музыка в mp3 и wav.
4. Встроенный инвентарь.
5. Запаковка всего квеста в .zip-архив (файл с расширением .qz).

Осталось допилить некоторые мелочи. Но квесты писать уже можно. Если кто-то захочет писать на нем игру на КРИЛ-2010, свяжитесь со мной - я вышлю QPas. Пока готовлю простую документацию по диалекту паскаля, который используется в QPas.

Второе название платформы: Phoenix (Феникс).

Неактивен

0    0    #17
03.11.2010 11:09

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Платформа IFPhoenix версии 0.2. Уже можно потрогать руками smile Вот скрины, кому интересно.

Качать: http://apis.ipsys.net/phoenix/

Отредактировано APROMIX (03.11.2010 11:10)


Прикрепленные файлы:
1.png, Размер: 91,865 байт, Скачано: 205
3.png, Размер: 16,991 байт, Скачано: 198

Неактивен

0    0    #18
03.11.2010 12:09

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Спасибо, Eten smile Не заметил, как прокралась ошибка в адресе (регистр им. файл. сис. для unix-систем). Теперь все исправлено.

Неактивен

0    0    #19
03.11.2010 19:08

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

У меня все открывается smile Но вот прямая ссылка на закачку: http://filekeeper.org/download/fairyedit/IFPhoenix

Неактивен

0    0    #20
04.11.2010 12:05

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Dark[Ol(U23)leneri] написал:

Кстати... даже на фотке видно пару вещей, которые хотелось бы видеть в Куспе)

... или в Фурке smile

Неактивен

0    0    #21
05.11.2010 00:08

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Господа, у меня к вам море вопросов smile

Деление по однотипности

Что это должно означать?

Счетчик - подобные встроенные счетчики - плохо

Почему плохо? Мне кажется - удобно. Есть ли другие варианты?

в переименовании большого смысла нет.

Смысл есть, если переименовать не сам инвентарь, а предмет в нем. Скажем, для обмена предметами не удаляем предмет, а потом ставим обратно его в инвентарь, а просто переименовываем smile

Неактивен

0    0    #22
05.11.2010 10:24

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Oreolek написал:

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

Яблоки нужно есть одно за другим, а не все сразу smile

Каким образом яблоко может трансформироваться в шкаф? Ведь это уже будет совсем другой предмет?

Просто. Ведь другие параметры объекта не заданы. Количество - 1. Сменяется только название в сумке персонажа.

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

Пример такого поведения в студию. Тогда просто не нужно считывать значение такого счетчика или самому его итерировать (такое тоже предусмотрено).

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

Самовыражение, наверное smile

Неактивен

0    0    #23
05.11.2010 12:36

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Oreolek написал:

IPhoenix, как я понял, создавалась чтобы писать игры на Pascal.

В нем совмещены 3 возможности: ОПП, процедурное программирование и программирование без программирования smile

Неактивен

0    0    #24
10.11.2010 01:54

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

HzD_Byte написал:

APROMIX, пока что практика расходится с твоей теорией smile

Без хотя бы скромного примера мне тяжело понять, что и как smile

Замечу, что IFPhoenix из-за системы модулей - очень гибкая и расширяемая система smile

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

Неактивен

0    0    #25
10.11.2010 02:08

APROMIX
Участник (+34, -6)
Откуда: Черновцы, Украина
Зарегистрирован: 12.06.2008
Сообщений: 146
Вебсайт

Творчество избавляет человека от трех главных зол - скуки, порока и нужды.
Мои РИЛ проекты

Re: QPas - платформа для написания квестов на Pascal'e

Dark[Ol(U23)leneri] написал:

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

Стесняюсь smile спросить, а зачем такое нужно?

Неактивен

Powered by PunBB
© copyright 2001–2021 iFiction.Ru