IFPhoenix
плеер интерактивной литературы на языке Pascal
Новости проекта IFPhoenix
Сайт IFPhoenix
Скачать самую новую версию платформы IFPhoenix (QPas): http://apis.ipsys.net/phoenix/
Взялся за написание нового интерпретатора текстовых квестов. Основной язык для написания квестов - Pascal. Вывод локаций - в браузер (поддержка всего html). Будет поддержка звуков. Файлы квестов со всем содержимым можно будет запаковывать в архивы .zip.
Паскаль позволяет дробить сам квест на множество файлов-локаций, а затем включать с помощью {$I ...} в один файл. Я думаю эту фишку тоже использовать, что позволит дать квестописателям больше возможностей.
Ну и все в таком духе
Думаю успеть с платформой и квестом для нее на КРИЛ
Но не обещаю ![]()
Кто что думает по этой идее?
П.С.: Только не говорите мне про велосипеды, как это принято у нас в сообществе на подобных форумах. Цель у проекта немного другая - собрать (набрать, вовлечь) любителей РИЛ с форумов по программированию... Вроде так ![]()
Отредактировано APROMIX (10.11.2010 01:47)
Неактивен
Собирать и вовлекать новых людей надо с литературных тусовок (хотя бы и любительского уровня), а не со среды обитания программистов.
Появление новых платформ будет оправдано только в том случае, если они станут удобным инструментом для людей далёких от кодинга.
Но раз вместе с движком пишется и игра, что ж, тогда успехов)
Отредактировано Серый Волк (06.10.2010 11:16)
Неактивен
Серый Волк написал:
Собирать и вовлекать новых людей надо с литературных тусовок
Я думаю среди кодеров найдется не мало обладателей литературного скилла ![]()
Неактивен
То есть, он будет работать по CGI?
По-моему, действительно, для написания игр всегда удобно не думать о технической реализации. Pascal - далеко не самый высокоуровневый язык программирования (и уж точно не единственный, в котором можно дробить программу на файлы), и (что ещё важнее) далеко не самый распространённый.
Возникают также технические вопросы. Какой компилятор? Какая кодировка? На Паскале не так-то просто писать для Unicode, а это уже стандарт де-факто кодировки в Интернете (и не только там).
По-моему, если кодеры захотят - они сделают. Текстовые квесты - это далеко не самые сложные из программ.
Неактивен
Ну я тут набросал тестовый рабочий примерчик, как все это будет работать (интересовала сама возможность создания квестов на Паскале, но с простым синтаксисом). Все работает. В нем (в примере) есть 2 препроцессора и компилятор. Первый препроцессор превращает квест (сам код) в программу на Паскале, попутно исправляет чстые ошибки квестописателя (как последняя точка после последнего end и другие - особо знать паскаль не нужно, чтобы писать квесты). Думаю правильно будет сделать так, чтобы автор погружался в возможности платформы по мере изучения ее возможностей (вначале нужно знать только простой синтаксис паскаля, подобный урке и никакого html) и убрать все возможные ограничения функциональности (это реально, на максимуме доступны все возможности среды Дельфи + весь html).
Неактивен
Пиши. Плохие платформы нужны хорошим платформам.
Рекомендую изменить немного название, чтобы не возникало путаницы с QSP.
Отредактировано Nex (06.10.2010 13:20)
Неактивен
Oreolek написал:
То есть, он будет работать по CGI?
Нет.
Oreolek написал:
Какая кодировка? На Паскале не так-то просто писать для Unicode, а это уже стандарт де-факто кодировки в Интернете (и не только там).
Ну юникод в будущем будет. Также порт для Линукс и МакОси
Все дело в том, что пока разработчики одного Дельфийского компонента лишь планируют его переделать по юникод, а затем сделать для Lazarus'a. Другие используемые компоненты уже есть в Lazarus'e. Lazarus может компилить (уже проверял, проект скомпилился для Linux) для Windows, Linux & MacOSX.
Неактивен
Apromix написал:
Oreolek написал:
То есть, он будет работать по CGI?
Нет.
То есть, это будет просто..транслятор такой? Пишешь квест на паскале, загружаешь в программу на паскале, получается чистый html? А на выходе один файл или много? А компонент - это случайно не браузер? А квест надо будет допиливать до красивости?
Неактивен
Хм, квест то на паскале, но его разновидности для квестов (обогащенном разными процедурами и функциями, упрощающими жизнь автора). Пока есть (работают) эти:
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-шаблон в архив с игрой помещать, чтобы поменять внешний вид игры. Я пока так далеко не забирался в своих поисках ![]()
Неактивен
Да, плеер. Это все сказано о плеере. Читаем квест на диалекте паскаля и играем в него в плеере (менюшная платформа, хотя можно и парсер делать).
Неактивен
Nex написал:
Пиши. Плохие платформы нужны хорошим платформам.
Рекомендую изменить немного название, чтобы не возникало путаницы с QSP.
А я наоборот не рекомендую этого делать! Чай не майкрософт. ![]()
Неактивен
Nex написал:
Рекомендую изменить немного название, чтобы не возникало путаницы с QSP.
Вообще то я смотрю в сторону урки
, а не QSP. Это сокращение. Есть еще короче QP. А полное название - QuestPascal. Разве может быть путаница? Рассмотрю любые другие названия ![]()
Неактивен
Из других названий только что придумал PascalQuest и QuestPas. Называйте как хотите, смысл не поменяется ![]()
Неактивен
Ну и ладненько
С названием определились
Уже хорошо.
Неактивен
Nex написал:
Угу. Однажды автор платформы меня не послушал, и назвал свою платформу "ТОМ". Ну и где она теперь?
Да называй хоть Quest Soft Pascal
Nex, а куда делись твои завывания о велосипедах?! Странно ты себя как-то ведешь. ![]()
А вообще, QSP не является торговой маркой, хотя со стороны авторского права на название мне добавить нечего. Но в чем-то Nex прав. APROMIX, проверь свои названия в поисковиках, а потом выбери самое подходящее. Например, я не мог назвать свой персональный сайт eten.ru, т.к. он уже занят, СТК в поисковике тоже путаницу создает, а LASOFTGAME.ru уже используется каким-то магазином (видать словцо красивое и запоминающееся, но мне этот домен давно уже не нужен).
И еще, не обязательно гнаться за обревеатура и на английский манер. Неоргек - это чисто название, связанное с сутью моего проекта, при этом это слово никем не использовалось, да и на разные языки оно пишется просто, например англ. NEORGEK.
Моя рекомендация, найди нормальное название, что будет иметь какую-то связь с твоим проектом и желательно не сложное. Плюс, редко встречаемое поисковике, меньше хлопот с его продвижением будет. ![]()
Неактивен
Nex написал:
Однажды автор платформы меня не послушал, и назвал свою платформу "ТОМ". Ну и где она теперь?
Язвительности подобного уровня, честно говоря, не ожидал. Остервенелая ксенофобия какая-то.
P.S. Время КРИЛ покажет. Будем надеяться...
This message was generated automatically by the NooS Соnscience System. You do not need to reply.
Неактивен
Офтоп:
NooS написал:
Nex написал:
Однажды автор платформы меня не послушал, и назвал свою платформу "ТОМ". Ну и где она теперь?
Язвительности подобного уровня, честно говоря, не ожидал. Остервенелая ксенофобия какая-то.
Не вижу ничего язвительного
помоему хорошая шутка - судьба платформы зависит от её названия в самую последнюю очередь )))))
Неактивен
Опять жаркий спор "ниочем" ![]()
"Как вы яхту назовете - так она и поплывет!"
Подумал я над названием хорошенько. И ничего лучше QPas (QuestPas, QuestPascal, QPascal, QP, IFPas, IFPascal) не придумал
К сожалению...
Ну и последние вести с фронта. Вчера я понял, что портирование QP на Лазарус (чтобы затем и на Линукс и другие сис. платформы) будет жарким ![]()
Неактивен
APROMIX написал:
Ну и последние вести с фронта. Вчера я понял, что портирование QP на Лазарус (чтобы затем и на Линукс и другие сис. платформы) будет жарким
А главное, зачем? Для собственного развития? Тогда не вопрос.
Неактивен
Надеюсь правила КРИЛ разрешают открыть малюсенькую дверцу квеста и показать часть его кода, чтобы все поняли, какими будут квесты на 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)
Неактивен
APROMIX написал:
Подумал я над названием хорошенько. И ничего лучше QPas (QuestPas, QuestPascal, QPascal, QP, IFPas, IFPascal) не придумал
К сожалению...
Вот в рамках хорошей шутки Nex'а невольно приходит в голову:
ПасКвИЛь — квест интерактивной литературы на Паскале...
Неактивен
Окей, ещё парочка вопросов.
1. Есть ли ограничение на длину строки, как в Pascal?
2. Обязательно писать СТОЛЬКО WriteLn? Я перестал писать квесты на Паскале только потому, что мне было до чёртиков противно писать WriteLn каждый раз, когда я хотел вывести текст. (см. пункт 1)
3. Choicescript.
Метки комнат также интересны, да :-)
Неактивен