Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Пінг в Counter-Strike: Global Offensive

  1. Команди впливають на пінг в CS GO
  2. Що потрібно зробити, перш ніж зменшити пінг в CS GO?
  3. Додаткові команди допоможуть при налаштуванні пинга в CS GO:

Наша взаимовыгодная связь https://banwar.org/

Ну нарешті-то, дістався до однієї з найбільш цікавих тем - пінг в CS GO Ну нарешті-то, дістався до однієї з найбільш цікавих тем - пінг в CS GO. Скільки б хлопці не мірялися розмірами, але тут не в пошані, коли він у тебе великий. Скільки він болю приносить, коли величезний і скаче. Скільки партій, скільки карт програно через нього. І як само собою зрозумілим ми вважаємо, коли пінг не видно і не чутно. Сьогодні пройдемося по командам і подивимося, як можна впливати на горезвісний пінг.

Перш ніж почнемо боротися з пінгом в CS GO, дізнаємося які інструменти гра пропонує нам для боротьби з цим лихом. А так же подивимося, що відбувається і як вони працюють. Це необхідно для якісної настройки. Плюс до цього, загляньте в попередню статтю по налаштуванню мережевої карти і фрагментації . Оскільки CS GO використовує UDP.

Почнемо з того, що CS GO це клієнт-серверний додаток. Взаємодіють вони між собою шляхом обміну і пересилання невеликих пакетів. Кількість їх враховується за секунду. Сервер відправляє клієнту дані про становище гравців і об'єктів, а він на основі цих даних відтворює ефекти (анімацію, звук ...). У свою чергу клієнт CS GO, всі дані які надходять з клавіатури і мишки, передає серваке, а він уже розсилає іншим Ксерокс зміни в ігровому світі.
Тепер уявімо, що сотні гравців одночасно генерують якісь події, рухають мишкою, друкують і т.д. Щоб сервера кожні такі зміни відсилати від кожного до кожного і відразу, потрібно було б дуже висока пропускна здатність і можливість справлятися з постійним навантаженням. Генерувалося б пристойну кількість трафіку і була б дуже висока навантаження на сам сервак, зважаючи на велику кількість обрахунку і змін, що в кінцевому підсумку впливало б і на пінг. Обійти це допомагає інтервальний зріз в ігровому світі, через рівні проміжки часу ( tickrate ).
Якщо у вас в CS GO дуже низька швидкість, то при високому tickrate висока ймовірність зловити лаг, через втрату пакетів, які не доходили б до клієнта. Щоб цього не було, по-перше потрібно мати достатню ширину каналу, по-друге потрібно повідомити, з якою гарантованою швидкістю ми можемо приймати дані, це так званий rate (байт в секунду)
Клієнт же теж не все відразу відсилає, а робить зріз своїх подій, тільки не ігрового світу, а клавіатури і мишки з певною частотою (cl_cmdrate). Чим вище це значення, тим вище навантаження, але якісніше і плавніше руху в грі.

Тепер стосовно самого пинга в CS GO і інтерполяції (cl_interpolate). Наприклад ми отримуємо 10 пакетів в секунду, тоді 1000 мс / 10 = кожні 100 мілісекунд нам доставляються дані. Що буде, коли один буде помилковим або загубиться чи затримається і не дійде до гравця? Буде лаг. Це не помітно, якщо всі стоять і нічого не роблять, але коли йде активне бій з великою кількістю переміщень і расприжок? Для таких випадків придумана інтерполяція. Вона працює на клієнта, беруться два (або більше) останніх пакета і по ним рендерится положення об'єкта в ігровому світі. Тут є особливість, виведення зображення на екран з інтерполяцією, робиться як би для минулих подій, розрахованих за формулою: поточний час-час інтерполяції

Якщо при відправці нам 1,2,3,4 пакета, загубився 3-ий, то CS GO рендерить зображення для третього на основі 2 і 4-го (поточного) і візуально різкого переміщення гравця в просторі не відбувається. Ще раз уточнюю, що при інтерполяції рендерится зображення не за поточним пакету, а для минулого. Ви будете бачити ігровий світ по третьому кадру, навіть якщо вже дійшов до вас четвертий. Візуалізація при цьому завжди йде з відставанням.

Яка кількість пакетів брати для згладжування позицій, залежить від того скільки їх приходить і який рівень інтерполяції в налаштуваннях клієнта. Для прикладу:

20 пакетів і інтерполяція 0,1 = 100 / (1000 мс / 20) = 2
10 пакетів і інтерполяції 1 = 1000 / (1000мс / 10) = 10.
Думаю зрозуміло, чим вище рівень інтерполяції, тим вище навантаження.
При втраті двох UDP, інтерполяція відпрацьовує неправильно. Тут рятує екстраполяція (cl_extrapolate). Вона працює тільки для даних з затримкою до 0,25 секунд, якщо більше, то і вона не рятує. Суть її, в передбаченні становища об'єктів на основі їх поведінки раніше. Тобто при відправці 1,2,3,4 кадрів, втрачені 3 і 4-ий (інтерполяція не допоможе тут), то для виведення даних по третьому положення розраховуються на основі першого і другого.

Що можна ще зробити, при наявності затримки, особливо коли це стосується натискань, пострілів, переміщень. Можна скористатися командою cl_predict. За замовчуванням всі події обробляються сервером. При включенні ційної, події обробляються спочатку на клієнті, але пріоритет залишається за першим. Іншими словами, якщо дані за передбаченням розійшлися, об'єкти будуть зміщені на позиції зазначені сервером. При цьому можливий стрибок зображення, для згладжування таких стрибків є команда cl_smooth і команда cl_smoothtime, що розтягує за часом таке згладжування.

Пророцтва це добре, але реально при високому пінг в CS GO допоможе серверна команда sv_unlag, а на клієнтах це cl_lc, cl_lw, cl_lb. Уявімо, що ви бачите ворога і цілитеся йому в область співчуття і чуттєвих насолод. При цьому у суперника пінг на багато нижче (20 мс), ви натискаєте постріл і практично відразу ж він ховається за кут. У цей момент ви упаковуєте команду і відправляєте її, вона йде допустимо 100 мс. При вимкненому sv_unlag, від суперника кадр дійде раніше і сервер вважатиме, що ви промахнулися. При включеній команді, він почне вираховувати час виконання за формулою: Час сервера - пінг клієнта - інтерполяція клієнта. В такому випадку потрапляння буде зараховано.
Пророцтва це добре, але реально при високому пінг в CS GO допоможе серверна команда sv_unlag, а на клієнтах це cl_lc, cl_lw, cl_lb

Команди впливають на пінг в CS GO

cl_rate - скільки байт може бути відправлено від клієнта до сервера. (Виходить)
rate - клієнт повідомляє, скільки байт він може прийняти за одну секунду (що входить)
rate і cl_rate при налаштуванні в ідеалі повинні збігатися. Також даний розмір потрібно пов'язати з розміром пакета (це ми розглянемо пізніше), щоб не було зайвої фрагментації. Фактично ці параметри відображають швидкість вашого тарифного плану у провайдера. Але, але, але швидкість і пінг до різних серваков завжди різна.
Отже, значення розраховуються за формулою:
rate = 125000 байт \ с = 125000 * 8 = 1 000 000 біт \ с = 1 000 000/1000 = 1000 Кбіт \ с = 1000/1000 = 1 Мбіт \ с
rate = 625000 байт \ с = 625000 * 8 = 5 000 000 біт \ с = 5 000 000/1000 = 5000 Кбіт \ с = 5000/1000 = 5 Мбіт \ с
rate = 1250000 байт \ с = 1250000 * 8 = 10 000 000 біт \ с = 10 000 000/1000 = 10000 Кбіт \ с = 10000/1000 = 10 Мбіт \ с

Якщо сумніваєтеся в правильності своїх розрахунків, скористайтеся будь-яким сервісом по переводу величин, яких в інтернеті повно
cl_cmdrate - скільки пакетів посилати від клієнта до сервера CS GO. Це інформація про вас. Досить встановити значення на 5 вище, ніж ваш фпс. Повинно бути пов'язане з командою cl_rate. Хоча гравці і посилають даних менше ніж отримують, але все ж рекомендується cl_cmdrate виставляти рівним cl_updaterate. А також для комфортної гри у всіх гравців cl_cmdrate повинен відповідати tickrate.
cl_cmdbackup - скільки разів дублювати кадр з командами на сервер. Чим вище значення, тим вище повинна бути пропускна здатність каналу. Використовується на нестабільних з'єднаннях. Необхідно цей параметр враховувати при налаштуванні cl_rate.
cl_updaterate - скільки пакетів в секунду клієнт може отримувати від сервера. Тут ми отримуємо інформацію про ігровому світі. При налаштуванні цього параметра враховуйте rate. Чим вище cl_updaterate, тим вище повинен бути і rate. Якщо виставите cl_updaterate = 100 і cl_rate = 200000, то кожен пакет CS GO буде містити 2000 байт (200000/100 = 2000), цього повинно вистачати з лишком. Хоч сервер і посилає більше даних ніж отримує від кожного з гравців, але все ж рекомендується cl_cmdrate виставляти рівним cl_updaterate. У даній команди є особливість, отримувати дані ви можете в залежності від того, який виставлений tickrate або через виставлених адміністратором команд sv_minupdaterate і sv_maxupdaterate. А також встановлених sv_minrate і sv_maxrate
cl_smoothtime - діапазон 0 до 1. Прибирає подразнюючу смикання моделей при прогнозі. Опис дивись вище.

Опис дивись вище

Що потрібно зробити, перш ніж зменшити пінг в CS GO?

tickrate
Насамперед дізнаємося його. Більшість серваков CS GO має значення рівне 66. Тобто кожні 1000мс \ 66 = 15 мс, він робить зріз ігрового світу, розраховує і змінює положення об'єктів і розсилає всім зміни. tickrate = 128 зустрічається рідше і вимагає пристойних ресурсів на стороні сервера, щоб 1000/128 = 7,8 мс робити обрахунки. Те що він робить розсилку кожні 15 мс, не означає що всі одновремено приймають зрізи кожні 15 мс. Прийом даних залежить ще від налаштувань клієнта і серверних змінних. А також tickrate прямо пов'язаний з FPS на самому сервері. Вище FPS tickrate бути не може.

rate
Архімегаважний параметр. Прям ваще ваще. Трохи не так виставили і все, отримаєте лаги, затримку, високий пінг в CS GO і іншу нечисть. Даним параметром ми повідомляємо, скільки байт ми готові прийняти від сервера за одну секунду. Тут головне не напартачив і не поставити нижче, реальної ширини каналу. Розрахунки як обчислити правильне значення наведені вище. А також потрібно звернути увагу на змінні sv_maxrate і sv_minrate.
sv_minrate, sv_maxrate - обмеження вхідної швидкості для клієнта (байт в секунду). Якщо ваш rate більше sv_maxrate, то настройки будуть братися з sv_maxrate. І навпаки, коли менше, то з sv_minrate. Відповідно потрібно знати завжди на якому сервері які параметри будуть використовуватися у вас насправді. Не будьте впевнені, що вони всюди і завжди такі, які ви вказали в конфігураціі.Перепроверяйте.

cl_updaterate
Скільки пакетів гравець може отримати від сервера.
Що буде прилітати при tickrate = 66 якщо ви виставите cl_updaterate = 100? Ви будете отримувати знімки ігрового світу 66 штук в секунду. Виставите cl_updaterate = 33? Будете отримувати 33 знімка в секунду. А також сервер не буде посилати знімків більше, ніж дозволить ваша швидкість (rate). Коли при tickrate = 100, ваш канал дозволяє прийняти тільки 90 кадрів, то решта 10 будуть втрачені, а це лаги. Тому що він вам довіряє і вважає, що ви чесно провели ревізію мережевий частини і правильно розрахували все настройки. На себе він зобов'язань по доставці цих 10 штук не бере. Rate можна встановити вище реальної швидкості, але ось з cl_updaterate така фішка не пройде. Також потрібно звернути увагу на команди виставлені адміністратором:
sv_maxupdaterate, sv_minupdaterate - обмеження по пакетам в секунду.
І треба пам'ятати, ви не можете отримати більше даних, ніж FPS самого сервера. Навіть якщо на ньому виставлено 100, але фпс при цьому 60.

cl_cmdrate
Скільки пакетів клієнт може послати сервера.
Тут також пряма залежність від фпс і cl_rare. Всі дані, після натискання клавіш і руху мишкою, потрапляють в клієнтські зрізи. Дані від нього йдуть не відразу, а можуть накопичуватися і тільки після цього вирушати. В ідеалі, щоб гра була якісною для всіх і відчувалося задоволення від неї, відправка повинна дорівнювати tickrate або більше. Поставите занижений cl_cmdrate, то в грі у вас візуально пінг стане менше і в вас складніше буде потрапити, але буде смикання картинки. Йде в зв'язці з з cl_rate. При налаштуванні не забувайте ще про такі команди:
sv_mincmdrate, sv_maxcmdrate - обмеження по пакетам від клієнта до сервера

Розмір пакета
Щоб знизити пінг в CS GO через фрагментації, потрібно врахувати розмір нефрагментовані частини.
Наприклад ми з'ясували, що в ОС пакет проходить нефрагментовані в розмірі 1400 байт (див. першу частину ). У себе в грі ми виставили rate = 196608, cl_rate = 196608, cl_cmdrate = 66, cl_updaterate = 66, cl_cmdbackup = 1
Разом: 196608/66 = 2979 байт в одному пакеті від CS GO. При відправці таких даних він буде фрагментований на три частини 1400 + 1400 + 179. З нашої точки зору 179 байтами можна спробувати пожертвувати заради зменшення пінгу і оптимізації ресурсів і знизити rate до 184000. У такому випадку пакет буде об'ємом 2788 байт, тобто замість трьох фрагментів, буде два (1400 + 1378 = 2788). Таким чином ми страхуємося від того, якщо мережеве обладнання або сервер, на етапі проходження мережевого трафіку, буде відпрацьовувати повільно, наш пінг (при двох фрагментах), виросте не так сильно (як при трьох). Але не забудьте, зміна rate (cl_rate) це дуже чутливий параметр. Чи не знижуйте його сильно і різко, можуть з'явитися лаги. І враховуйте cl_cmdrate, cl_updaterate, cl_cmdbackup. В ідеалі вашої швидкості з лишком повинно вистачати, щоб ви вільно грали цією командою.

Чи не стверджую що даний засіб з урахуванням фрагментації панацея, але раз ви взялися за налаштування мережевої частини в грі, підходите до проблеми комплексно і намагайтеся врахувати всі моменти, як на рівні додатку, так і на рівні ОС і мережевому рівні. Шукайте вузькі моменти і закладайте рішення в своїх настройках.

Додаткові команди допоможуть при налаштуванні пинга в CS GO:

  • cl_allowdownload - Вирішити скачування з сервера спреїв, текстур, моделей, карт, звуків і т.д.
  • cl_allowupload - Дозволити завантаження на сервер даних: особистого спрею і т.д.
  • cl_download_ingame - Команда відповідає за скачування чужих моделей і декалей під час гри.
  • cl_lc - Клієнт CS GO враховує пінг і задіє лагокомпенсацію. При sv_unlag = 0 даний пункт не працює
  • cl_lw - Клієнт CS GO враховує пінг і задіє лагокомпенсацію при використанні зброї. При sv_unlag = 0 даний пункт не працює
  • cl_lb - Клієнт CS GO враховує пінг і задіє лагокомпенсацію при використанні ефектів. При sv_unlag = 0 даний пункт не працює
  • сl_nopred - Відключити пророкування руху на клієнті
  • cl_nodelta - Відключити дельта стиснення. Тобто будуть передаватися всі дані, а не різницю між ними. Збільшує навантаження на мережу.
  • cl_resend - Час в секундах, через яке буде повторне підключення до серваке
  • cl_latency - Імітація затримки
  • pushlatency - Відображення на клієнтів не поточного становища гравця, а того місця де він буде, коли дані дійдуть до сервера. Виставляється як від'ємне значення.
  • fullinfo - інформація про користувача
  • fullserverinfo - Повна інформація про сервер
  • pingservers - Відображення пинга зі списку серверів
  • pingsv - Пінг сервера
  • serverinfo - Інформація про сервер
  • status - Список про всіх гравців і інформацію до кожного: номер, кількість фрагов, ім'я, кількість ФПС, пінг, відсоток втрат
  • cmdlist - Список всіх команд
  • cvarlist - Виводить список змінних
  • cl_shownet - Відображення мережевої інформації
  • net_graph - Графік відображення мережевої активності


Друзі, пінг в CS GO не лікується легко. Те, що ми зараз зробили, дозволить привести настройки гри до розумного відповідності. Об'єктивно, сильно знизити пінг вийде зміною сервака або провайдера, але якщо це не завжди можливо, то звичайно пробуйте приводити мережеву частину в порядок. Можливо комусь ця стаття полегшить життя в баталіях.

Подробиці Опубліковано: 18.01.2018 р

Що буде, коли один буде помилковим або загубиться чи затримається і не дійде до гравця?
Це не помітно, якщо всі стоять і нічого не роблять, але коли йде активне бій з великою кількістю переміщень і расприжок?
Що потрібно зробити, перш ніж зменшити пінг в CS GO?
Що буде прилітати при tickrate = 66 якщо ви виставите cl_updaterate = 100?
Виставите cl_updaterate = 33?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: