С момента публикации альфы прошло много времени. Платформа была полностью переработана.
Все примеры в этой ветке недействительны, а прикрепленные файлы окончательно устарели!
Версия 0.2.0.0 alpha
http://www.filehoster.ru/files/r4553 (всего 36 закачек.)
В файле проигрыватель + демоигра.
И то и другое все еще "сыровато", прошу больно не бить.
----------------------
Версия 0.2.1.0 alpha
http://www.filehoster.ru/files/r9252 - проигрыватель+демоигра.
http://www.filehoster.ru/files/r9256 - исходники проигрывателя (front-end)
Версия 0.2.1.1 alpha (bug-fix)
http://www.filehoster.ru/files/r9661 - 13 закачек - проигрыватель+демоигра.
http://www.filehoster.ru/files/r9662 - 6 закачек - исходники проигрывателя
Версия 0.2.1.2 alpha (bug-fix)
плеер+демоига
исходники оболочки
----------------------
Версия 0.2.2.0 alpha
проигрыватель+демоигра
исходники консольного проигрывателя
Отредактировано ASBer (16.06.2008 13:15)
Неактивен
Несомненно проделана большая работа, получен бесценный опыт в разработке трансляторов и т.д., но, ИМХО, целесообразность разработки вызывает
... двух-страничный флуд...
несмотря на то, что преследовались...
...тот же флуд в обличии аргументов...
разработка стандартной библиотеки - не менее...
...рассуждения о необдуманных разработках....
до разработки платформы неплохо бы написать пару...
...много букоф....
З.Ы.
Тем не менее интересны подробности проектирования и реализации На чем все это писалось (язык, среда, инструментальные средства), какая часть системы оказалась наиболее трудоемкой и т.д.
Отредактировано Gesperid (24.03.2008 16:22)
Неактивен
Gesperid написал:
разработка стандартной библиотеки - не менее...
в процессе...
Gesperid написал:
З.Ы.
Тем не менее интересны подробности проектирования и реализации На чем все это писалось (язык, среда, инструментальные средства), какая часть системы оказалась наиболее трудоемкой и т.д.
C++, Borland Builder(без использования VCL).
Наиболее трудоемким традиционно является парсер (в альфа версии парсера практически нет, он все еще в разработке).
Отредактировано ASBer (24.03.2008 16:37)
Неактивен
A игрушка-то кстати, симпатичная. Милая такая, судя по тексту. В общем, респект.
Неактивен
ASBer написал:
Наиболее трудоемким традиционно является парсер (в альфа версии парсера практически нет, он все еще в разработке).
Уже давно (лет 20-30) как не традиционно, если ты под парсером понимаешь синтаксический анализатор (СА), конечно. А вообще, рекомендую не писать СА с нуля, а погуглить на предмет генераторов - Coco\R, ANTLR, Flex & Bison, etc.
З.Ы.
Демо и в самом деле приятное
Неактивен
Gesperid я имел ввиду анализ команд на естественном (русском) языке.
С синтаксическим анализатором я на мой взгляд справился, но за наводки большое спасибо, обязательно поинтересуюсь.
Неактивен
Потестил игру и движок:
Достоинства:
1. я не программер, но код относительно понятен... хотя не вполне... Вроде бы это ООП, а не процедурный язык, верно?
2. функции на русском языке... надо посмотреть надо ли переключать раскладку при написании...
Можно сделать по другому или лучше:
1. Текст вплотную прижимается к краям, слова переносятся не по правилам переноса и не целиком - читать неудобно.
2. Прокрутки нет, когда свойства окна делаешь по размеру экрана, - бог с ним, но нет возможности выделить и сохранить/скопировать текст
3. Мама-мышь почему-то пишется без дефиса: "мама мышь"
Неактивен
Korwin написал:
Потестил игру и движок:
Огромное Спасибо! Очень нужен взгляд со стороны, у самого уже "глаз замылился".
Korwin написал:
... но код относительно понятен... хотя не вполне... Вроде бы это ООП, а не процедурный язык, верно?
Это ООП, хотя местами неклассический. Постараюсь документироваться к бете.
Korwin написал:
2. функции на русском языке... надо посмотреть надо ли переключать раскладку при написании...
Имена объектов, свойств и методов могут быть как на английском, так и на русском. Ключевые слова также будут иметь русские синонимы (сейчас только частично). Раскладку переключать надо. На русской раскладке слишком уж беден набор символов.
Korwin написал:
1. Текст вплотную прижимается к краям, слова переносятся не по правилам переноса и не целиком - читать неудобно.
Исправлю к бете. (сделано)
Вообще есть идея разделить движок и интерфейс. Возможно кто-нибудь из разработчиков захочет сделать мультимедийный интерфейс, а консоль останется как демо-интерфейс или для отладки. (сделано)
Korwin написал:
2. Прокрутки нет, когда свойства окна делаешь по размеру экрана, - бог с ним, но нет возможности выделить и сохранить/скопировать текст
Посмотрю, но не уверен что здесь можно что-то сделать - консоль стандартная -виндузовая.
Korwin написал:
3. Мама-мышь почему-то пишется без дефиса: "мама мышь"
Ок. Исправлю.
Отредактировано ASBer (13.04.2008 21:02)
Неактивен
но нет возможности выделить и сохранить/скопировать текст
Открываешь консоль, нажимаешь левой кнопкой (одним кликом) на иконку программы в окне. Потом выбираешь пункт "Изменить->Выделить все" и
"Изменить->Копировать". После этого, открываешь Word и вставка. Это все, что можно сделать используя видовскую консоль, увы но это так.
Неактивен
Не знал! Eten, спасибо! Правда, нет ничего невозможного!
2ASBer : можно, наверное, сделать какое-то отключаемое форматирование текста, чтобы перенос делался по словам, а не где попало?
Отредактировано Korwin (26.03.2008 05:28)
Неактивен
ASBer написал:
http://www.filehoster.ru/files/r4553
В файле проигрыватель + демоигра.
С почином, значит?
Хорошо, только плеер - это, всё-таки, программа, дающая возможность выбрать файл для проигрывания, а не берущая по умолчанию файл с предопределённым именем.
Неактивен
2Korwin Переносы слов давно в плане проекта. Обязательно сделаю! (сделано)
2Owl Wilson С выбором файла некоторые затруднения...
Варианты:
1. передавать имя файла в командной строке параметром. (сделано)
2. открывать файл через стандартное диалоговое окно выбора файла. (сделано)
3. открывать файл специальной командой в консоли с набором вручную.
1. вариант обязательно будет реализован независимо от 2 и 3.
2. вероятно можно сделать, хоть это и ломает концепцию консольного ввода.
3. считаю неудобным, реализовано не будет.
возможно есть еще варианты?
Отредактировано ASBer (21.04.2008 17:22)
Неактивен
ASBer, надеюсь это там у тебя в игре не все команды приведены. А то похоже на специализированный проигрывателль пока, что. Когда читаешь, ощущение что читаю программный код смахивающий на Си. В остальном все понятно, хочется почитать документацию.
Вопрос: а есть ли в команде # <текст> возможность не писать весь текст в одну строку, а писать в несколько строк? Или у тебя одна команда равно одной строке?
З.Ы.
Учти, высказал свое мнение основываясь на собственных знаниях и информации в твоем архиве.
Неактивен
2Eten
1. В демке использованы не все возможности проигрывателя.
Постараюсь это исправить - демоигра будет дорабатываться.
2. можно использовать формат:
#{"текст
текст
текст"}
хотя проще писать:
#текст
#текст
#текст
результат будет тот же.
Отредактировано ASBer (26.03.2008 11:33)
Неактивен
Версия 0.2.1.0 alpha
http://www.filehoster.ru/files/r9252 - проигрыватель+демоигра.
http://www.filehoster.ru/files/r9256 - исходники проигрывателя (front-end)
----------------------------------------------------
Спрятал движок в .dll-ку. Консольный проигрыватель выложил в виде исходников (C++ Borland Buider 6).
Сделал перенос слов и загрузку файла по параметру из командной строки.
Отредактировано ASBer (28.03.2008 17:36)
Неактивен
ASBer написал:
Версия 0.2.1.0 alpha
http://www.filehoster.ru/files/r9252 - проигрыватель+демоигра.
http://www.filehoster.ru/files/r9256 - исходники проигрывателя (front-end)
----------------------------------------------------
Спрятал движок в .dll-ку. Консольный проигрыватель выложил в виде исходников (C++ Borland Buider 6).
Сделал перенос слов и загрузку файла по параметру из командной строки.
ASBer, программа требует CC3260MC.dll и без нее не работает у меня. Но!
Нашел, скачал. Ругается, что данная dll не является приложением Windows NT. (У меня XP, но дуцмаю, не в этом дело.)
В общем, что делать?
Неактивен
упс, ушел разбираться.
с CC3260MC.dll понятно, недосмотрел...
про Windows NT пока не понятно, у меня работает на Viste и на XP...
Неактивен
Версия 0.2.1.1 alpha (bug-fix)
http://www.filehoster.ru/files/r9661 - проигрыватель+демоигра.
http://www.filehoster.ru/files/r9662 - исходники проигрывателя
Перекомпилировал файл TQ_front.exe - борландовские .dll больше не нужны.
Попутно исправил ошибку в переносе слов.
Проверил все на чистой машине под Win XP - работает!
Отредактировано ASBer (07.04.2008 17:48)
Неактивен
ASBer Лучший вариант - выбор файла с помощью меню, т.е. чисто консольное окно не прокатывает, если, конечно, ты не захочешь реализовать это в нём в псевдографике на манер старых IDE под DOS.
Теперь по существу движка :
мышонок> осмотреть стол
Типичная обстановка обычного мышиного домика.
Пусть даже движок не понял/не нашёл указанного в описании стола, но ведь он должен понимать, что действие "осмотреть" вызывается сейчас не к локации вообще, а к определённому объекту.
Неактивен
Owl Wilson написал:
ASBer Лучший вариант - выбор файла с помощью меню, т.е. чисто консольное окно не прокатывает, если, конечно, ты не захочешь реализовать это в нём в псевдографике на манер старых IDE под DOS.
Да и я тоже склоняюсь к меню. Сделаю. (сделано)
Псевдографику делать сложнее, да и полный изврат это на мой взгляд.
Owl Wilson написал:
Теперь по существу движка :
мышонок> осмотреть стол
Типичная обстановка обычного мышиного домика.
Пусть даже движок не понял/не нашёл указанного в описании стола, но ведь он должен понимать, что действие "осмотреть" вызывается сейчас не к локации вообще, а к определённому объекту.
В данном случае движок нашел объект "Мебель" и вывел его описание. Описание локации выводится по команде "осм", "осмотреться", "осмотреть комнату".
Отредактировано ASBer (21.04.2008 17:28)
Неактивен
Принципы формирования согласованного текста (часть 1)
В системе имеется возможность формирования текстов по шаблону.
Шаблон – это строка с включениями выражений, заключенных в фигурные скобки. Выражения в фигурных скобках являются вычисляемыми. При использовании такого шаблона в строку вместо фигурных скобок подставляется результат их вычисления.
Примеры:
var X= «X={2+3}»
результат: переменная X содержит строку «X=5»
#{2+3}
результат: на экран выведено сообщение – 5
#у тебя {2+3} яблок.
результат: на экран выведено – у тебя 5 яблок.
Выражения, помимо операций над числами или строками, могут содержать два специальных оператора для согласования объектов (или аспектов объектов).
Оператор «*» производит согласование объект по согласующему ключу. Согласующий ключ может быть указан явно, или получен из объекта (или его аспекта). Результатом действия оператора является строка с требуемой формой.
Пример:
#у {Вася*Рп} {2+3} яблок.
результат: на экран выведено – у Васи 5 яблок.
«Рп» здесь – явно указанный согласующий ключ.
У объекта «Вася» должен быть определен аспект по умолчанию – title:
Вася.title = «Вас%;; Ип; Ип=я; Рп=и; Дп=е; Вп=ю; Тп=ей; Пп=е;»
Оператор «:» указывает что свойство объекта используется как аспект.
Пример:
var X= «у {Вася:ФИО*Рп} {2+3} яблок.»
результат: переменная X содержит строку – «у Василия Ивановича 5 яблок.»
«Вася:ФИО» здесь – аспект объекта «Вася»
Согласующий ключ
Представляет собой строку примерно такого формата: «ИпЕчОд».
(расшифровывается как «именительный падеж единственного числа, одушевленное»)
Четные знаки в ключе именуют параметры ключа (падеж, число, одушевленность), нечетные – являются значениями параметров (Именительный, Единственное, Одушевленное). Порядок следования параметров в ключе неважен.
Имена параметров ключей и их значения задаются в тексте программы при описании объектов и независимы от устройства проигрывателя. Т.е. при отказе от стандартной библиотеки автор свободен выбрать свою собственную систему согласования (исключением является параметр «ч», так как он зависим от числа объекта и жестко задан в коде проигрывателя).
В случае использования нескольких ключей, приоритет имеет ключ, расположенный левее:
Пример:
Выражение Об:Асп*Ип*РпЕч*ВпМчНд эквивалентно выражению Об:Асп*ИпЕчНд.
Отредактировано ASBer (21.04.2008 17:31)
Неактивен
Очень милая игрушка, мне понравилась! Однако без заглядывания в текстовые файлы, как обычно пройти не удалось (слов мало понимает) И еще я не понял какой командой выходить, я под фаром играл, поэтому приходилось его каждый раз закрывать, неудобно!
Очень порадовала идея о том что персонажи перемещаются по локациям и от этого что-то зависит.
Неактивен
Dimouse написал:
Очень милая игрушка, мне понравилась!
Сенкс!
Dimouse написал:
без заглядывания в текстовые файлы, как обычно пройти не удалось (слов мало понимает)
Я сейчас умышленно не расширяю количество альтернативных действий - парсер будет перерабатываться и синтаксис описания действий обязательно изменится.(сделано)
Dimouse написал:
И еще я не понял какой командой выходить, я под фаром играл, поэтому приходилось его каждый раз закрывать, неудобно!
- exit или quit.
Слово "выход" и прочие русские команды в оболочке не использую, т.к. они, возможно, могут быть использованы авторами в играх.
В следующей версии будет файлик с краткой помошью по командам оболочки. (сделано)
Отредактировано ASBer (21.04.2008 17:34)
Неактивен