www.mudconnector.su https://forum.mudconnector.su/ |
|
Вопросы по серверам: очередь команд, вывод https://forum.mudconnector.su/viewtopic.php?f=14&t=14 |
Страница 1 из 3 |
Автор: | andrej_andreev [ Вт июн 03, 2008 10:06 pm ] |
Заголовок сообщения: | Вопросы по серверам: очередь команд, вывод |
Пара вопросов к тем, кто или разбирается во внутренностях движков, или сам встречался с подобными проблемами. Во-первых, интересен механизм складирующий команды от клиента, которые не могут быть выполнены, так как персонаж находится в "лаге" от баша или другого пинка. Я реализую это как складирование всего входа в список, прикрепленный к подключению (сокету) и после прохождения лага последовательное выполнение команд из списка. При обрыве связи ломается и чистится сокет. Может, есть способ лучше или удобнее? Мне идея "предтайпа" вообще не очень нравится почему-то. Удобно, конечно, но уж больно на робота похоже. Можно на время действия лага просто не выполнять никакие команды. Так предтайп и убивается. А во-вторых, интересно, как формиурется информация о, например, передвижении группы, когда она ходит всей пачкой. Предположим, у создания есть метод "move": leader.move(somewhere) двигает это создание и вызывает у всех загрупленных, находящийся рядом с ним, создний такой же точно метод. ТОгда в аутпут наблюдателю вывалится куча отдельноых перемещений. С одной стороны хочется, чтобы вывод был более цельным, блоком, но, вообще говоря, это не обязательно, наверно. Если формировать блок в методе у лидера про всю группу, то тогда сложно проверять, видит ли наблюдатель каждого отдельного члена группы, его перемещение. |
Автор: | andrej_andreev [ Вт июн 03, 2008 10:13 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
В догонку кусок лога: Код: Вы слегка рубанули улитку. Улитка в бессознательном состоянии и медленно умирает. Маленький муравей приполз с юга. Маленький муравей приполз с юга. Муравьи разные, ползают, казалось бы, независимо. Интересно, как и зачем такое сделано. |
Автор: | Джаалам [ Вт июн 03, 2008 11:13 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
лог приведен из мада где большинство действий завязано на некоторую постоянные. В том числе и мирные действия мобов (в конкретно этом маде 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 (тик, муравьи решают идти) зачем такие жесткие постоянные не знаю, возможно тянется с первого по-тикового мада. зато если понимать и уметь считать очень удобно играть:) |
Автор: | andrej_andreev [ Вт июн 03, 2008 11:36 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
пардон ![]() ![]() Но спасибо за подробное описание системы пульса. Его знание иногда облегчает зонинг, ага. |
Автор: | KadVar [ Ср июн 04, 2008 11:33 am ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
Добрый совет - забудьте о лагах на очередь команд - это полный маразм большинства виденных мною движков и ХУДШЕЕ что есть в циркле в принципе. Делать новый движок и использовать там эту концепцию - это кастрировать себя самостоятельно. Разборка команд должна быть независима ни от чего, их исполнение может вставать в очередь, спору нет. Но лаг в том виде, в котором он используется много где - это полный маразм. |
Автор: | andrej_andreev [ Ср июн 04, 2008 11:38 am ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
Мне тоже кажется лаг и очередь команд некоторым маразмом. Хочется, если честно, большей риал-таймовости. Веяние времени? |
Автор: | Дворак [ Чт июн 05, 2008 2:42 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
Согласен, что с лагами нужно чтото решать и скорее всего отказываться от них... Допустим лагов нет и команды не задерживаются... Что делать тогда с командами, которые нельзя выполнить из-за каких-то обстоятельств ? Остается только игнориоровать их с сообщениями вроде : 'Вы оглушены'... Так ? По крайней мере я рассчитываю так сделать в своем движке... хотя над боевкой я еще буду думать... |
Автор: | andrej_andreev [ Чт июн 05, 2008 3:33 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
"Вы валяетесь в луже собсвтенных мозгов. Что-то хотели сказать?" |
Автор: | meliboe [ Чт июн 05, 2008 8:33 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
andrej_andreev писал(а): А во-вторых, интересно, как формиурется информация о, например, передвижении группы, когда она ходит всей пачкой. Предположим, у создания есть метод "move": leader.move(somewhere) двигает это создание и вызывает у всех загрупленных, находящийся рядом с ним, создний такой же точно метод. ТОгда в аутпут наблюдателю вывалится куча отдельноых перемещений. С одной стороны хочется, чтобы вывод был более цельным, блоком, но, вообще говоря, это не обязательно, наверно. Если формировать блок в методе у лидера про всю группу, то тогда сложно проверять, видит ли наблюдатель каждого отдельного члена группы, его перемещение. Пара вопросов к тем, кто или разбирается во внутренностях движков, или сам встречался с подобными проблемами. Хмм я бы сделал так: ввел ты минимальный отрезок времени, типа тик. Но не боевой раунд и не отрезок для мема, а такой за который можно произвести только одно элементарное действие типа пожрать, сесть, сказать чтонить. Под конец каждого тика обновляется игровой мир и игроку отсылаются (если надо) сообщения о том что с ним было на этом тике. Игрока я возможно бы метод move не давал, а дал бы его объекту "Мир" который двигал бы своих объектов-членов "Игрок", "Моб" и тд. |
Автор: | andrej_andreev [ Чт июн 05, 2008 11:04 pm ] |
Заголовок сообщения: | Re: Вопросы по серверам: очередь команд, вывод |
Пошаговая стратегия? Есть некоторый промежуток времени,"тик", который чувсвтуется человеком как время в слайд-шоу. Мне этого не очень хочется. Пошаговая стратегия -- это другой жанр, делать "быструю" пошаговую стратегию не хочется, тогда уж надо риал-тайм какой-никакой. Обработка команд не может проходить одновременно: ядро, грубо говоря, имеет один процесс. Тикер, то есть некоторые отсечки, делятся на тики (~минута), раунд боя (2-3 секунды) и пульс (0.1 сек), за которые что-нибудь делается, обсчитывается и т.д. На эксперименты пока совсем нет времени, к сожалению. Завтра начну что-нибудь делать и менять, мысли имеются. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |