Среда, 18.12.2024, 15:46 На сайте время по Киеву(Украина)
<
Меню
Наш опрос
Стоит ли нам открыть свой Public server CS 1.6?
javascript:; javascript:;
Всего ответов: 39

Лучшие пользователи
Новые пользователи
  • CRAZY
  • S[m]1Le
  • mazahaka
  • anim3
  • tedy
  • lastmubashir
  • danbdan
  • mixa
  • ManiaCS
  • Дмитрий
  • Реклама
    Реклама
    Реклама
    All for uCoz , Photoshop , Cs 1.6

    Главная » 2010 » Апрель » 3 » Улучшаем пинг в StarCraft2
    00:30
    Улучшаем пинг в StarCraft2

    Как сообщают на reps.ru, некий R1CH в своей статье на tl.net рассказал об особенностях сетевого подключения  StarCraft2 Beta. В игре встроен командный буфер, который предназначен для сглаживания игры при высоких лагах. С другой стороны он автоматически добавляет некий дополнительный пинг, который нельзя исправить никаким редактированием.
     
    Введение

    StarCraft2 запускается через удаленный сервер, как например HoN. Не p2p как было в BroodWar, а через удаленную машину-сервер. Blizzard - хост игры, а не вы. Протокол - TCP, а не UDP как было ранее. Я не знаю, почему решили использовать TCP/IP, ведь при равных условиях этот протокол проигрывает по пингу из-за потерянных пакетов. Вероятно, они не хотели ломать голову с фрагментацией или NAT.
      

    "Дропхак" и обычные лаги

    Так как другие игроки так же подключаются к серверу Blizzard, а не к вам, то возможность "дропхака" исключена полностью. Дропхак позволяет прервать соединение какими-либо способами, и десинхронизировав соединение, выкинуть вас из игры. В StarCraft2 соединение идет через сервер, все что можно сделать - отключить себя с сервера. Сервер же остается жив, и сможет определить, кто остался в игре. Он будет победителем и получит очки.

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

    Вы могли заметить, что окно Waiting for players появляется довольно часто. Сервер настроен так, что при лаге одного игрока, на паузу ставятся все остальные. Типа не честно было бы продолжить игру, чтобы "нелагающий" игрок перемикрил, или, того хуже, поймал на муве лагающего, пока тот не в состоянии что-то сделать. В теории же, можно сделать как в HoN'е - если игрок лагает, это его проблемы, у остальных все хорошо. С другой стороны, такая система позволяет зайти в игру миллиону обсов. Если обс лагает, кому есть до этого дело?
     
    Port Forwarding

    Настраивать порт-форвардинг не нужно. Вы подключаетесь к Battle.net'у как к репсам. Опять же, это решает вопрос с proxy: 1x1 это, 2x2, 3x3 - разницы нет.

    Мапхак

    Небольшой технический взгляд на мапхаки. Соединение идет через сервер, технически возможно полностью избавиться от мапхака (сервер отправляет игроку только то, что он "может видеть"). HoN так делает. Но в HoN'е мало юнитов, это ж как DotA, но в случае войны лимитов (тем более в каком-нибудь 4x4, где воюют 4 тосса с батонами). Это означает, что как только лимит входит в зону вашей видимости, сервер должен отправить в одно мгновение пару мегабайтов. При этом не должны теряться пакеты, иначе будет лаг. И если это каким-то хитрейшим способом можно рассчитать, ссылаясь на скорость и вектор движения юнитов, то точка скана - чисто случайная точка для сервера.

    То есть в теории можно замутить очень хитро, но на практике от этого пострадает пинг, а пинг в RTS крайне важен.

    Улучшаем латентность

    Как уже было сказано, SC2 использует TCP. TCP разработан так, что пинг вторичен по отношению к скорости передачи данных. Практически все стрелялки используют UDP из-за этого. Особенность TCP - точная передача данных. Если пакет утерян, его нужно переслать заново (а игра в этот момент подлагивает).

    Меняем TcpAckFrequency на единичку:

            Запускаем редактор реестра (Пуск - выполнить - regedit), затем переходим на закладку:

            HKEY_LOCAL_MACHINE
            SYSTEM
            CurrentControlSet
            Services
            Tcpip
            Parameters
            Interfaces

            Здесь должен быть ключик IPAddress с вашим IP. Здесь же правой кнопкой создаем новый ключ DWORD, называем его TcpAckFrequency, значение "1".

    Почему это работает?

    Обычно TCP отправляет запросы на подтверждение получения пакетов. Это происходит до тех пор, пока сервер не получит ответ, либо не прекратит это дело по тайм-ауту. Таймаут может произойти из-за того, что отправляющая сторона ожидает от вас подтверждение (ack). Установив TcpAckFrequency на единичку, вы отправляете подтверждение сразу после получения данных. Обратите внимание, что это повышает требование каналу, т.к. вы будете отправлять в разы больше данных.
     
    Что может помочь

    Если вы сидите на ADSL'е, соединение может использовать метод interleaving, который уменьшает подверженность всяким ошибкам, но опять же, добавляет пинг. В настройках ADSL модема стоит отключить эту опцию. Опять же, качество проводов, шумы в телефоне, расстояние до АТС (а также погода на Марсе и все такое прочее) может заставить вас включить эту опцию (без нее все станет работать еще хуже). Можно попробовать связаться с провом, объяснить задачу, но вероятность получить ответ типа: "чоо0???77" крайне высока.

    Провод против беспровода:
     

    Правильно настроенная беспроводная сеть практически исключает лаг. Тем не менее, если вы находитесь в местности буквально кишащей шумами на частоте 2.4 гигагерца, пинг может стать существенным. Пинг до правильно настроенного роутера - 1-2ms. Если больше - провод вам в помощь.

    На дешевеньких картах по беспроводу также можно получить лаг в момент сканирования точек доступа. WlanOptimizer'ом можно отключить сканирование, но он только для Висты/Вин7.

    ХР-ишникам можно посоветовать подкрутить RWIN. Информации много, гуглится легко.

    Что не поможет

    В сети миллиард твиков, которые типа "улучшают интернет". Как правило их задача сводится к подкрутке значений TCPNoDelay, NetworkThrottlingIndex, TcpDelAckTicks, отключению QoS Packet Scheduler. Можно конечно попасть на уникальный для себя твик-артефакт (один из сотни), который даст нужный результат. Но у другого он работать уже не будет. Тут стандартные настройки - лучший выбор.

    Просмотров: 332 | Добавил: CRAZY | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Мы в топах
    TOP.CSFILEZ Counter-Strike TOP Рейтинг Counter-Strike сайтов. TOP.MY-CS.RU TOP Сайтов от X-Cheats.Ru Portalik TOP ToP-CsFiLeZ.NeT.Ru
    Реклама
    Реклама
    Реклама
    All for uCoz , Photoshop , Cs 1.6
    Форма входа
    Профиль

    Гость !



    Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
    Статистика
    Счетчики:
    Онлайн:
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Сегодня нас посетили:
    Счётчик
    счетчик для сайта
    Бесплатный серфинг Rambler's Top100

    Vote on the Counter Strike Top 200
    Counter Strike Top 200 - Maps | Skins | CD Keys | Sprays | Bots


    CS-FOR-YOU ©Все права защищены! Сайт оптимизирован под браузер FireFox Mozila. Sitemap | Sitemap-forum.