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/