Лечим лаги позиционирования (гайдик с картинками)
-
Перевожу темку с ировики, отзывы положительные. Я сам попробовал, вроде как помогло)
Если не понимаете, что делаете, лучше ничего не менять.
На некоторых японских сайтах, появляются видео, в которых демонстрируется частично решенна проблема лагов позиционирования(когда монстр/игрок отображается не там, где о несть на самом деле)
Видео которое илютрирует баг:
Это вызвано работой TCP / IP функции, известной как Nagle Algorithm(по умоолчанию она включена в Windows) Эта функция позволяет задержать передачу пакетов TCP в целях экономии канала за счет группирования пакетов в одну передачу. Это может вызвать задержку подтверждения TCP передачи до 200 мс (по умолчанию).
В РО, сервер не отправляет клиенту определенной информации (например, перемещение монстров или игроков), до подтверждения клиентом предыдущей передачи , среди других аналогичных вопросов. После отключения этой функцию Windows, РО должна выглядеть приблизительно так:
Отключение этой опции очень простой и абсолютно правомерный процесс (это изменение только своей собственной операционной системы). Обратите внимание, отключение этой функции может ухудшить работу некоторых других сетевых программ, но у меня не было каких-либо проблем с ней, к тому же легко вернуть всё в предыдущее состояние.
Шаг 1: Установка Microsoft Message Queuing
Откройте окно Установка и удаление программ и выберите Добавить / удалить компоненты Window's
Установите Message Queuing (в русской версии - Очереди сообщений). Это необходимо для того, что бы можно было изменить настройки.
*Шаг 2: Установка TcpAckFrequency *
Откройте реестр, запустив regedt32 и найти ключ:
HKLM \ System \ CurrentControlSet \ Services \ Tcpip \ Param eters \ Interfaces \ <Adapter ID> \Вы можете определить, какой идентификатор адаптера является правильным, посмотрев на IP адрес, указанный в окне справа
Выбираем этот адаптер, добавляем параметр DWORD (правой кнопкой на поле, создать>параметр DWORD ) TcpAckFrequency и установливаем значение равным 1.
Теперь находим в реестре ключ:
HKLM \ SOFTWARE \ Microsoft \ MSMQ \ Parameters \Добавляем параметр DWORD TcpNoDelay и устанавливаем значение равным 1.
**
*Шаг 3: Перезагрузка сервиса MSMQ *Теперь, когда правильные параметры установлены, нужно перезапустить службу, которая их использует (МОЖНО ПРОСТО ПЕРЕЗАГРУЗИТЬ КОМПЬЮТЕР)
Для перезапуска служб, запустите services.msc и найдите службу Message Queuing. Выберите её, правая кнопка мыши => Перезапустить
Вот и всё
P.S. небыл уверен насчёт раздела, в котором постить, потому отпостил здесь. если сочтёте нужным - можно переносить ))
P.P.S. Перевод мой, первоисточник по ссылке в начале поста. Если кто захочет поставить копирайт, мну можно обозвать Каато, Kaato ну или Татем с Асгарда -
Изначально надо было постить в базу знаний имхо.
-
Ну почему же, в Оффтопе всегда рады темам о том, как настраивать РО через самую жопу с помощью напильника.
-
автору каэшно респект за гайд, всегда ненавидил этот лаг, иногда чар вообще на пол экрана отстаёт
-
Да, безусловно, уже попробовал, от винды ничего не отвалилось, скоро проверю исчезла ли ошибка.
-
@"Ton-chan":
Ну почему же, в Оффтопе всегда рады темам о том, как настраивать РО через самую жопу с помощью напильника.this.