www.mudconnector.su

Национальный мадконнектор.
Текущее время: Сб апр 27, 2024 12:36 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Вт июн 03, 2008 10:06 pm 
Не в сети

Зарегистрирован: Пт май 30, 2008 10:38 pm
Сообщений: 80
Откуда: спб
Пара вопросов к тем, кто или разбирается во внутренностях движков, или сам встречался с подобными проблемами.

Во-первых, интересен механизм складирующий команды от клиента, которые не могут быть выполнены, так как персонаж находится в "лаге" от баша или другого пинка. Я реализую это как складирование всего входа в список, прикрепленный к подключению (сокету) и после прохождения лага последовательное выполнение команд из списка. При обрыве связи ломается и чистится сокет. Может, есть способ лучше или удобнее? Мне идея "предтайпа" вообще не очень нравится почему-то. Удобно, конечно, но уж больно на робота похоже. Можно на время действия лага просто не выполнять никакие команды. Так предтайп и убивается.

А во-вторых, интересно, как формиурется информация о, например, передвижении группы, когда она ходит всей пачкой. Предположим, у создания есть метод "move": leader.move(somewhere) двигает это создание и вызывает у всех загрупленных, находящийся рядом с ним, создний такой же точно метод. ТОгда в аутпут наблюдателю вывалится куча отдельноых перемещений. С одной стороны хочется, чтобы вывод был более цельным, блоком, но, вообще говоря, это не обязательно, наверно.
Если формировать блок в методе у лидера про всю группу, то тогда сложно проверять, видит ли наблюдатель каждого отдельного члена группы, его перемещение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт июн 03, 2008 10:13 pm 
Не в сети

Зарегистрирован: Пт май 30, 2008 10:38 pm
Сообщений: 80
Откуда: спб
В догонку кусок лога:
Код:
Вы слегка рубанули улитку.
Улитка в бессознательном состоянии и медленно умирает.
Маленький муравей приполз с юга.
Маленький муравей приполз с юга.


Муравьи разные, ползают, казалось бы, независимо. Интересно, как и зачем такое сделано.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт июн 03, 2008 11:13 pm 
Не в сети

Зарегистрирован: Сб май 17, 2008 11:56 am
Сообщений: 117
лог приведен из мада где большинство действий завязано на некоторую постоянные. В том числе и мирные действия мобов (в конкретно этом маде 7,5 сек) т.е. раз в 7,5 секунд каждый моб муравей "решает" куда пойти - вариантов у тех муравьев от двух до четырех +1 вариант вообще никуда не ходить
получается что те два муравья приняли решение идти на север

считай 2,5 сек раунд, 7,5 сек действия ИИ, улитка "умирает" значит ровный тик и у нее чуть меньше 0 хп
мобы (ИИ) действуют в: 7,5-15-22,5-30-37,5-45-52,5-(2 раунда боя с улиткой, в последнем улитке нанесены повреждения в 1-2 хп. у нее -1хп)-60 (тик, муравьи решают идти)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вт июн 03, 2008 11:36 pm 
Не в сети

Зарегистрирован: Пт май 30, 2008 10:38 pm
Сообщений: 80
Откуда: спб
пардон :) конечно, про улитку никаких непоняток нету, спрашивал про передвижение мобов только :-)
Но спасибо за подробное описание системы пульса. Его знание иногда облегчает зонинг, ага.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср июн 04, 2008 11:33 am 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Добрый совет - забудьте о лагах на очередь команд - это полный маразм большинства виденных мною движков и ХУДШЕЕ что есть в циркле в принципе.
Делать новый движок и использовать там эту концепцию - это кастрировать себя самостоятельно.

Разборка команд должна быть независима ни от чего, их исполнение может вставать в очередь,
спору нет. Но лаг в том виде, в котором он используется много где - это полный маразм.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Ср июн 04, 2008 11:38 am 
Не в сети

Зарегистрирован: Пт май 30, 2008 10:38 pm
Сообщений: 80
Откуда: спб
Мне тоже кажется лаг и очередь команд некоторым маразмом. Хочется, если честно, большей риал-таймовости. Веяние времени?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт июн 05, 2008 2:42 pm 
Не в сети

Зарегистрирован: Вт май 27, 2008 1:06 pm
Сообщений: 60
Откуда: Питер
Согласен, что с лагами нужно чтото решать и скорее всего отказываться от них...

Допустим лагов нет и команды не задерживаются...
Что делать тогда с командами, которые нельзя выполнить из-за каких-то обстоятельств ?
Остается только игнориоровать их с сообщениями вроде : 'Вы оглушены'... Так ?

По крайней мере я рассчитываю так сделать в своем движке... хотя над боевкой
я еще буду думать...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт июн 05, 2008 3:33 pm 
Не в сети

Зарегистрирован: Пт май 30, 2008 10:38 pm
Сообщений: 80
Откуда: спб
"Вы валяетесь в луже собсвтенных мозгов. Что-то хотели сказать?"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт июн 05, 2008 8:33 pm 
Не в сети

Зарегистрирован: Пн май 19, 2008 9:31 pm
Сообщений: 1
andrej_andreev писал(а):
А во-вторых, интересно, как формиурется информация о, например, передвижении группы, когда она ходит всей пачкой. Предположим, у создания есть метод "move": leader.move(somewhere) двигает это создание и вызывает у всех загрупленных, находящийся рядом с ним, создний такой же точно метод. ТОгда в аутпут наблюдателю вывалится куча отдельноых перемещений. С одной стороны хочется, чтобы вывод был более цельным, блоком, но, вообще говоря, это не обязательно, наверно.
Если формировать блок в методе у лидера про всю группу, то тогда сложно проверять, видит ли наблюдатель каждого отдельного члена группы, его перемещение.
Пара вопросов к тем, кто или разбирается во внутренностях движков, или сам встречался с подобными проблемами.

Хмм я бы сделал так:
ввел ты минимальный отрезок времени, типа тик. Но не боевой раунд и не отрезок для мема, а такой за который можно произвести только одно элементарное действие типа пожрать, сесть, сказать чтонить. Под конец каждого тика обновляется игровой мир и игроку отсылаются (если надо) сообщения о том что с ним было на этом тике.
Игрока я возможно бы метод move не давал, а дал бы его объекту "Мир" который двигал бы своих объектов-членов "Игрок", "Моб" и тд.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Чт июн 05, 2008 11:04 pm 
Не в сети

Зарегистрирован: Пт май 30, 2008 10:38 pm
Сообщений: 80
Откуда: спб
Пошаговая стратегия? Есть некоторый промежуток времени,"тик", который чувсвтуется человеком как время в слайд-шоу. Мне этого не очень хочется. Пошаговая стратегия -- это другой жанр, делать "быструю" пошаговую стратегию не хочется, тогда уж надо риал-тайм какой-никакой.

Обработка команд не может проходить одновременно: ядро, грубо говоря, имеет один процесс.
Тикер, то есть некоторые отсечки, делятся на тики (~минута), раунд боя (2-3 секунды) и пульс (0.1 сек), за которые что-нибудь делается, обсчитывается и т.д.

На эксперименты пока совсем нет времени, к сожалению. Завтра начну что-нибудь делать и менять, мысли имеются.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron