Сайт клану x7pro - Оптимізація CS та 100 FPS

Сервер (Server) - Виділений сервер в Інтернеті, розташований на якомусь комп'ютері. Клієнт (Client) - Гра, запущена на комп'ютері гравця. Клієнт підключається до Сервера. У процесі гри клієнт та сервер обмінюються пакетами даних за протоколом UDP. Пінг (Ping) - Час у мілісекундах, за який пакет доходить від сервера до клієнта і назад. Затримка (Latency ) - Час у мілісекундах, за який відбувається обмін даними між клієнтом та сервером FPS клієнта - кількість кадрів за секунду в грі, що відображається на моніторі клієнта FPS сервера - загальна частота оновлення ігрової інформації про все, що відбувається на сервері . Loss - втрати пакетів внаслідок проблем мережного з'єднання, як правило виникає у разі технічних несправностей у інтернет-провайдерів.

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 до оптимального значення. 1>Тобто, якщо, наприклад, ваш rate 20000, а cl_updaterate 100, то максимальна вага пакета 20000/100 = 200 байт. 150-250 байт - це оптимальний максимальний розмір пакета для CS 1.6, потрібно дотримуватися цього співвідношення. Наприклад, для rate 8000, оптимальним cl_updaterate буде

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 нижче значення вашого власного пінгу, наприклад, якщо у вас пінг 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 - визначає скільки часу повідомлення буде на екрані.

2. Оптимізація налаштувань ОС

Зручність ігрового процесу залежить не тільки від налаштувань CS, але й стану операційної системи в цілому.

Декілька порад, завдяки яким можна уникнути лагів у грі:

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

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

Для початку заходимо до cs і пишемо в консолі команду net_graph 3 У нижньому кутку праворуч з'являються цифри і показує 60 фпс=)

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

2. Далі потрібно поставити максимальну герцовку монітора. На жк моніках вона обмежена 75 герцами.

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

Для власників лівої версії кс тицяємо правою кнопочкою по ярличку і додаємо той самий напис або -freq75 або -freq 100