Цитата:
Сообщение от Alay
Хотелось бы почитать
|
Во-первых, каждый кноулист, это создание лока. В никсах, например, лок - это файловый дескриптор. Посчитаем количество неписей на сервере и прибавем тыщи две игроков. Не очень хорошее число, не так ли?
Идем далее. Куча постоянных локов, а значит и паркинга потоков, что не есть быстро. Прибавляем к этому постоянное движение игроков, монстров и получаем уже не слишком хорошую работу сервера. Ну и конечно же хранение в коллекции кучи объектов на энные тысячи и тысячи объектов кноулистов. В особенности при вменяемом онлайне.
Цитата:
Сообщение от Alay
я просто не знаю как в клиенте устроен процесс чтения пакетов. или же лучше исскуственно делать задержку на отправку.
|
В клиенте, при превышении размера сетевого буфера пакеты начиют дропаться. На ретейле сделана отложенная отсылка видимых объектов при перемещении в полностью новый регион. Причем ближайшие объекты отправляются первыми, а самые дальние - последними. Потому-что там отсылка выезжает из тиков экшен очереди.
Цитата:
Сообщение от Alay
на счет того были они в ретейле я не знал. Дело в том что хотел упростить боардкаст и прочие вытикающие. И чтобы аи мобов работали только из кноун листов. Тобишь чтобы просто так не гонять тики если рядом нет ни единого персонажа. На мой взгляд очень удобная штука при разработке.
|
Кноулистов никогда не было на ретейле. Там всегда была региональная сетка. Регионы так же, могут иметь состояние: активное (если в регионе есть игрок), неактивное (в регионе нет игроков).
У меня, к примеру, АИ тикает по регионам, каждый регион тикает отдельно, если статус региона неактивный, то тики пропускаются.
Добавлено через 5 минут
Цитата:
Сообщение от Alay
К тому же, зачем просчитывать все 8 соседних регионов, когда можно высчитать у какого ребра региона находится текущий объект и радиус его видимости и считать смежный регион к данному ребру, а если радиус видимости вообще не пересекает ребра то расчеты можно проводить только в текущем регионе
|
Радиус видимости настраивается в клиенте и не отсылается на сервер. Во всяком случае на тех версиях клиента, с которыми я работал.