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.
Метки комнат также интересны, да :-)
Неактивен
Oreolek написал:
Окей, ещё парочка вопросов.
1. Есть ли ограничение на длину строки, как в Pascal?
2. Обязательно писать СТОЛЬКО WriteLn? Я перестал писать квесты на Паскале только потому, что мне было до чёртиков противно писать WriteLn каждый раз, когда я хотел вывести текст. (см. пункт 1)
3. Choicescript.
Метки комнат также интересны, да :-)
Ответ: да и да. Это паскаль и тут никуда не отвертеться. Согласен, эти проблемы нужно как-то решить, ведь есть препроцессор. Есть предложения?
Неактивен
Предложение есть.
Раз есть препроцессор и любовь к урке, сделай очередной урк-диалект.
Уркообразный код квеста будет препроцессором транслироваться в паскальский код.
Отредактировано Nex (07.10.2010 15:45)
Неактивен
Для урки есть FireURQ
Неактивен
Ну это было предложение по упрощению синтаксиса.
Если ты не хочешь упростить квестописателям жизнь, и во что бы то ни стало сохранить "оригинальность" и "паскальность", делай по-своему.
Неактивен
Oreolek написал:
1. Есть ли ограничение на длину строки, как в Pascal?
2. Обязательно писать СТОЛЬКО WriteLn? Я перестал писать квесты на Паскале только потому, что мне было до чёртиков противно писать WriteLn каждый раз, когда я хотел вывести текст. (см. пункт 1)
Мне удалось решить эту проблему. Никаких ограничений теперь нет и много WriteLn() писать не нужно (их вообще писать не нужно). Достаточно перед каждой новой строчкой ставить символ ' Это дает знать препроцессору, что дальше текстовая строка и он сам ее разбивает на нужные строки и добавляет к ним Write() и WriteLn(). Сами Write() и WriteLn() сохранены и тоже могут использоваться.
Спасибо за своевременное предложение Этим ты облегчил жизнь многим авторам.
Неактивен
Про "многих авторов" улыбнуло Не перестаю восхищаться оптимизмом автора.
(искренне, сарказм не искать )
Неактивен
Итак, все работает Вот скрин.
Неактивен
QPas в базовой реализации готов! Сообществу платформу уже представлю после КРИЛ'a.
Возможности платформы:
1. ООП и прочее, что дает нам язык паскаль.
2. Вставлять картинки в квест (в том числе и анимацию .gif).
3. Звуки и музыка в mp3 и wav.
4. Встроенный инвентарь.
5. Запаковка всего квеста в .zip-архив (файл с расширением .qz).
Осталось допилить некоторые мелочи. Но квесты писать уже можно. Если кто-то захочет писать на нем игру на КРИЛ-2010, свяжитесь со мной - я вышлю QPas. Пока готовлю простую документацию по диалекту паскаля, который используется в QPas.
Второе название платформы: Phoenix (Феникс).
Неактивен
Платформа IFPhoenix версии 0.2. Уже можно потрогать руками Вот скрины, кому интересно.
Качать: http://apis.ipsys.net/phoenix/
Отредактировано APROMIX (03.11.2010 11:10)
Неактивен
Спасибо, Eten Не заметил, как прокралась ошибка в адресе (регистр им. файл. сис. для unix-систем). Теперь все исправлено.
Неактивен
Хм, странно, до сих пор не могу найти файл. Глянь вот этот адресс: http://filekeeper.org/download/fairyedit/ifphoenix . У тебя по ссылке этот адресс на закачку выдается, а там пишет ошибку 404. Может чего упустил.
З.Ы.
Вот, когда увижу не 404 по закачке, тогда ты точно все исправил.
Неактивен
У меня все открывается Но вот прямая ссылка на закачку: http://filekeeper.org/download/fairyedit/IFPhoenix
Неактивен
Кстати... даже на фотке видно пару вещей, которые хотелось бы видеть в Куспе)
Неактивен
Что именно? Вроде же все это есть
Неактивен
Dark[Ol(U23)leneri] написал:
Кстати... даже на фотке видно пару вещей, которые хотелось бы видеть в Куспе)
... или в Фурке
Неактивен
Переименовывание инвентаря
Деление по однотипности
Полагаю, счетчик...
И это все без каких-либо дополнительных кодов. Просто написал почти непроизносимую функцию и оп-ля=)
Еще бы возможность открывать внутри предмет предмет, но это задроство со стороны разработчика)
Неактивен
Dark[Ol(U23)leneri] написал:
Переименовывание инвентаря
Деление по однотипности
Полагаю, счетчик...
Переименовывать можно и сейчас, однако в переименовании большого смысла нет. Вот тебе реально нужно было хоть раз это?
Деление по однотипности для написания игры тоже ни к чему. Однако, это можно сделать и сейчас.
Счетчик - подобные встроенные счетчики - плохо. Реализуется текущими средствами элементарно.
Неактивен
Господа, у меня к вам море вопросов
Деление по однотипности
Что это должно означать?
Счетчик - подобные встроенные счетчики - плохо
Почему плохо? Мне кажется - удобно. Есть ли другие варианты?
в переименовании большого смысла нет.
Смысл есть, если переименовать не сам инвентарь, а предмет в нем. Скажем, для обмена предметами не удаляем предмет, а потом ставим обратно его в инвентарь, а просто переименовываем
Неактивен
Счетчик - подобные встроенные счетчики - плохо
Почему плохо? Мне кажется - удобно. Есть ли другие варианты?
Не совсем понятна логика интерпретатора. У меня есть 3 предмета, я кликаю на них. Я хочу использовать все 3 предмета или только один из них? Например, будет логично как съесть сразу все 26 яблок в моей сумке, так и одно. Правда, результаты будут разными.
Думаю, Байт именно это и имеет в виду: счётчики побуждают авторов делать больше одинаковых вещей. Потому что теперь в инвентарь можно удобно скинуть не 3 яблока, а 26.
Неактивен
Я не понял мысли Oreolek'а про счетчики, но скажу, что имел в виду их фактическую бесполезность - переход на какую-либо локацию во многих ситуациях не означает ее посещение. А автору важны посещения, а не переходы на локацию.
Переименование - почему не удаляем? Вот, к примеру, у игрока есть яблоко. Каким образом яблоко может трансформироваться в шкаф? Ведь это уже будет совсем другой предмет?
UPD: Дошло, Oreolek писал про счетчик у предметов.
Отредактировано HzD_Byte (05.11.2010 07:11)
Неактивен
Насчёт переименования: у меня в "Чёрном Плаще" было. У тебя есть Неизвестная Штука, ты узнал, что это такое - название сменилось, предмет не изменился. Так что использовать рационально.
Насчёт счётчика локаций - смотря как реализовано. Можно действительно не зайти в локацию, но посетить её.
Неактивен
Ребят, тут речь о том, что любому новичку проще нажать на одну кнопку/ввести всего 1 функцию и получить то, что ему нужно, чем искать нужный код в примерах и вставлять туда, где это необходимо.
Это как с дизайном форумов. Есть куча скриптов, которые уже написаны, есть варианты решения таблицы в шапке и даже предложены альтернативные варианты доведения важной инфы до пользователя, но, когда форум создает новичек, ничего не понимающий в дизайне и, что важно, не умеющий искать, его форум состоит из тех примитивов, которые были доступнее всего.
я не говорю, что все эти вещи не реализованы в QSP. я говорю, что было бы неплохо видеть их всего 1 функцией, но даже если они и не появятся, я не обижусь=)
Неактивен
Кстати... спросить хотел, только темы не нашел... почему разработчики стараются сделать непохожие друг на друга языки программирования?)
Неактивен
Oreolek написал:
Например, будет логично как съесть сразу все 26 яблок в моей сумке, так и одно. Правда, результаты будут разными.
Яблоки нужно есть одно за другим, а не все сразу
Каким образом яблоко может трансформироваться в шкаф? Ведь это уже будет совсем другой предмет?
Просто. Ведь другие параметры объекта не заданы. Количество - 1. Сменяется только название в сумке персонажа.
переход на какую-либо локацию во многих ситуациях не означает ее посещение. А автору важны посещения, а не переходы на локацию.
Пример такого поведения в студию. Тогда просто не нужно считывать значение такого счетчика или самому его итерировать (такое тоже предусмотрено).
Кстати... спросить хотел, только темы не нашел... почему разработчики стараются сделать непохожие друг на друга языки программирования?)
Самовыражение, наверное
Неактивен
APROMIX, пока что практика расходится с твоей теорией
Неактивен
Ребят, тут речь о том, что любому новичку проще нажать на одну кнопку/ввести всего 1 функцию и получить то, что ему нужно, чем искать нужный код в примерах и вставлять туда, где это необходимо.
Ты не понимаешь. Есть базовый набор примитивов, которые пригодятся каждому (или большинству). И есть специализированные запросы такого, как ты, которому нужно, скажем, переименовывание объектов. И если это в движке возможно - это хорошо. А то, как это возможно - просто или придётся использовать некоторые хаки - уже второй вопрос. Всегда придётся для чего-то использовать хаки.
Кстати... спросить хотел, только темы не нашел... почему разработчики стараются сделать непохожие друг на друга языки программирования?)
Потому что каждому нужно своё, и он ставит свои задачи. Например: платформа URQ создавалась так, чтобы на ней было удобно делать игры даже не программисту. У неё процедурный собственный простой язык, в котором есть необходимый минимум. Платформа INSTEAD создавалась так, чтобы на ней было удобно делать игры программистам. У неё объектно-ориентированный язык, сложная (по сравнению с URQ) архитектура. К тому же, она использует существующий довольно широко распространённый язык Lua, а не придумывает свой. IPhoenix, как я понял, создавалась чтобы писать игры на Pascal.
Разработчики ставят перед собой разные задачи, и всё. Если делать "язык программирования, непохожий на остальные", получится ещё один никому не нужный эзотерический язык. Из всех эзотерических я не знаю (кроме Brainfuck) языка, который использовался бы на практике. Brainf*** используется же только потому, что его создатели ставили задачу сделать максимально простой для реализации язык (он очень просто реализуется даже технически, не то что программно).
Отредактировано Oreolek (05.11.2010 11:31)
Неактивен
Полностью согласен с Ореолеком. И про базовый набор, и про задачи платформ.
Вообще, многообразие - хорошо. Каждый автор может выбрать себе платформу(а часто и сообщество) по вкусу, а игроку в конечном итоге не очень важно на чем написана игра, главное чтоб играть можно было, и игра была интересной.
Неактивен
Oreolek написал:
IPhoenix, как я понял, создавалась чтобы писать игры на Pascal.
В нем совмещены 3 возможности: ОПП, процедурное программирование и программирование без программирования
Неактивен
Под непохожестью я имел в виду синтаксис... для одних и тех же команд порой используют разные названия
Неактивен
Dark[Ol(U23)leneri] написал:
Кстати... спросить хотел, только темы не нашел... почему разработчики стараются сделать непохожие друг на друга языки программирования?)
Потому что разработчики непохожи друг на друга
Неактивен
HzD_Byte написал:
APROMIX, пока что практика расходится с твоей теорией
Без хотя бы скромного примера мне тяжело понять, что и как
Замечу, что IFPhoenix из-за системы модулей - очень гибкая и расширяемая система
Кстати, сообщество, что бы вы еще хотели видеть в системе инвентаря (кроме существующих возможностей и меню предмета, которое будет добавлено позже в новых версиях)?
Неактивен
хэх)) ща найду пост. А ты реагируй как знаешь)
че-т я ссылку не нашел. Опишу общий смысл: код для вставки объекта/предмета/вещи в текст. Так чтобы при нажатии на него выходила менюшка как если бы он уже был в инвентаре. Разумеется, с возможностью все это дело менять)
Неактивен
Dark[Ol(U23)leneri] написал:
че-т я ссылку не нашел. Опишу общий смысл: код для вставки объекта/предмета/вещи в текст. Так чтобы при нажатии на него выходила менюшка как если бы он уже был в инвентаре. Разумеется, с возможностью все это дело менять)
Стесняюсь спросить, а зачем такое нужно?
Неактивен
Начал писать уроки по IFPhoenix в нашей Википедии.
Неактивен
APROMIX написал:
Dark[Ol(U23)leneri] написал:
че-т я ссылку не нашел. Опишу общий смысл: код для вставки объекта/предмета/вещи в текст. Так чтобы при нажатии на него выходила менюшка как если бы он уже был в инвентаре. Разумеется, с возможностью все это дело менять)
Стесняюсь спросить, а зачем такое нужно?
И тут меня послали=)
Неактивен
APROMIX написал:
Dark[Ol(U23)leneri] написал:
че-т я ссылку не нашел. Опишу общий смысл: код для вставки объекта/предмета/вещи в текст. Так чтобы при нажатии на него выходила менюшка как если бы он уже был в инвентаре. Разумеется, с возможностью все это дело менять)
Стесняюсь спросить, а зачем такое нужно?
Например, я в своём проекте использую именно этот подход. В описании локации упоминаются те или иные объекты (предметы, персонажи, переходы в другие локации), и если щёлкнуть мышкой на слове/словосочетании, с помощью которого этот объект включается в описание, то появляется менюшка с перечнем возможных действий. Вот тут есть пример.
Неактивен
Так будет часто, Дарк, если ты продолжишь писать мессаги, не владея информацией о предмете дискуссий (имеется в виду не только и не сколько эта ветка форума, так, просто к слову пришлось).
Отредактировано Серый Волк (10.11.2010 11:09)
Неактивен
Серый Волк, Дарк все верно сказал. Ему, как автору, нужна определенная фишка, которая уже есть в QSP.
Он предложил реализовать ее в платформе APROMIX'а.
APROMIX'у еще только предстоит познакомиться с запросами авторов, вот он и удивляется "а зачем?". Разработка платформы, которая удовлетворит прихоти разных авторов, труд нелегкий. То, каким автор платформы видит ее использование, очень редко совпадает с тем, как хотят ее использовать авторы.
А уж если вспомнить о присущем многим авторам стремлении выделиться за счет "технических" приблуд, всякого там "оригинального геймплея"...
В случае с INSTEAD, ситуацию сильно спасло то, что к платформе прилагалась готовая, мощная, привлекательная игра, показывающая "подход INSTEAD'а", и вдохновлявшая "сделать так же". Поэтому автор платформы не так сильно страдал от "прихотей" авторов, хотя и не избежал совсем этой участи.
APROMIX, мужайся!
Неактивен
я высказал свои соображения. Но до тех пор пока я не стану весомым автором, меня просто не будут слушать)) тут важен не критерий владения той или иной информации, а критерий значимости предлагающего)
Неактивен
Насколько я понял, если щелкнуть по определенному слову/словосочетанию в тексте локации (но не по кнопке-переходе внизу страницы), то должно вывалиться меню, в котором перечень возможных действий с объектом. Выбрал определенный пункт меню - переход на нужную локацию, где выполняется выбранное действие.
Хм. Это реализуется в движке просто , но определенную его часть нужно переписать заново
Если INSTED спасло ООП, то в IFPhoenix оно есть
Еще вопрос. Насколько удобен инвентарь в одном отдельном окне, а не как сейчас в одном окне с описанием локации?
П.С. Я авторов не отсылаю, а обхожусь бережно Просто их у меня пока нет
Неактивен
^^ когда-нибудь появятся)
Кому-нибудь все же придет в голову портировать, например, того же Хомячка)
Неактивен
Dark[Ol(U23)leneri] написал:
Но до тех пор пока я не стану весомым автором, меня просто не будут слушать)) тут важен не критерий владения той или иной информации, а критерий значимости предлагающего)
На IFWiki больше нет статьи "Мэтры". Речь сейчас идёт о новой платформе. Она младше любого из авторов РИЛ.
Cheshire написал:
INSTEAD спасло ООП
Автор INSTEAD знал, что ему надо и делал так, как хотел. Например, в INSTEAD нет кликов правой кнопки. Почему? Потому что автору так захотелось.
По теме. Всё, что мы тут предлагаем и размусоливаем - это пустой флейм. Программы самой по себе ещё нет. Платформы ещё нет. Даже сейчас в ней ещё много "заглушек" вместо реальных фич.
Насколько удобен инвентарь в одном отдельном окне, а не как сейчас в одном окне с описанием локации?
Не о том думаете. Инвентарь сейчас - это унылая дань традиции. Потому что все действия с инвентарём придётся делать в самой игре. То есть, каждая локация должна сама проверять, есть ли у игрока предмет и что он может с ним сделать. Вообще, большинство фич в IPhoenix, как я вижу, сделано больше по привычке ("я видел это вон там"), а не потому что они реально нужны. Например, по-моему, глупо обрамлять каждый квест в begin-end, если никто не будет писать код вне файла. Зачем это нужно, чтобы сделать блок var? Его можно выносить за begin-end и в движке. Лог игры и панель сообщений совершенно не нужны игрокам - а если вы начнёте писать туда осмысленные сообщения, то прочтение лога и сообщений могут даже помешать нормальной игре, вскрыв её секреты.
Если вам так интересно оформление и удобство... можно разрешить автору поставить не фон, а фоновый рисунок для квеста.
Повторюсь: пока что я не знаю ни одной выделяющейся черты этого поделия. Оно использует Pascal? Я не припомню в Pascal'е функции WC(). А здесь почему-то не работают вставки asm и такая родная функция WriteLn. Оно удобно? Вряд ли будет удобнее других. Оно красиво? Точно нет. Оно запускается на экзотических платформах вроде IPhone или Java? Нет, только... Windows. Можно ли здесь делать какие-нибудь особые игры? Нет, ничего, на что неспособны другие.
Я скажу очень банальную вещь, которую знает каждый из нас: платформы пишутся для игр, а не для авторов или для того, чтобы писать платформы. Например, если я хочу вставить в свой квест мини-игру в виде шахмат или Lines, я ищу платформу, на которой мне было бы удобно это сделать. Между прочим, я не знаю такой платформы, где можно было бы достаточно просто сделать даже крестики-нолики в середине квеста (хотя я знаю одну, где это хотя бы можно сделать).
И - если автор будет разрабатывать это дальше, я рекомендую ему самому написать (портировать) какую-нибудь игру на своей платформе, чтобы оценить, насколько она проста.
Неактивен
Я скажу очень банальную вещь, которую знает каждый из нас: платформы пишутся для игр, а не для авторов или для того, чтобы писать платформы
Скажу тебе как художник художнику платформописатель. Платформы пишутся потому, что автору-платформописателю этого хочется. Также как и игры, кстати. И утверждение, что та или иная платформа никому не нужна равнозначна утверждению "ваша игра отстой и отвратительная дешёвка". Т.е. является голословным и субъективным мнением конкретного человека. Тебе не нужна, а кому-то - нужна. А выяснять какая платформа лучше на основании фич - это частный случай сравнительной фаллометрии, что может быть забавным само по себе, но никак не является, на мой взгляд, зрелым поведением.
Неактивен
Oreolek написал:
Не о том думаете. Инвентарь сейчас - это унылая дань традиции. Потому что все действия с инвентарём придётся делать в самой игре. То есть, каждая локация должна сама проверять, есть ли у игрока предмет и что он может с ним сделать. Вообще, большинство фич в IPhoenix, как я вижу, сделано больше по привычке ("я видел это вон там"), а не потому что они реально нужны. Например, по-моему, глупо обрамлять каждый квест в begin-end, если никто не будет писать код вне файла. Зачем это нужно, чтобы сделать блок var? Его можно выносить за begin-end и в движке. Лог игры и панель сообщений совершенно не нужны игрокам - а если вы начнёте писать туда осмысленные сообщения, то прочтение лога и сообщений могут даже помешать нормальной игре, вскрыв её секреты.
Если вам так интересно оформление и удобство... можно разрешить автору поставить не фон, а фоновый рисунок для квеста.
Повторюсь: пока что я не знаю ни одной выделяющейся черты этого поделия. Оно использует Pascal? Я не припомню в Pascal'е функции WC(). А здесь почему-то не работают вставки asm и такая родная функция WriteLn. Оно удобно? Вряд ли будет удобнее других. Оно красиво? Точно нет. Оно запускается на экзотических платформах вроде IPhone или Java? Нет, только... Windows. Можно ли здесь делать какие-нибудь особые игры? Нет, ничего, на что неспособны другие.
Я скажу очень банальную вещь, которую знает каждый из нас: платформы пишутся для игр, а не для авторов или для того, чтобы писать платформы. Например, если я хочу вставить в свой квест мини-игру в виде шахмат или Lines, я ищу платформу, на которой мне было бы удобно это сделать. Между прочим, я не знаю такой платформы, где можно было бы достаточно просто сделать даже крестики-нолики в середине квеста (хотя я знаю одну, где это хотя бы можно сделать).
И - если автор будет разрабатывать это дальше, я рекомендую ему самому написать (портировать) какую-нибудь игру на своей платформе, чтобы оценить, насколько она проста.
Интересная мысль
Лог и сообщения можно отключать, если автору этого так захочется (DebugMode). WriteLn выкинул потому, что много WriteLn вредно , особенно подряд идущих. Используя WriteLn, автор ограничен длинной строки в 255 символов, что тоже не есть хорошо. WR = Write, WL = WriteLn, WC = Write in Center, но они без недостатков стандартных WriteLn.
Язык паскаль в фениксе несколько модифицирован под ИЛ. Отличается также тем, что для ИЛ многие функции в нем делают только одно нужное действие.
Убрать скобки begin ... end можно, но это нарушает философию паскаля Внутри кода begin и end же будут встречаться.
Как говорил выше, игру под IFPhoenix я делаю, называется "Глубокие пещеры", по сеттингу "Забытые Королевства". Вот скрин из игры.
Неактивен
Я скажу очень банальную вещь, которую знает каждый из нас: платформы пишутся для игр, а не для авторов или для того, чтобы писать платформы
Скажу тебе как платформописатель. Платформы пишутся потому, что автору-платформописателю этого хочется.
Но ведь почему-то хочется, правда?
Скрин интересный, даже очень. Оно на 0.2 разве возможно?
Неактивен
APROMIX написал:
Насколько я понял, если щелкнуть по определенному слову/словосочетанию в тексте локации (но не по кнопке-переходе внизу страницы), то должно вывалиться меню, в котором перечень возможных действий с объектом. Выбрал определенный пункт меню - переход на нужную локацию, где выполняется выбранное действие.
Хм. Это реализуется в движке просто , но определенную его часть нужно переписать заново
По щелчку у меня вызывается функция, собирающая меню для объекта для текущей ситуации (то есть у каждому пункту можно задать условие включения в меню), после чего выводится само меню. При выборе пункта вызывается соответствующая функция, а там уж — как автор пропишет (да, в QSP функции — по сути те же локации, но "переходом" я бы это не стал называть).
Неактивен
Знаете чего я хочу... мне бы фишку в проигрывателе а-ля "проинспектировать элемент" в Опере. Чтобы можно было навести мышкой и узнать в каком куске кода у меня этот баг... + исправить по возможности... Визуально работать интереснее))
Неактивен
по сути те же локации, но "переходом" я бы это не стал называть).
Отвечу вам чесно, я хорошо знаком только с одним интерпретатором - URQ. QSP только начал исследовать, прикольная, кстати штука! Так вот, IFPhoenix сейчас более похож на урку (не FireURQ, возможности которой более чем огромны) по принципу работы, но работает не на URQL, и в будущем будет развиваться несколько иначе, не клон же URQ делаю . Хочется все-таки своим путем шагать.
Неактивен
ОФФ-ТОП
Между прочим, я не знаю такой платформы, где можно было бы достаточно просто сделать даже крестики-нолики в середине квеста (с)
Между прочим, в последнее время концентрация людей, которые не знают, но при этом уверенно пишут недопосты на тяп, резко увеличилась. А крестики-нолики реализовывались даже на urql, причем не один раз.
/ОФФ-ТОП
Неактивен
Проект поглощен проектом QuestBox. Все наработки по IFPhoenix автоматом переходят в скриптовую часть QuestBox.
Неактивен
APROMIX написал:
Серый Волк написал:
Собирать и вовлекать новых людей надо с литературных тусовок
Я думаю среди кодеров найдется не мало обладателей литературного скилла
Среди кодеров - да. НЕ среди программистов на Паскале. Судя по всему это проект уже мёртв.
Ошибка в том что надо было раскручивать его в сообществе паскалистов, конкретно по компилятору fpc.
Это дало бы кросс-платформенность и привлечение паскалистов.
Они плазму на Паскале уже устали писать, насколько мне известно.
Я сам тему смотрю с мыслью: мало ли, может пакет сделать надо, кому-то будет полезно.
Ну нет, так нет.
Неактивен