Cs 1

Як налаштувати CS для гри по модему?

Однією з найважливіших і приємних особливостей мережевого коду Half-Life є незавісімоть швидкості гри (читай FPS'ов, відрендерених кадрів в секунду) від швидкості зв'язку. Раніше машина-клієнт повинна була підтверджувати кожен новий промальовані кадр у сервера. Виходило, що гра по модему гальмувала навіть на сильних комп'ютерах. Навіть людям, хто сидів на товстих каналах доводилося туго, бо не виходило часто досягти хорошої якості зв'язку укупі з хорошими 72 FPS'амі. Мабуть, пограммерам з Valve здорово пропердолілі на роботі і ті швиденько сваялі новий патч. Відтепер кількість FPS'ов і швидкість зв'язку повністю не залежать один від одного! Тепер навіть якщо ви "модемщік", то 100 FPS'ов вам запросто доступно, тягнув би комп.

У Valve так само попрацювали і над "компенсацією лагов" при стрільбі, зробивши гру по модему майже такою ж гладкою, як гру на LAN'е. Обрахунок результатів стрільби повністю бере на себе сервер, що означає повну безпеку! (Зроблю деякі пояснення від себе: обрахування стрільби та іншого на стороні клієнта дає великий простір для чітера, тому що зламати мережевий код стає дуже просто. Пам'ятайте кілька років тому ситуацію з Diablo - скільки було читов? Ніхто чесно не грав на www. battle.net, тому що всі герої і їх пересування обраховувались на компах гравців. З виходом старкрафта і Diablo2 ситуація змінилася.) Плюс до всього Valve значно знизила трафік при мережевій грі, зробивши код значно ефективніше. Словом, модемщікі тепер можуть расчехлить свої кольти з калашами і грати в замісах з меншим ніж раніше лагами. А найголовніше - тепер до мережевого коду доступна величезна безліч налаштувань.

Основні принципи роботи

Передбачаю запитання - як це тамтешнім програмістам вдалося компенсувати лаги, майже вирівнявши Ланщиков і модемщіков? Рішення, як все геніальне, просто і елегантно: уявіть собі палючого в противника "модемщіка" з пінгом 200. Сервер відстежує постріл і засікає пінг стріляючого гравця (припустимо, 200 мілісекунд), потім сервер перевіряє де був його противник 200 мілісекунд назад і якщо він в той час дійсно підпав під кулю, то постріл зараховується як потрапляння, інакше - мимо.

Є, однак, і свої недоліки. Перший і найбільш помітний - це ефект облітають кути куль, коли гравець LAN вже забіг за ріг, а для гравця по модему - ще немає і другий вбив першого. Зрозуміло, що існує деяка затримка поки сервер обробить сответсвующіе пакети і зрозуміє що насправді вас вже підстрелили, перш ніж ви зникли за рогом. Так що правосуддя вас все одно наздожене;) Іноді це дратує, але це краще, ніж було раніше. Інший недолік полягає в тому, що коли ви стреляте по кому або, то реальні попадання проявляються трохи пізніше ніж якби ви грали по локальній сітці. Якщо ворог вбив вас перш ніж сервер встиг обрахувати ваші постріли, то ви програєте в будь-якому випадку, незалежно від того потрапили ви по ворогу чи ні (тобто фактично незалежно від того, убили б ви його до того, як він встиг убити вас ). У цьому сенсі люди мають менший пінг все ще мають деякі переваги. Чи варті ці недоліки зазначених вище достоїнств - вирішувати вам.

Отже, Ви - володар звичайного Dial-Up модему, який бажає пограти на сервері якого-небудь Інтернет провайдера. Приступимо.

Рада 1. Операційна система.

Порада 2. Канал зв'язку.

Не зайве буде також нагадати Вам, що крім Half-Life і Cheating-Death, більше під час гри не повинно бути запущено нічого. Більшість сучасних програм вміють працювати з Інтернетом і будуть забивати Вам канал різним мотлохом. Я думаю, Ви не зрадієте, якщо в самий розпал битви ICQ відключить Вас від гри і повідомить Вам, що прийшло нове повідомлення.

Ще однією перешкодою на шляху пакетів в мережу може служити модуль стиснення даних. Як не дивно, але на це теж витрачаються дорогоцінні мілісекунди, так що стиснення даних і заголовків IP має бути відключено.

Порада 3. Двигун Half-Life.

Припустимо, що Ви скористалися порадами 1 і 2, але грати Ви все одно не можете. Перейдемо до налаштування тієї частини Half-Life, яка відповідає за передачу інформації між Вами і ігровим сервером. Відразу скажемо, що швидше за все з першого разу налаштувати движок так, щоб можна було гратися Вам не вдасться. Для кожної лінії тут потрібні свої настройки.

Зменшення завантаженості каналу:

Як вже говорилося, під час гри, крім Cheating Death і самого CS не повинно бути запущено більше нічого. Багато програм вміють працювати з інтернетом і будуть вам зайвий раз під час гри забивати канал. Сам Counter-Strike теж вміє працювати з інтернетом не гірше за інших. Ось, ніж CS вміє зіпсувати до неможливості вам гру:

cl_allowupload 0-1 Ця команда забороняє (0) або дозволяє (1) закачування з Вашого боку на сервер будь-якого сміття, типу балок гравців. Якщо cl_allowupload = 0, то Ви позбавите інших гравців від сумнівного задоволення споглядати вашу мазанину, а собі не будете забивати канал.
cl_allowdownload 0-1 Дозволяє або забороняє скачування з сервера логосов (мазні інших гравців) і нових карт (якщо карти, крутиться на серваке, у вас немає і cl_allowdownload = 0, то вас просто викине з нього). Модемщікам я б порадив відрубати, тобто проставити cl_allowdownload в 0. Завантаження логосов затягує завантаження, а нову карту швидше злити через web в заархівує і потім самому розпакувати.
cl_download_ingame 0-1 Значення 0 забороняє скачування вами нових логосов гравців, які приєдналися на сервер в момент гри. Для модемщіков настійно рекомендую заборонити (cl_download_ingame 0), інакше попруть лаги. Причому, у включеному стані ця хрень продовжить скачування всякого сміття навіть в промежтках між завантаженнями серваке карт. За замовчуванням cl_download_ingame включено.

Налаштування ролей клієнта і сервера в грі:

Всі перераховані тут змінні можна прописати в конфігу. # 92; HalfLife # 92; cstrike # 92; config.cfg, хоча їх значення можуть бути змінені і в консолі.

cl_lc 0-1 Ця змінна говорить серверу, чи бажаєте Ви чи ні використовувати компенсацію лага. Якщо компенсація відверто дістала вас своїми глюками, можете вирубати її, поставивши нуль. Тоді грайте відповідно до вашим реальним пінгом, але врахуйте, що якщо пинга вам не вистачить, то ви отримаєте покрокову стратегію, а не гру в реальному часі. За замовчуванням cl_lc = 1, тобто компенсація лагів - включена.
cl_lw 0-1 Ця змінна відповідає за можливість програвання звуків і анімації з боку клієнта. Якщо вона включена (cl_lw 1), то все звуки і анімація програватимуться безпосередньо на вашій машині, наприклад, в момент активної стрілянини, не чекаючи відповідного підтвердження від сервера. У такому підході є свої плюси і мінуси.

Якщо опція вимкнена (cl_lw 0), то момент, коли ви побачите стріляє стовбур, залежить від вашого пінгу, що так само означає що ви побачите палюче знаряддя одночасно з влученнями вилітають з нього куль (і ніяких "обрулівающіх кути" снарядів). Проблема в тому, що якщо включена компенсація лага, то ви не побачите характерних "фонтанчиків" від куль, часто допомагають підкоригувати приціл. Це може обернутися проти вас, особливо з автоматом, що має сильний розкид при стрільбі, наприклад, AK-47.

У разі, коли cl_lw включена (cl_lw 1), ваша машина повинна сама генерувати випадковий розкид і неточність при стрільбі. В результаті місця попадання куль, які ви будете бачити, можуть не збігатися з тими, що відбуваються на сервері, який випадковим чином генерує свою неточність для вашого зброї. Коротше, ваша тачка і сервер будуть генерувати траєкторії куль трохи по-різному. В результаті ви побачите те, що нарахував ваш комп'ютер, а насправді бдет відбуватися те, що нарахував сервер. Коли йде сильний розкид куль (наприклад, довга черга з калаша), то ймовірність таких розбіжностей підвищується.

Вобщем рада: якщо ви користуєтеся компенсацією лага, то включайте (cl_lw 1), а якщо не користуєтеся - вимикайте (cl_lw 0). За замовчуванням включено.
cl_lb 0-1 Включає попередження (обрахований вами, а не сервером) показ крові (якщо на сервері це не заборонено). Відключення дозволяє вам точно побачити потрапили ви в противника по-справжньому. За умочанію вимкнено (cl_lb 0).

Встановлення каналів і кількості інформації, що передається:

cl_updaterate X Ця змінна контролює число оновлень, запитуваних у сервера (позиції гравців, місце розташування трупів і дірок від куль) протягом секунди. За умочанію значення 20. Сидячи на виділенка значення можна ставити 30-40, проте, коли сервер повний, краще встановити cl_updaterate 25 і менше. Модемщікам показано значення 20, проте на швидкості 33600 на повному серваке краще знизити cl_updaterate до 15. При грі по локалке сміливо ставте cl_updaterate 50. "Ривки" при русі гравця важко помітити, якщо його cl_updaterate вище 13. Єдина ситуація, коли низькі значення cl_updaterate стають відчутними, коли все навколо рухається дуже швидко. Наприклад, ракета летить вам в диню ...
cl_cmdrate X Ця штучка подібна попередньої cl_updaterate, за тим лише винятком, що вона контролює число оновлень надсилаються на сервер протягом секунди. Таким чином поділ потоків дозволяє вам контролювати їх незалежно один від Дурга, в залежності від того, який у вас канал зв'язку в кожну сторону. (Вихідний і вхідний трафік може проходити з різною швидкістю, наприклад, на модемах з протоколом V.90 вхідний трафік прокачується битсрее, зі швидкостями до 56 Кбіт / сек, а вихідний обмежений швидкістю з'єднання 33.6 кбіт / сек. Це не єдиний приклад, подібна асиметричність поширена досить широко. - прим. перекл.). За замовчуванням має значення 30.

У зв'язку з тим, що обсяг вихідного від вас трафіку сильно не змінюється, на відміну від обсягу вхідного (особливо на повних серверах), то модемщікі можуть залишити cl_cmdrate рівним 18-30. Користувачі з більш "товстим" каналом, можуть встановити її значення в 40-50. Для гри по локалке підійде 50.
rate X Вказує, який обсяг інформації ви зможете прокачати через ваше з'єднання з сервером в секунду за будь-наперед завдань час. Починаючи з версії HL 1.1.0.0. ця штука практично не працює, тому обсяг входять даних рекомендується обмежувати змінними. і
cl_rate X Вказує вашій машині, який обсяг даних, їй дозволено передати на сервер в секунду.

Тип модему rate cl_rate cl_updaterate cl_cmdrate
Модем 14.4 Купи-ка, дружок, новий момед
Модем 28.8 1800-2500 1000-1300 10-15 12-18
Модем 33.6 2500-2900 1200-1800 12-18 18-25
Модем 56k, Одноканальний ISDN 2900-3600 1500-1800 25 30
Двоканальний ISDN 3500-7200 3500 30 40
Кабельний модем, xDSL 3500-7500 30 40
LAN (10/100 Mbps) 7500 і вище 50-100

На жаль, рідко яке з'єднання стабільно настільки, що має однаковий обсяг прокачування за однаковий час. А це означає те, що для нірвани вам доведеться регулювати значення rate прямо в грі :) За допомогою цієї настройки ви отримаєте гарне уявлення про характер ваших з'єднань. Не бійтеся експериментувати, якщо качетсва вашої зв'язку не вписується в межі, наведені в таблиці.

Щоб відшукати потрібні вам значення, товуйте в грі NetGraph (див. Нижче). Якщо значення rate у вас занадто задерта, то виникнуть характерні скачки пінгу і помилки втрати пакетів. Якщо занадто низька, то пакети теж можуть загубитися - просто не дійдуть все через rate-обмежень. Але взагалі-то краще помилитися, злегка занизивши rate, ніж занадто його задерши. Так що будьте уважні.

Отримання статистики про завантаженість каналу:

net_graph 1-3 Виведення графіка стану з'єднання і якості прийому / передачі пакетів.
net_graphwidth 220 Розмір графіка стану з'єднання.
net_graphpos 0-2 Позиція графіка стану з'єднання на екрані. 0 - лівий нижній кут, 1 - правий нижній кут, 2 - по центрувнізу.