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.
Метки комнат также интересны, да :-)
Неактивен