Форум » » Новый движок » Ответить

Новый движок

mkrivushin: Я тут пытался как то под линуксом запустить квесты, но в общем легко это не вышло. В общем написал я свой интерпретатор файлов qst. Платформа - любая где есть Python. Вот теперь только вопрос - кому нибудь надо? И как расшарить народу. Просто кроме кроссплатформенности там есть еще пара фич - например jabber бот. То есть можно играть через ту же аську. Пишите мне на mkrivushin@tomsk.souzt.com

Ответов - 46, стр: 1 2 3 All

Акела: Вау! правда я не очень понял что за Python. вообщем кидай все в аплоад (http://urq.allquests.ru/upload.php)

Капитан Блуд: mkrivushin пишет: Я тут пытался как то под линуксом запустить квесты, но в общем легко это не вышло. В досему прекрасно работает досурка, раз в 5 лучше чем в винде. А интерпретатор open source? Вобщем мне интересно

mkrivushin: Интерпретатор построен на GPL языке Python, GPL qt3, GPL xmpp и тп. Каким же еще ему быть? : )) В общем сейчас доделаю GUI версию, запакую под винду и залью. Сразу об основном - это пробный вариант, можно значительно расширить синтаксис и тп. Картинки он пока не отображает ( какие картинки в аське? : )) ), но это недолго исправить.


Korwin: Это интересно... Питон есть на моем КПК.

mkrivushin: : )) это клево! Сейчас я проверяю работу интерпретатора на готовых квестах (абсолютно неправильный язык с точки зрения лексического разбора, ну да какой есть, для квестов идеально подходит). Могу кинуть сырой пока еще вариант. 2Korvin: А у вас как там питон работает? В смысле как информацию выводить. Один из интерфейсов есть - коммандная строка, то есть консоль. Другие два это qt(графический, windows/unix, поддерживает картинки) и jabber (xmpp, замена icq).

Korwin: командный скорее всего, поскольку старый, на Psion'e

mkrivushin: В общем кину завтра. Сегодня еще повожусь чтоб получше работал. Столько блин разных фич в процессе отладки всплывает.

Капитан Блуд: На кпк есть консоль как не странно. В Палм ОС 3,5 консоль, вроде 40х25(сломался мой телефон, точнее уже не узнать). А вот графический интерфейс скорее всего придется писать специально под кпк.

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

mkrivushin: Строки надо заключать в кавычки, вместо p pln printl и тп писать только pln и ничего больше. Пробелы в имени переменных не допустимы. Вот в таком виде язык можно было бы интерпретировать проще. А так приходится делать обработку на нечеловеческом языке регулярных выражений: if re.match(r'(?ui)^:Use',str): str = str.replace(u'_',u'@') print str.encode('utf8') str = re.sub(r'(?ui)(:Use@)(?P<str>([^<>;:$^&@]|(?P<dog>@))*)(?P<num>(?(dog)@[^;]+|))',lambda x: 'use \''+x.group('str').lower().strip().replace('@','_')+'\',\''+x.group('num')[1:]+'\'',str) print '3>>>',str.encode('utf8') # 0. :label => :'label' str = re.sub(r'(?ui)(?<=^:)\s*(?P<str>[^-+*/=<>;:@$^&]*)',lambda x: '\''+x.group('str').strip()+'\'',str) # 1. Кнопки из btn бла бла бла, бла блаб бла к btn 'бла бла бла','бла бла бла' str = re.sub(r'(?iu)(?<=btn )(?P<label>[^&;,]*),(?P<str>[^&;]*)',r" '\1' , '\2' ",str) # 2. Операторы печати из pln бла бла бла к pln 'бла бла бла' str = re.sub(r'^(p )',r"pln ",str) str = re.sub(r'(?iu)(?<=pln )(?P<label>[^&;]*)',r" '\1' ",str) etc

Акела: что это было :\

mkrivushin: Это нечеловеческий язык регулярок. Обработка строк. Данные конструкции автоматически выставляют кавычки, пробелы в именах переменных заменяют на _ и тп и тд.

Victor: mkrivushin пишет: вместо p pln printl и тп писать только pln и ничего больше. Пробелы в имени переменных не допустимы.Вообще-то, p просто вывод текста, а pln с переводом строки, так что если уж сокращать тут, то до p, и добавить более удобное обозначение перевода строки. А изначально это не было сделано, потому что была такая идея: есть текст книги безо всяких кодов и обозначений, к нему что-то добавляется, и получается квест. Пробелы в именах переменных пошли от необходимости поддержки предметов в инвентаре с пробелами в именах. Наверное, надо было сразу сделать, чтобы _ в инвентаре отображался как пробел, но это уже поздно кардинально менять, все равно нужна поддержка обоих вариантов. А ты #$ у себя обрабатываешь?

mkrivushin: У меня различия между p pln не делается : )) #$ обрабатывается. Вообще пока еще не полная поддержка. Я можно сказать только еще начал. Но некоторые квесты работают. Вот только с кодировками сложности вечные. Мой интерпретатор пока еще понимает только файлы в utf8, конечно не проблема научить другим. Брать тут, весит много потому, что там две библиотеки и exe для винды. Еще раз предупреждаю - это сырец : )) Это пре альфа так сказать. Но иногда работает : )) http://www.rapidshare.ru/119137 Работы продолжаются в свободное время. Отзывы и глюк репорты приветствуются. Также приветствуются предложения по расширению языка. Например несложно добавить else в конструкцию if

Акела: 9 метров, да ты шутишь. Распишитесь плз кто скачал. Интересно.

mkrivushin: не знаю для кого как, а по мне так нормально : )) dotnet весит побольше гораздо. А там внутри исполняемый файл включающий в себя python и qt Такова плата за кроссплатформенность...

Илья: mkrivushin пишет: Такова плата за кроссплатформенность Кроме этого что нового по сравнению с AkURQ. А то действительно 9 метров..просто так качать нет особого желания.:)

mkrivushin: Пока ничего нового. Это демонстрация куда движется. Чтоб народ глянул и сказал замечания. Вещь пока сырая.

Капитан Блуд: Не дождался пока начнется закачка. Найди хост который работает не только для людей с русскими айпишниками.

KroL: респект аффтору. Кстати а питон похож на перл. может я наконец дождусь html версию квестов ?

Victor: mkrivushin, выкладывай минимальный набор файлов и инструкции, как компилировать. У меня, например, Питон установлен, а качать 9 мег дорого (gprs). У меня различия между p pln не делается : ))Во многих квестах строка составляется из нескольких частей при помощи p, так что каша будет, если их как pln. Мой интерпретатор пока еще понимает только файлы в utf8, конечно не проблема научить другим.У нас все в cp-1251, и есть несколько квестов в oem. Например несложно добавить else в конструкцию ifТы по каким докам уркл смотришь? else давно добавлен.

mkrivushin: Запросто. Архитектура позволяет. Кстати из архитектуры произрастает такой нюанс - pause не работает и не будет. ИМХО необязательная конструкция, а головной боли при реализации во всех поддерживаемых вариантах может принести море (хотя может потом как нибудь и осенит мудрая мысль : )) ). А python на perl похож слабо. http://disk.tom.ru/258402

mkrivushin: Вполне можете дождаться. Можно прикрутить к джанго наверное. http://disk.tom.ru/258402

mkrivushin: Смотрю здесь http://ripsoft.narod.ru/Data/Doc_Qst14/index.htm Python некомпилируемый язык. С библиотеками необходимыми для запуска - 11 метров. Уж извините, но так работают в unix - все пользуются библиотеками. Причем эти библиотеки у нас умолчальные, а вот в виндовс их естественно по умолчанию нет : (( В общем дайте мне ссылку на текущую доку плз. Буду писать сам для себя.

Victor: mkrivushin пишет: Python некомпилируемый язык.Я имею в виду откомпилировать в бинарный формат, который выполняется Питоном (.pyc). Мало работал с этим языком, но, насколько помню, если уж получилось откомпилировать, то файл точно выполнится. Причем эти библиотеки у нас умолчальные, а вот в виндовс их естественно по умолчанию нет : ((Ну, а что делать тем, у кого они есть :) В общем дайте мне ссылку на текущую доку плз. Буду писать сам для себя.Нормальной текущей доки нет. Надо смотреть в http://urq.allquests.ru/urq_dos/notes.txt изменения по сравнению с доком Рипа к 1.4, потом изменения по отношению к notes.txt в changes.txt в архиве с Досуркой от 30.11.04. Затем - то, что добавлял Акела в Акурке. Где брать изменения Акелы хоть с каким-то кратким описанием - не знаю.

mkrivushin: Ну так я и собрал для тех у кого нет одним камнем : )) С библиотеками еще больше. В общем буду стараться довести до ума пока, потом постараюсь перепаковать максимально экономично... Чтоб хоть смысл качать был.

Korwin: http://urq.allquests.ru/upload/AkURQ.chm - ссылка на доку к Акурке http://urq.allquests.ru/upload/%ce%ef%e8%f1%e0%ed%e8%e5%20URQL(new).rar - к досурке

Goraph: Несмотря на то что качал 9 метров, запустить смог только версии под линукс. Кстати "библиотек по умолчанию" у меня почемуто не оказалось (ни qt, ни ply - но yum и google творят чудеса). Хотелось бы чтобы новая версия была и в варианте под линукс, без исполняемых файлов и длл-ок, и весила положенные ей 200к а не 9 метров :) Екзешник под виндоус98 почемуто не поместился на экране при разрешении 1024х768, во вторых ничего не работает. Но я в виндоус плохо разбираюсь, запускайте сами. Вобщем гуй - очень сырой, даже говорить ничего не буду. Очень много окон и я им был напуган. Но со временем напишется наверное нормальный гуй. :) Консольной версией я оказался доволен. Не понял можно ли вызывать инвентарь и как это делать, но это неважно :) Главным плюсом будет то, что можно легко написать любой интерфейс на том же питоне. Т.е. того же ирц-бота можно сделать уже прямо счас, буквально за пару часов, и играть в уркины игры мультиплеером (ну для мультиплеера правда квестов пока нету) на ирц-канале. Аналогично каждый может написать себе любой гуй какой душа желает. Буду с нетерпением ждать развития и поддержки остальных функций языка. Сейчас похоже поддерживается еще далеко не все. Но дистрибутив надо конечно както переделать, чтоб для линукса не нужно было качать это все, а в виндоусе все сразу работало.

KroL: Гораф, больше столько не пей.

mkrivushin: Ок, сейчас доделаю сайт и продолжу работы : )) Гуй родился из дебагера - неудобно в консоли было исходные строки сравнивать с результатом. Дебагер затем научился исполнять квесты. На мой взгляд должно быть удобно для разработчиков квестов

Korwin: mkrivushin пишет: Гуй родился из дебагера - неудобно в консоли было исходные строки сравнивать с результатом. Дебагер затем научился исполнять квесты. Хмм... Linux родилась из терминальной программы... тенденция однако!

Илья: mkrivushin пишет: Ок, сейчас доделаю сайт и продолжу работы : )) Гуй родился из дебагера - неудобно в консоли было исходные строки сравнивать с результатом. Дебагер затем научился исполнять квесты. На мой взгляд должно быть удобно для разработчиков квестов А может тебе стоит попрбовать создать URQ2 так сказать вывести язык на новый уровень.

Terracon: ага было бы неплохо

KroL: Terracon пишет: ага было бы неплохо как буд-то ты начнешь опять писать

Дженни: КroL пишет: ... А сам-то пишешь квест?

Terracon: KroL пишет: как буд-то ты начнешь опять писать еще бы, я только этого и жду

KroL: Дженни пишет: А сам-то пишешь квест? нет конечно

mkrivushin: URQ2 можно сделать. Это проще чем разбираться с существующим. Есть предложения как он должен выглядеть? Мне кажется нужно отказаться от бейсиковских штучек и сделать совершенно новый язык. И инструменты конвертирования. Например что то вроде (что на ум первым пришло): location{ html{Роботы, восторгаясь твоим мудрым решением, подпрыгивают от восторга. Лишь минут через десять ты ценой неимоверных усилий наводишь относительный порядок и строишь роботов в колонну. Робот-ремонтник уверяет, что ему известен кратчайший путь к владениям Сейди-Садистик, ты ставишь его во главе колонны, и вы трогаетесь в путь. Ваш марш продолжается уже полдня, твои ноги устали, Рубин Джунглей натер кожу у пояса под ремнем, куда ты его спрятал. Робот-ремонтник клянется, что вы достигли владений Сейди-Садистик, и ты надеешься, что он не ошибается. Внезапно передние роботы кричат в панике, и ты видишь впереди на тропе волосатого гиганта с огромной дубиной. Гигант хрипит: - А-а-а-хр-р! Убирайся, чужак, пока цел! Я реквизирую твоих роботов! Будут вкалывать на моей фабрике собачьих консервов! Решай, сразишься ли ты с гигантом, отстаивая права роботов, на 157. Или, предоставив нытиков их собственной судьбе, отправишься на 268.} btn('битва_с_гигантом', 'Сразиться с гигантом') btn('после_нытиков','Покинуть нытиков') } Ну и можно еще концепции какие нибудь применить. Например описание предметов в отдельном месте. И действия с инми уже по ключу. Ну и тп. Просто работа с предметами в нынешнем виде - мрачно : )) А так и построение квеста специализированными средствами будет проще.

KroL: Отход от привычных бэсиковских форм достаточно спорное решение. Просто урка счас своей популярностью обязана тем, что на ней безумно просто начать писать. На мой взгляд (но это только моё ИМХО) в URQ2 должно остаться простота, но при этом должно стать достаточно просто и удобно писать сложные конструкции (стандартный VB набор, хотя зачем тогда урка?) Идея объектного решения не плоха, но опять таки это для очень простых квестов подходит, но если нужно написать какую нибудь математику? ещё одно ИМХО. идеальная менюшная платформа должна сама писать код а квестописатель заниматься всего лишь драгенддропом.

Илья: KroL пишет: идеальная менюшная платформа должна сама писать код а квестописатель заниматься всего лишь драгенддропом. В этом есть здравая мысль, но при желании, плюс вариант, что тот же квестописатель может и в дебри залезть, если ему интерестно.

KroL: Илья пишет: и в дебри залезть, если ему интерестно разумеется

Victor: mkrivushin пишет: Например что то вроде (что на ум первым пришло):А чем это отличается от простого html? KroL пишет: ещё одно ИМХО. идеальная менюшная платформа должна сама писать код а квестописатель заниматься всего лишь драгенддропом.А есть такая система, где собираешь граф квеста из вершин-локаций. Сама по себе не очень популярна, вроде.

Илья: Victor пишет: А есть такая система, где собираешь граф квеста из вершин-локаций. Сама по себе не очень популярна, вроде. Если моя память меня не подводит то эта система ADRIFT называется. Насчет URQ 2.0 я думаю плясать надо от первой urq, тоесть операторы и т.п. осталять, как и были, просто нужно добавить больше возможностей. :) главное вместе решить каких:) ИМХО. плюс нажми и тащи очень удобно допустим нажал комбинацию кнопок и получил конструкцию if then .... и т.п. быстрее работать будет все (типа смсквеста) только продвинутей... хотя я в bred пишу(это типа блокнота если кто не знает. Хотелось бы иметь возможность, как на скрине редактора акелы разбивать на два или четыре окна, чтобы удобно смотреть на код в разных частях программы.ИМХО.

mkrivushin: Очень хотелось бы именно избавиться от синтаксиса первой урки : )) Я пользуюсь автоматическим парсером, а там лучше уж строки держать в кавычках. Ну и в принципе - если делать похоже на басик, то зачем урка? Басик и сам замечательно умеет все печатать и тп : )) В этом случае достаточно написать пару библиотечек к VB. Именно интересно было бы сделать свой, особый синтаксис, идеально подходящий для квестов. А именно понятие локаций и тп. Ну и наконец - можно вообще xml использовать например. Но вот для ручной работы это ужас, ну а для программы полный рай конечно : )) Насчет плясать от - иногда надо отказываться от старого, как например MS кинула к черту свой MFC из за дикой косячности последнего (со мной об этом спорить не надо : )) ). URQ какой то некомплексный и в принципе тянется к повторению языка программирования. Так любой язык в сотню раз круче... Смотреть код - ну для квеста это во многом лишнее. Понимаю код локации, но зачем же вам весь то? Конструкции if если_мышка_сыр then убить мышку - по моему слегка монструозны. Можно создать понятие "состояние" и им пользоваться. Операторы на мой взгляд в большей части случаев не нужны. Ну зачем писать на каждой строке pln? На мой взгляд не хватает урке структурированности и продуманности В таком вот аспекте.

Korwin: mkrivushin пишет: Насчет плясать от - иногда надо отказываться от старого Если отказываться от старого - тогда лучше взять QSP. Хотя бы потому, что он уже есть. Там есть практически всё необходимое + поддерживается совместимость (за исключением некоторых мелочей, типа боев). И не придется изобретать очередной велосипед... Монструозные конструкции есть и там - но они для профессионалов. Кстати, та программа, в которой создавались локации в графическом виде с драгэнддропом называлется TGE.

KroL: Korwin пишет: Кстати, та программа, в которой создавались локации в графическом виде с драгэнддропом называлется TGE. она узкоспецилизированная и глючная. а вилосипеду.. пожалуй да фтопку



полная версия страницы