Воскресенье, 19.05.2024, 00:02
Приветствую Вас Гость | RSS
.
Главная | Каталог статей | Регистрация | Вход
главное меню
Главная страница Форум читы для кс и многое другое Фотоальбомы cs 1.6 Гостевая книга Онлайн игры для всех FAQ (вопрос/ответ) Каталог статей кс 1.6 шаблоны для ucoz онлайн приколы в кс
PB PointBlank
Состав нашего клана Как вступить к нам в клан Как забить нам кв наши лучшие скрины с игры Мувики Всё для игры Статьи PB pointBlank
сталкер
скачать stalker патчи моды читы форум сталкер ключи чтоб играть по нету No DVD
все для darkorbit
боты для дарк орбит Форум о даркорбите читы для дарк орбита Фотоальбомы дарк орбита отдаю акаунты в DarkOrbite бесплатно
Софт
Програмки файловые менеджеры Браузеры Веб мастеру Мультимедиа тест тест тест
мастерская
создание сервера настройка amx mod руссификация amx mod amx команды для админ делаем себя админом конфиги как играть в кс по интернету что нужно для сервера снижаем лаги сервера открытие портов установка плагинов запуск серв в консоль режим
полезные статьи
стать снайпером в кс установка файлов тактика с оружием тактика на картах тактика разное сетевой код кс читерство обо всём об игре консоль разное советы конфиг админ трюки боты
cs:sours
Меню для CSS Боты Карты Скачать игру Мувики Лого Программы Патчи Модели оружий Модели игроков
Категории раздела
Мои статьи [69]
категория 1 [3]
категория 2 [7]
категория 3 [3]
категория 4 [4]
категория 5 [2]
разное [5]
консоль [4]
об игре [0]
обо всём [0]
читерство [8]
сетевой код cs [6]
тактика разное [7]
тактика на картах [0]
тактика с оружием [10]
установка файлов [11]
стать снайпером в кс [1]
PB PointBlank [0]
сервер cs 1.6
готовый сервер программы античиты плагины карты
steam
Скачать Steam скины для steam руссификатор для steam
помощь cs 1.6
как создать сервер №1 как создать сервер №2 как сд.серв на 2 протокола? делаем плагин amx мод Установка плагинов
Half life
Лого Карты Меню для hl Модели оружий Модели игроков
разное
делаем цветное лого делаем прицел(zoom) делаем фон консоли делаем waypoint"ы меняем цвет прицела делаем своё меню делаем сервер win делаем демку на HLTV делаем из демки видео монтируем видео в Vegas создам веб сайт за 100 руб баннеры и ссылки
Главная » Статьи » сетевой код cs

Основные сетевые команды

\Вступление


Несмотря на растущую популярность создания собственных конфигов и настроек для Half-Life, многие игроки имеют лишь приблизительное представление о реальном значении некоторых команд, отвечающих за сетевые настройки.
Целью данной статьи является детальное разъяснение эффекта основных сетевых команд как для Half-Life 1.5 таки для грядущего 1.6 релиза.

"Удушье"


Эффект "удушья" (лаг со стороны клиента) возникает в случае, если пропускная способность соединения не справляется с объемом поступающего трафика. Сейчас мы попробуем разобраться почему это происходит.
Время посылки слудеющего пакеты вычисляется так:
Текущее время + 1/cl_updaterate
Текущее время + (Количество посланных байтов/значение rate)
Соответственно, если у вас выставленно высокое значение cl_updaterate, а пропускная способность соединения недостаточна вы начнете испытывать лаг. Также, большое количество игроков означает увеличение потока данных, а значит увеличение задержек из-за низкой пропускной способности. Тот же эффект наблюдается при низком значении rate. При возникновении эффекта "удушья" сервер пытается справиться с ним посылая пакеты подряд, не дожидаясь следующего времени посылки, установленного в 1/cl_updaterate, пока лаг не будет устранен.

Интерполяция


Движок Half-Life использует интерполяцию для хранения истории игровых позиций и времени, когда игрок точно находился в этих позициях. После этого используется ex_correct для поиска в истории двух лучших позиций (заметьте, абсолютно не обязательно двух последних). Соответственно игрок всегда двигается с постоянной скоростью (реальная скорость передвижения игрока между позициями на сервере) меж этих двух позиций, не знависимо от значения ex_interp (до тех пор пока ex_interp выставлен равным 1/cl_updaterate или выше).
Единственный случай, когда игрок реально может двигаться быстрее, это после огромной потери пакетов или после сильной задержки из-за высокого пинга так, как он отстает от игрового мира и скорость увеличивается, чтобы исправить его реальную позицию.

Команды


cl_updaterate/cl_cmdrate:
Причина относительно низких значений по умолчанию состоит в том, что игра разработана для поддержки игроков с любыми типами соединений и обеспечения им нормальной игры через интернет. Еще одна причина - HLDS должен работать практически на любом компьютере и не создавать сильной нагрузки на процессор.
Команды cl_updaterate и cl_cmdrate контролируют трафик сервер-клиент и клиент-сервер. Чем выше значения, тем чаще посылаются пакеты, а значит, тем больше трафик. Однако, выставление низких значений не приведет к искажению реальной картины (это происходит только при большой потере пакетов), так как движку Half-Life не требуется полное соответствие работы клиента и сервера.
А вот выставление слишком высоких значений cl_updaterate и cl_cmdrates ведет к ряду неприятных последствий:
Как сказано выше, если соединение не успевает обработать весь трафик, возникает лаг. Сервер испытывает значительно большую нагрузку, т.к. происходит более частая посылка значительно меньших изменений, подсчет которых вызывает сильную нагрузку на процессор и приводит к лагу со стороны сервера.
Выбор значений индивидуален для каждого и должен основываться на типе и качестве соединения. Высокие значения годятся только для локальных сетей, но не для Интернета

ex_interp
Команда, вокруг которой всегда ходит множество слухов, опасений и мифов. В Half-Life 1.5 лучшим значением ex_interp является установленное по умолчанию - 0.1. Дело в том, что существует небольшой баг (и на сервере и на клиенте), влияющий на то, как interp раскладывается на клиенте и пересылается на сервер (и, соответственно, как он потом включается в лагокомпенсацию на сервере). В результате различных жутких мифов многие думают что 0.1 - единственное допустимое значение, что сослужило хорошую службу в минимизации эффекта бага. ex_interp равное 0.1 - не закон, просто с ним все работает нормально :). Не меняйте без особых на то причин, в противном случае можете возникнуть резкое снижение точности стрельбы примерно на половину хитбокса или более.
Как многие из вас вероятно уже знают, сетевой код Half-Life притерпит ряд изменений в версии 1.6. Алгоритм вычисления лагокомпенсации для клиента и сервера будет модифицировн.В частности ex_interp можно (и нужно) будет выставлять в 1/cl_updaterate (0.01 при cl_updaterate равном 100). Новая формула равно 1/cl_updaterate потому, что при условии отсутствия эффекта "удушья" и потери пакетов игроки и объекты будут двигаться непрерывно и получать следующее обновление от сервера сразу по завершении интерполяции. Заметим, что для получения полного эффекта от ex_interp равного 0.01 сервер должен быть способен посылать 100 пакетов в секунду каждому клиенту, а подавляющее большинство серверов этого просто не могут.

sv_lan
После того, как CPL (и другие чемпионаты) изменили значения cl_updaterate и cl_cmdrate со стандартных на более высокие можно заметить возросшие лаги в LAN соревнованиях. Это происходит потому, что HLDS выставляет rate в 10000 на всех клиентах при sv_lan равному 1. Изначально, это было сделано не для ограничения значения rate 10000, а для поднятия значения по умолчнию на клиенте с 2500 до 10000 и достижения более комфортной игры в локальной сети. В новой версии Half-Life это будет исправлено. Однако движок Half-Life ограничивает максимальное значение rate 20000, или все что выше игнорируется.

ex_extrapmax 1.2
Экстраполяция происходит в случаях, когда у клиента нет конечной позиции для интерполяции. В этом случае экстраполируется предсказанная позиция на которую и передвигается клиент. Extrapmax устанавливает максимальное время экстраполяции для игрока (насколько далеко мы будем предсказывать позицию). Если позиция выходит за пределы выставленного значения игрок прекращает движение. Сервер всегда учитывает только значение по умолчанию, так что изменение этого значения ничего не даст.

ex_correct 0
Еще один способ интерполяции и предсказания для клиента. Сервер всегда осовывается на значении 0. Эта команда будет удалена из следующей версии Half-Life.

ex_maxerrordistance 64
В сочетании с ex_correct равным 1 вы можете выставить максимальный радиус, в котором игрок будет плавно двигаться от позиции x к позиции y. Если игрок покидает этот радиус он будет мгновенно телепортирован в конечную позицию. Но так, как сервер учитывает только ex_correct равным 0 толку от этого не много. Эта команда также исчезнет в следующей версии Half-Life.

sys_ticrate
Эта команда ограничивает максимальную скорость посылки пакетов клиентам. Чем выше значение, тем больше пакетов может быть послано.

sv_maxupdaterate
Ограничивает частоту обновлений сервера. Чем выше значение, тем больше пакетов будет послано клиентам (если скорость посылки позволяет).

Заключение


Как сказано ранее, наиболее важными факторами для выбора значений являются личные предпочтения и какую нагрузку могут выдержать ваше соединение и компьютер. Движок Half-Life дает возможность нормально взаимодействовать даже при низких значениях. В хорошем окружении (читай: в локальной сети) и клиент и сервер могут выдержать даже большие значения игра будет еще более комфортной.

Благодарность за участие в обсуждении темы статьи:
• Yahn Bernier, Valve Software
• Martin Otten, Valve Software
• Zibbo, UDPSoft
• Perkele, UDPSoft
Автор: Andreas "bds" Thorstensson , перевод [humppa] Newbie

Категория: сетевой код cs | Добавил: f@ntom (25.03.2010)
Просмотров: 534 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
cs info
история counter strice правельноя стрельба словарик консоль отцы cs 1.6 секреты на картах cs секреты оружия матрица в cs басня про cs
юмор
приколы в кс стишки про кс cs анекдоты
timeleft
форма входа

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!

облоко тегов
Админы
В теме-PORTAL Список настоящих администароторов сайта : apokalipsis , DOC все остальные администраторы в данный момент являются ботами. f@ntom больше не админ так как акаунт был взломан и его админку перенесли на другой аккаунт
Мини-чат
Мы В контаке!!!
Мы в Контакте
Наш опрос
Мы живём?
Всего ответов: 90
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
топы
Яндекс.Метрика
HotLog Graffiti Decorations(R) Studio (TM) Site Promoter

Copyright MyCorp © 2024

Хостинг от uCoz