Реклама
Реклама
Реклама
Место свободное
Место свободное
Место свободное
Место свободное
Место свободное
⇐⇒




Меню сайта





Главная страница Форум Каталог файлов Админы сервера Триксы










    Файлы





    Counter Strike файлы
    Плагины Готовые сборки Карты Анти-читы Конфиги Патчи
    Cтатьи
    Сделать сервер на 47-48 протокол Руссификация AMX MOD X Собираем сервер с нуля Оптимизация CS и 100 FPS Делаем демку с помощью HLTV Делаем из демки мувик Способы понижения пинга Как быть с динамическим ip?
    Остальное
    Игры Игры для PSP Русификаторы для игр Софт Музыка Другое Разавлечения Фильмы










    Мини-чат















    Наш опрос





    Оцените мой сайт
    Всего ответов: 40











    Оптимизация CS и 100 FPS - Сайт клана x7pro > - Описание сайта



    Определения:

    Сервер (Server) - Выделенный сервер в Интернете, расположенный на каком-нибудь компьютере.
    Клиент (Client) - Игра, запущенная компьютере игрока. Клиент подключается к Серверу.
    В процессе игры клиент и сервер обмениваются пакетами данных по протоколу UDP.
    Пинг (Ping) - Время в миллисекундах, за которое пакет доходит от сервера к клиенту и обратно.
    Задержка (Latency) - Время в миллисекундах, за которое происходит обмен данными между клиентом и сервером
    FPS клиента - количество кадров в секунду в игре, отображаемое на мониторе клиента
    FPS сервера - общая частота обновления игровой информации обо всем, что происходит на сервере.
    Loss - потери пакетов вследствие проблем сетевого соединения, как правило возникает в случае технических неисправностей у интернет-провайдеров.
    Choke - потери пакетов вследствие недостатка скорости соединения между сервером и клиентом, может возникнуть из-за неправильных настроек.

    FPS, Latency, Loss и Choke клиента - основные параметры от которых зависит, насколько комфортно будет играть. Чем ниже Latency клиента и чем выше FPS клиента тем лучше для него. Loss и Choke должны не превышать 1-2, в идеале 0.

    Чем же отличаются ping и latency? В первую очередь тем, что в процессе обмена данными нужно не только доставить пакет от сервера к клиенту и обратно, необходимо еще учитывать время обработки пакета как на клиенте, так и на сервере. Таким образом latency = ping + время обработки пакета клиентом + время обработки пакета сервером.

    Пинг виден в крайнем столбце окне браузера серверов:

    Задержку можно увидеть, если нажать Tab в процессе игры и посмотреть в третий столбец, а также в правом нижнем углу экрана, введя в консоле net_graph 3


    Очень часто эти два понятия путают, точнее называют latency пингом, отчасти это правильно потому что задержка зависит от пинга, но и про время обработки забывать не стоит. В браузере серверов, правда, пинг назван latency, но как показывает практика, то что вы видите в окне браузера серверов всегда будет меньше, чем latency, который вы увидите, зайдя на сервер. В дальнейшем, если специально не будет оговорено, мы будем называть и то и другое пингом, как более привычным и удобным словом среди игроков.

    Поскольку задача первой части статьи - оптимизация клиента, будем считать, что сервер сконфигурирован идеально, то есть не будем учитывать время обработки пакетов на сервере. Таким образом главные задачи: уменьшение времени следования пакета между сервером и клиентом, уменьшение времени обработки пакетов на клиенте, увеличение FPS клиента, борьба с потерями пакетов Loss и Choke.
    Для решения этих задач существуют ряд способов.

    1. Оптимизация сетевых настроек игры

    Все нижеследующие переменные следует прописывать в файл config.cfg в папке cstrike или же вводить в консоле (для того чтобы в игре заработала консоль запуск должен быть с параметром -console)
    Скажем сразу, абсолютно оптимальных значений для клиента не существует, многое также зависит и от сервера (в первую очередь от пинга до сервера).

    cl_lc 1 - активация компенсации лагов. По-умолчанию 1. Рекомендуется оставить 1.

    cl_updaterate - устанавливает количество пакетов в секунду, принимаемых клиентом от сервера. Для игры в локальной сети, или же на серверах, где пинг не превышает 10-15, ставить надо 101(если у вас стим, то 100, т.к. это максимум для стима). Для игры в интернете устанавливать нужно в зависимости от пинга на сервере и от установленного значения rate.

    Не рекомендуется выставлять cl_updaterate большим, чем позволяет соединение и пинг до сервера, поскольку может появиться Choke, повыситься Latency и начнутся лаги.

    cl_cmdrate - устанавливает количество пакетов в секунду, отправляемых к серверу от клиента. Отдача пакетов на сервер происходит реже, чем прием и размер пакетов также существенно ниже. Оптимальное значение = cl_updaterate+-10.

    rate - устанавливает максимум скорости (в байт/с) будет происходить передача пакетов от сервера к клиенту. Рекомендуется устанавливать значения в зависимости от вашего соединения.
    Итак, оптимальные настройки для различных типов подключений:

    Телефонный модем:
    rate - от 1000 до 3500
    cl_updaterate - от 10 до 20
    cl_cmdrate - от 10 до 20

    ISDN:
    rate - от 4000 до 8000
    cl_updaterate - от 20 до 40
    cl_cmdrate - от 20 до 30

    xDSL:
    rate от 6000 до 20000
    cl_updaterate - от 30 до 100
    cl_cmdrate - от 30 до 100

    T1/LAN:
    rate - от 8000 до 25000
    cl_updaterate - от 30 до 100
    cl_cmdrate - от 30 до 100

    Как выбрать значение между "от" и "до" зависит от пинга(чистого пинга, не latency между клиентом и сервером). Чем он меньше, тем большее значение можно установить. Игрокам рекомендуется установить максимальные значения для своего подключения, после чего зайти на сервер и в случае появления choke или большого latency понижать соответственно cl_updaterate и cl_cmdrate до оптимального значения.
    В соотношениях между rate, cl_updaterate и cl_cmdrate желательно учитывать также вес одного пакета.
    То есть, если к примеру ваш rate 20000, а cl_updaterate 100, то максимальный вес пакета 20000/100 = 200 байт.
    150-250 байт - это оптимальный максимальный размер пакета для CS 1.6, нужно соблюдать это соотношение. Например, для rate 8000, оптимальным cl_updaterate будет ~ 8000/200 = 40.

    ex_interp - значение периода(шага) интерполяции игровых данных, получаемых с сервера. По умолчанию 0.1 Показывает насколько точно все игровые данные будут выводиться клиенту. Например, если ваш cl_updaterate равен 20, а ex_interp 0.1, то вся игровая информация - положение всех объектов, других игроков и т.д. будет абсолютно в точности соответствовать приходящим данным через каждые 100 миллисекунд или через каждый второй приходящий пакет.
    ex_interp не может иметь значение ниже чем 1/cl_updaterate! Например, при cl_updaterate 50 минимальный ex_interp = 1/50 = 0.02
    Если прописать в консоле ex_interp 0 - он будет выставлен в минимальное значение то есть 1/cl_updaterate
    С одной стороны, понижение ex_interp способствует более точному определению положения всех игровых объектов - в первую очередь других игроков. С другой стороны, если вы выставите высокий cl_updaterae и ex_interp 0 при игре в интернете, далеко не все остальные игроки будут обновлять свое положение на сервере достаточно часто, что приводит к тому что их перемещение будет для вас казаться рывками. Это может быть по ряду причин, например, у них высокий пинг или же понижены настройки rate или cl_cmdrate или серверная переменная sv_maxupdaterate будет переопределять(ограничивать) ваш cl_updaterate.
    Допустим ваш cl_updaterate 50 а ex_interp 0.02 в то время как у другого игрока на этом же сервере пинг 50. Он не может обновлять информацию о своем положении чаще чем 1000/50 = 20 раз в секунду. Вам же приходит 50 обновлений, и при вашем ex_interp 0.02 обновить положение другого игрока надо 50 раз в секунду, а он то послать больше 20 обновлений не может из-за чего его движение будет выглядеть для вас небольшими рывками. Если же у вас cl_updaterate 50 а ex_interp 0.1 то обновить его положение нужно всего 10 раз в секунду, что легко обеспечить. Между каждыми из этих 10 обновлений положение игрока будет рассчитываться(интерполироваться) таким образом, чтобы его движение выглядело наиболее плавным.
    В общем, рекомендация по ex_interp следующая:
    прописать ex_interp 0 (что установит ex_interp = 1/cl_updaterate), если другие игроки заметно будут
    двигаться маленькими рывками, нужно постепенно ненамного увеличивать ex_interp до тех пор пока перемещение других игроков не будет более плавным. Также, не рекомендуется устанавливать ex_interp ниже значения вашего собственного пинга, например если у вас пинг 50, то не стоит устанавливать ex_interp меньше чем 0.05

    cl_allowdownload - разрешает загрузку игровых файлов с сервера. Оставить 1, как есть по-умолчанию.


    cl_download_ingame - разрешает загрузку логотипов других клиентов, присоединившихся к процессу игры. Если соединение плохое, рекомендуется установить 0.

    cl_allowupload - разрешает загрузку игровых файлов на сервер. Есть проблемы с соединением - установите 0, и без своего логотипа можно поиграть.


    2. Оптимизация остальных настроек игры

    Другие настройки, благодаря которым возможно снизить как потребляемый трафик, нагрузку на процессор и поднять FPS, так и сделать игровой процесс удобнее:

    r_drawviewmodel 1 - включение/выключение прорисовки модели оружия


    сl_nodelta 1 - включение/выключение дельта-сжатия


    max_shells 120 - максимальное количество гильз, которые вы можете наблюдать одновременно.


    max_smokepuffs 120 - работает как и предыдущая переменная только для дыма и искр от ослепляющей гранаты.

    fastsprites 0 - уровень качества спрайтов (0 - наилучшее, 2 - наихудшее, но нагрузка меньше)

    cl_himodels 0 - качество моделей в игре

    con_color "RRR GGG BBB" - цвет текста в консоли, для цвета используются стандартные значения RGB (0-255)

    hud_fastswitch 1 - быстрый выбор оружия - довольно удобная функция, поставив 1, можно не нажимать огонь при выборе слота оружия.

    hud_saytext_time 6 - определяет сколько времени сообщение будет находиться на экране.

    Смена графического режима в игре. Всего их 3: Software, OpenGL, D3D. Software использовать крайне не рекомендуется, лучше не портить себе зрение.
    А вот выбор между D3D(Direct3D) и OpenGL зависит от железа и драйверов, иногда игра может даже не запуститься(при смене графического режима всегда происходит перезапуск), если выбрать режим а также разрешение, которые не поддерживает видеокарта.
    Все же несколько более оптимальным является OpenGL - нагружает меньше оперативную память.

    2. Оптимизация настроек ОС

    Удобство игрового процесса зависит не только от настроек CS, но еще и от состояния операционной системы в целом.

    Несколько советов, благодаря которым можно избежать лагов в игре:

    - Отключить все приложения, использующие ресурсы сетевого соединения: менеджеры закачек, торрент-клиенты, eMule, DC++ и т. д.
    Даже запущенный браузер с несколькими открытыми вкладками может прилично нагружать как соединение, так и процессор.
    - Отключать все приложения, использующие ресурсы процессора.
    - Если есть необходимость оставить запущенным приложения, так или иначе использующие ресурсы, то необходимо поставить на эти процессы низкий приоритет.
    Для лицензионных клиентов такое необходимое приложение есть, это сам Steam, который даже в фоновом режиме загружает процессор. Так что всем лицензионным клиентам, которые замечают периодические падения FPS во время игры, надо поставить низкий приоритет на процесс steam.exe
    Также если приложение потребляет трафик, его тоже надо ограничить. Во многих p2p-клиентах есть настройки на ограничение по скорости.
    - В некоторых случаях при падениях FPS помогает установка низкого приоритета на сам CS(процесс hl.exe)

    - Если процессор двух/четырех-ядерный, то рекомендуется установка соответствия процессу hl.exe только на 1 ядро.


    100 FPS

    К сожалению по дефолту в кс стоит обычно 60 fps.Так как в дровах видео включа
    такая вещь как вертикальная синхронизация (vsync).

    Для начала заходим в cs и пишем в консоле команду net_graph 3
    В нижнем углу справа появляются цифры и показывает 60 фпс=) 

    1.Заходим в дрова совей видеокарты, для тех у кого карты от nvidia, находим пункт производительность и качество,далее ищем вертикальную синхронизацию (вертикальный синхроимпульс), кликаем на неё и снимаем галочку в "управляемое приложением" и ползунок двигаем влево. 

    Для Ati с Control Panel правой кнопкой мыши по рабочему столу - свойства, параметры, дополнительно,3D, OpenGL, Специальные... -Ждать вертикальной синхронизации - ползунок в крайнее левое положение.

    2.Дальше нужно поставить максимальную герцовку монитора.На жк мониках она ограничена 75 герцами.Если моник CRT то надо поставить 100 герц,если монитор не очень древний должен держать 100 герц.

    3.Так же нужно прописать герцовку в самой игре это делается так: для обладателей стима сначала заходим в раздел "Мои игры" тыкаем правой кнопкой на игре контр страйк и выбираем свойства. Потом тыкаем на кнопку "установить параметры запуска" и прописываем такую фразу -freq 75 или 100 в зависимости от герцовки вашего монитора и жмем окей.

    Для обладателей левой версии кс тыкаем правой кнопочкой по ярлычку и добавляем все ту же надпись либо -freq75 либо -freq 100

    4.Теперь после запуска кс у вас должно показывать 100 фпс

    P.S. по поводу видеокарты, 100 фпс без дымов держало даже на geforce 4 mx 440 64mb памяти.=)Так что если у вас не совсем древнее видео удачи вам=).










    Профиль





    N00b

    Сообщения:

    Группа:
    Гости
    Время:04:00

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










    Поиск















    Календарь





    «  Май 2024  »
    ПнВтСрЧтПтСбВс
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031










    Архив записей















    Друзья сайта