Форум » » живой игровой мир » Ответить

живой игровой мир

noname: это особое направление для УРК-работ: пусть все NPC живут своей жизнью, а не ждут ГГ. я подготовил пример, где они могут ходить по всем доступным локациям или не ходить (всего 4-ре персонажа, номер персонажа, которым будет управлять игрок задан в переменной 'игрок')

Ответов - 136, стр: 1 2 3 4 5 6 7 All

noname: Nex, попробую побыть таким же скользким, как и ты: Приведи хоть один пример, где я соврал. Факты в студию. а я, что, утверждал, что ты соврал? :) p.s. неприятно? вот и мне- тоже. кста, и где это я встречал такое мнение, что куспелевское сообщество как-то дурно попахивает? тогда оно показалось мне не вполне справедливым. ну, да я и до сих пор мало что о нём знаю... впрочем, готов завязать с перебранкой. прими мои выпады как реакцию на сообщение типа: "то, что вы обсуждаете, на QSP уже сделано очень давно". (ну, не совсем то и не давно, а давно- совсем не то, а самые те файлы, к тому же случайно утеряны, а то, что давнишние сохранившиеся ещё гораааздо ниже по уровню- так это ничего, совпадение такое). блин, ну аппелировать к твоему знакомству с алгоритмом генерации подземелий Серафима не буду- сам знаю, насколько милее свой алгоритм чужого, так что этот момент, пожалуй, опустим...

Nex: Фигли это я скользкий? Я прямой, честный и открытый. Ты упомянул ложь и гнилую идеологию. Теперь отвечай за свои слова.

uux: noname пишет: впрочем, готов завязать с перебранкой. прими мои выпады как реакцию на сообщение типа: "то, что вы обсуждаете, на QSP уже сделано очень давно". (ну, не совсем то и не давно, а давно- совсем не то, а самые те файлы, к тому же случайно утеряны, а то, что давнишние сохранившиеся ещё гораааздо ниже по уровню- так это ничего, совпадение такое). Noname, Вы не правы. Пост Nex'а, который вызвал Ваше порицание, написан как прямой ответ-комментарий вот на этот (Ваш же, между прочим) вопрос: интересно, на какой платформе (qsp или urq) раньше будет реализован генератор лабиринтов? Nex дал прямой ответ, правда, касающийся только qsp (так как в "урке" Nex не силен). А то, что "Серафим" назван первой игрой, где используется генератор лабиринтов - так очевидно, что имеется в виду именно куспелевская инкарнация этого генератора. Никаких даже намеков на "спор о первородстве" тут нет.


noname: to uux: 1)споры о первородстве меня волнуют меньше всего(т е не волнуют совсем). вопрос в том, что рекламная кампания куспелевцев оставляет неприятный осадок. и не только у меня. рыть щазз форум в поисках фраз не буду(поиск здесь не очень удобен), но они есть. напр в теме http://urq.borda.ru/?1-0-20-00000067-000-20-0 есть кое-что, если тебе не лень будет полистать. так же можно в других темах найти, что я к таким вещам относился более терпимо, чем многие форумчане. (если найтёшь соотв сообщения). но любая чаша может быть переполнена. 2) по поводу Серафима: какая там инкарнация? просто имело место быть мелкая 'поддёвка' со стороны Nex-а. так уж случилось, что последней каплей стала именно она. я убил некоторое время в пустую на разбор 'генераторов лабиринтов на куспе'. про работу с 'конвертером urq игр на qsp' вообще молчу(так уж случилось, что прямые, уверенные утверждения о существовании такового вклинивались в форум незарегистрированными гостями. а куспелевцы тут ни при чём). 3)формально в моём 'порицании' содержится осуждение лжи, а так же негативный отзыв о куспелевском сообществе. и то и другое считаю справедливым. кроме того(Nex, не подслушивай), это сообщение было адресовано именно Nex-у, которого я уважаю, но чьё поведение иногда вызывает недоумение. если бы я прямо обвинил Nex-а, я бы и тогда не стал извиняться, так как его личностные качества вырисовываются для меня всё более явно. тебе, uux, своего отношения к нему навязывать не могу, не хочу и не буду- сам во всём разберёшься, если когда у тебя будут 'пересекающиеся' с ним интересы. считаю, что уже дал в предыдущих постах развёрнутый и ясный(для Nex-а) ответ, что именно меня задело в сообщении Nex-а. себя считаю полностью и абсолютно правым, а мой упрёк- справедливым. to Nex, формально ты не лгал. я- тоже. ответ тебе в этом моём сообщении, как и в предыдущем, считаю лишним. более того, проявлением моей слабохарактерности.

Nex: Тьфу, блин. Ну какая к чёрту рекламная кампания? Её нет и не было. Тема трёхлетней давности при чём тут? Кое-что следует прояснить. "Куспелевское сообщество" - это Байт, и авторы интерпретаторов, редакторов, справки, игр, а вовсе не те "ентузиасты", которые "разжигают страсти" и несут ахинею на других форумах. Адекватные участники остаются, и вносят свой настоящий вклад в развитие платформы, а те бесчисленные "революционеры" быстро перегреваются, быстро остывают и исчезают навсегда. Очень жаль, что их, из-за их гиперактивности, принимают за "QSP-сообщество". Выливая обиду за свои неудачи на меня, или на "куспелевское сообщество", ты тратишь время ещё более впустую. Пиши игры. Игроки тебе спасибо скажут.

noname: не знаю куда написать, что бы не потерялось, поэтому пишу здесь: "Uploaded succefully: http://urq.allquests.ru/upload/unikbd.arj [3.29 Kb]" это я занёс unikbd в наш аплоад. руссификатор такой. для досурки эта программулина- то, что надо! я её давно в инете искал- щазз среди ночи встал погуглить- и нашёл. ------------------------------------------------------------------------------------- где-то в этой теме давно я уже описывал сложности с русским вводом на досурке, теперь эта проблема решена! пишем bat-файл: " unikbd.com urq_dos.exe quest.qst " и всё! только что проверено под WinXp SP2, но и раньше- под чем только не пускал- всегда был доволен работой unikb

frodo: world -- мой пример ЖМ. Правда, персонажи пока только ходят, но их количество, как и количество локаций, не ограничено. Все достаточно просто настраивается и расширяется, а еще НПС могут выбиратся из простых лабиринтов (в примере показано), если заданы обязательные локации. Будет дорабатываться.

noname: frodo, было бы неплохо, если бы авторы привыкали указывать версию интерпретатора, на котором работает их проект. возможно, я тоже не сказал, что мои проги, приведённые в этой теме писались для ДосУрки- тогда извиняюсь; твою прогу, видимо, нужно пускать под AkURQ1.28pre6. но я пока смог посмотреть только в блокноте- акурок у меня щазз нет. вообще щазз у меня некоторые сложности и со временем и другие... и СПАСИБО тебе за внимание к теме ЖИМ: радуюсь каждый раз, когда вижу заинтересованность в этом направлении! p.s. ссылка на прогу, до которой я дописал свой ЖИМ: http://urq.borda.ru/?1-0-0-00000231-000-40-0 думаю, что текст достаточно 'прозрачен', и с 'расширением' примера проблем возникнуть не должно. после этой версии я ударился в поиск принципиально других решений, и пока далёк от выпуска очередной версии. в данный момент экспериментирую с ДосУркой в попытке создать хоть что-то достаточно нестандартное и оконченное, что не стыдно было бы вложить на всеобщее обозрение.

frodo: под AkURQ1.28pre6 Да, все верно, прошу прощения. Nex уже постучал из-за подобного по голове на ветке про Локу. Чистосердечно раскаиваюсь, и впредь подобного обещаю не совершать. На выложенной версии НПС только ходят, но у себя я уже научил их с заданной вероятностью совершать поступки типа "НПС1 выполняет действие2 на локации10", "НПС3 продолжает путь", "НПС5 останавливает НПС4 с целью действия3", "НПС2 выполняет с НПС6 действие1". Протестирую -- выложу. Осталось придумать, как они будут взаимодействовать с учетом принадлежности к кланам с номерами от 0 до 99, и научить добывать предметы инвентаря при выполнении действий, в том числе красть и покупать.

noname: frodo, респект! а я всё равно всё буду делать по своему :) эх, жаль времени так мало. надеюсь, в ноябре с этим утрясётся...

noname: команда взять что-либо генерит все кнопки в одном ифе: if ... then xbtn ход_игрока,{дело#дел$="взять" & арг1#дел$=вещь#счётчик$_имя},#%...$ это позволяет легко добавлять вещи в разделе инициализации, не затрагивая кода. какую именно из вещей игрок решил взять- ясно будет только ПОСЛЕ нажатия кнопки. а если аргумент не один, а три?- как тогда? создавать массив процедур NхMxK? теоретически можно в локации ход_игрока выцепить название вещи из btn_caption, НО это уже сложности- прийдётся писать парсер, разбирающий, что НАЖАЛ игрок. в-общем, мысль была такова: с помощью xbtn можно делать то, что без него- нельзя. это- цитата из моего сообщения с первой страницы этой темы. обращаю ваше мнимание: if ... then xbtn ход_игрока,{дело="взять" & арг1=вещь#счётчик$_имя},#%...$ этот if выполняется в цикле, в котором перебираются все предусмотренные действия. если действие в данной ситуации возможно- выводим кнопку, которая: 1) после нажатия передаст управление процедуре 'ход_игрока' 2) перед тем, как перейти на процедуру- занесёт в переменные 'дело' и 'арг1' (а если надо, то и арг2 и арг3) значения, соответствующие выбору игрока. (т е глагол+сущ для обработки процедурой 'ход_игрока' аналогично тому, как обрабатываются ходы всех NPC) 3) #%..$ - просто генерится капшен кнопки. типа: 'взять яблоко' --- а как без xbtn? ну, я-то реализовал по-другому, НО для этого пришлось прибегнуть к парсеру(пусть и примитивному). помницца, я писал, что без xbtn для этого пришлось бы написать n*m доп_локаций (где n-кол-во глаголов типа 'взять', а m- кол-во аргументов типа 'яблоко'), но и это НЕ спасает положения: представьте, во што обойдётся добавить ещё один глагол и ещё один предмет, если уже есть 6 глаголов и столько же предметов! а если добавить глагол с двумя аргументами? --- к чему я это пишу: ЕСТЬ такие случаи, когда без xbtn НЕ обойтись. ну невозможно прописать ручками заранее n*m локаций, где n и m задуманы автором, как величина переменная (кол-во предметов может изменяться, а глаголы хоть и не меняются по ходу игры, но прописаны так для удобства расширения проги. соответственно без xbtn не получится удобно расширяемая прога, а получится дремучий лес во много раз превышающий предположительный объём всей программы, использующей xbtn)

noname: frodo пишет: Осталось придумать, как они будут взаимодействовать с учетом принадлежности к кланам с номерами от 0 до 99, и научить добывать предметы инвентаря при выполнении действий, в том числе красть и покупать. frodo, а сколько всего NPC задумано?

ASBer: Идеология ЖИМ мне оч.близка

noname: кста, у меня придумался другой концепт ЖИМ: 1) прописаны от руки локации с 'обычными' NPC и т п 2) ГГ может бродить и взаимодействовать с миром, как обычно в батонновых URQ-квестах НО 3) в мире есть ещё и боты, которые имеют те же возможности взаимодействия с миром, что и ГГ впрочем, ЖИМ меня сейчас 'поотпустил', щазз думаю над другим...

Nex: noname думаешь? а делать когда будешь?

noname: даю листинг генератора лабиринтов. суть в том, что из любой точки можно прийти в любую другую. привожу простейший случай: лабиринт полностью заполняет собой прямоугольный полигон, все комнаты имеют размер 1х1, зацикливаний нет. ; maxxr ; maxyr ; maxx ; maxy ; crx ; cry ; world_x_y - мир, точка (1,1)- левый верхний угол ; maxap ; x1 ; y1 ; t ; crn ; dir ; ndir :генератор invkill perkill maxxr = 8 ; кол-во комнат по горизонтали maxyr = 8 ; кол-во комнат по вертикали maxx = maxxr*2+1 ; кол-во ячеек(комнаты+стены/проходы) по горизонтали maxy = maxyr*2+1 ; кол-во ячеек по горизонтали crx=0 ; переменные- счётчики :цикл1_x crx=crx+1 cry=0 :цикл1_y cry=cry+1 world_#crx$_#cry$ = -1 ; заполняем мир ; pln world_#crx$_#cry$ = #world_#crx$_#cry$ $ if cry<maxy then goto цикл1_y if crx<maxx then goto цикл1_x maxap=1 ; кол-во активных точек x1=2*rnd#maxxr$ ; координаты первой активной точки y1=2*rnd#maxyr$ ; точки всегда указывают на комнаты world_#x1$_#y1$=2 ; создаём первую пустую комнату :генератор_выбор_точки ;proc отображение t=rnd#maxap$ ; выбираем текущую активную точку ;pln точка #t$ crn=0 ; счётчик направлений пробива dir1=0 & dir2=0 & dir3=0 & dir4=0 ;pln world_#x#t$ $_#y#t$ $ if world_#x#t$ $_#y#t$ -2$= -1 then crn=crn+1 & dir1=1; пробив возможен: север if world_#x#t$ -2$_#y#t$ $= -1 then crn=crn+1 & dir2=1; запад if world_#x#t$ $_#y#t$ +2$= -1 then crn=crn+1 & dir3=1; юг if world_#x#t$ +2$_#y#t$ $= -1 then crn=crn+1 & dir4=1; восток ;pln кол-во возможных направлений #crn$ if crn>0 then dir=rnd#crn$ & goto пробиватор if crn=0 then x#t$= x#maxap$ & y#t$= y#maxap$ & maxap=maxap-1 ; гасим точку ;pln активных точек #maxap$ if maxap>0 then goto генератор_выбор_точки if maxap=0 then goto начало end :пробиватор ;pln активных точек #maxap$ ndir=0 ;pln выбираем #dir$-е направление if dir1=1 then ndir=ndir+1 ;pln напр #ndir$ if dir=ndir then goto пробив1 if dir2=1 then ndir=ndir+1 ;pln напр #ndir$ if dir=ndir then goto пробив2 if dir3=1 then ndir=ndir+1 ;pln напр #ndir$ if dir=ndir then goto пробив3 if dir4=1 then ndir=ndir+1 ;pln напр #ndir$ if dir=ndir then goto пробив4 pln пробиватор капут end :пробив1 ;pln на север world_#x#t$ $_#y#t$ -1$=2 & world_#x#t$ $_#y#t$ -2$=2 ; пробиваем проход и делаем комнату maxap=maxap+1 ; добавляем новую активную точку x#maxap$=x#t$ ; указывающую на эту комнату y#maxap$=y#t$-2 goto генератор_выбор_точки end :пробив2 ;pln на запад world_#x#t$ -1$_#y#t$ $=2 & world_#x#t$ -2$_#y#t$ $=2 maxap=maxap+1 ; добавляем новую активную точку x#maxap$=x#t$-2 ; указывающую на эту комнату y#maxap$=y#t$ goto генератор_выбор_точки end :пробив3 ;pln на юг world_#x#t$ $_#y#t$ +1$=2 & world_#x#t$ $_#y#t$ +2$=2 maxap=maxap+1 ; добавляем новую активную точку x#maxap$=x#t$ ; указывающую на эту комнату y#maxap$=y#t$+2 goto генератор_выбор_точки end :пробив4 ;pln на восток world_#x#t$ +1$_#y#t$ $=2 & world_#x#t$ +2$_#y#t$ $=2 ; пробиваем проход и делаем комнату maxap=maxap+1 ; добавляем новую активную точку x#maxap$=x#t$+2 ; указывающую на эту комнату y#maxap$=y#t$ goto генератор_выбор_точки end :начало proc отображение end :отображение cry=0 ; переменные- счётчики :отображение1_y pln cry=cry+1 crx=0 :отображение1_x crx=crx+1 if world_#crx$_#cry$=2 then p . if world_#crx$_#cry$=-1 then p O if crx<maxx then goto отображение1_x if cry<maxy then goto отображение1_y ;input vvod end UPD да, забыл сказать: писал под DOS_URQ. точки с обеими чётными координатами- комнаты, остальное- стены и проходы.



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