Русское сообщество по скриптингу

[CS 1.6] Что делать, если лагает?

Полезные материалы и статьи по играм на движках GoldSrc и Source (Half-Life, Counter-Strike 1.6, Half-Life 2, Counter-Strike: Source, Team Fortress 2, Left 4 Dead, Left 4 Dead 2 и т.д.).
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

[CS 1.6] Что делать, если лагает?

Сообщение Subb98 » 01 июн 2017, 22:38

Введение:
Эта статья описывает некоторые способы оптимизации клиента / операционной системы для Counter-Strike 1.6 под Windows. Сама статья была написана мной в 2015-ом году для собственного проекта. Некоторая информация (например, настройки рейтов в зависимости от скорости Интернет-соединения) была заимствована со сторонних источников. К сожалению, я не помню, с каких именно источников я брал эту информацию, тем более сайты копируют материал друг у друга и найти первоисточник достаточно сложно. Поэтому сегодня я не буду ссылаться ни на один ресурс, и просто поблагодарю сообщество за эту информацию.

1. Отключить лишние приложения
Первое, что необходимо сделать — отключить все приложения, которые могут потреблять трафик и/или системные ресурсы: различные менеджеры загрузок, торрент-клиенты, веб-браузеры, антивирусные приложения, Skype/ICQ клиенты, различные утилиты для очистки системы, которые могут работать в фоновом режиме и т.п.



2. Проверить нагрузку на процессор
После этого запускаем Диспетчер задач Windows (нажимаем и удерживаем последовательно клавиши Ctrl + Shift + Esc), открываем вкладку Быстродействие.



Проверяем, не перегружена ли шкала Загрузка ЦП. Если процент загрузки высок (80% и выше), то открываем вкладку Процессы, ищем в списке процессов тот, который нагружает систему больше всего (ориентируемся по показаниям столбца ЦП, чем больше число — тем выше нагрузка на систему от данного процесса).



Как только находим проблеммный процесс — выделяем его нажатием левой кнопкой мыши один раз и нажимаем кнопку Завершить процесс и ещё раз Завершить процесс для подтверждения действия. Диспетчер задач пока не закрываем.

3. Задать приоритет для Counter-Strike
Запускаем Counter-Strike. В Диспетчере задач находим процесс hl.exe, нажимаем по нему правой кнопкой мыши, выбираем пункт Приоритет, выбираем Высокий, нажимаем кнопку Изменить приоритет.



4. Настроить конфигурацию игры
Заходим в игру, открываем игровую консоль (русская клавиша Ё) и выполняем следующие команды:

Код: Выделить всё
cl_lc 1
cl_lw 1
fps_max 100
gl_vsync 0
net_graph 3



Затем, в зависимости от скорости Интернет-соединения, выполняем следующие команды:

Код: Выделить всё
rate 3500
cl_cmdrate 35
cl_updaterate 35
cl_resend 4
cl_cmdbackup 2

Код: Выделить всё
rate 15000
cl_cmdrate 75
cl_updaterate 75
cl_resend 5
cl_cmdbackup 2

Код: Выделить всё
rate 30000
cl_cmdrate 100
cl_updaterate 100
cl_resend 6
cl_cmdbackup 2

5. Проверить соединение с сервером в игре
Подключаемся к нашему серверу. Обращаем внимание на небольшую панель в правом нижнем углу, где отображаются такие параметры, как fps, ping, in, out, loss и choke.



Нас, прежде всего, интересуют значения fps, loss и choke. fps — это число кадров в секунду; loss — это число подготовленных и отправленных пакетов, которые до сервера не дошли; choke — это число подготовленных пакетов, которые отправлены не были в связи с ограничением трафика. fps не должен проседать ниже заданного значения (в нашем случае это 100), loss и choke должны равняться нулю (при идеальном соединении клиента с сервером).

Если вы видите, что fps падает, вероятнее всего, неполадка на вашем компьютере. В этом случае необходимо ещё раз проверить запущенные приложения, нагрузку на процессор, не будет лишним проверить компьютер на наличие вирусов, а также настроить видеокарту таким образом, чтобы обеспечить максимальную производительность.

Если вы наблюдаете значение loss выше 5-10 пакетов, то этого уже может быть достаточно, чтобы вы ощутили определённый дискомфорт при игре. Если вы используете Wi-Fi роутер для подключения к Интернету, то можете попробовать избавиться от loss подключением напрямую (при помощи патч-корда или через Высокоскоростное подключение). Не будет лишним также перезагрузить роутер по питанию (извлечь блок питания роутера из розетки на 10 секунд). К сожалению, если потеря пакетов происходит за пределами вашего оборудования, то вы на это повлиять никак не сможете. Вы можете лишь отследить, на каком именно участке маршрута происходят потери, но об этом чуть позже.

Если же вы наблюдаете не очень большое значение choke (в пределах 10-20 пакетов), то от него можно попробовать избавиться путём корректировки значений cl_cmdrate и cl_updaterate. При корректировке значений следует придерживаться соотношения 3 (cl_updaterate) : 4 (cl_cmdrate), то есть cl_updaterate должен составлять 3/4 от cl_cmdrate. Например, если ваш choke составляет 10 пакетов, то и значения рейтов следует уменьшить на 10 единиц, не забывая при этом о формуле 3 к 4. Например, cl_cmdrate = 100. Тогда новое значение cl_cmdrate = 100 - 10 = 90, следовательно, cl_updaterate = ( 90 / 4 ) * 3 = 67,5 (округляем до 68). Необходимо заметить, что в начале и в конце раунда choke всегда увеличивается вне зависимости от значений рейтов, поскольку в эти моменты происходит очистка карты от временных объектов, обновление HUD'а и т.д. В процессе игры нормальным считается значение choke до 5 пакетов.

6. Проверить соединение с сервером программой
Если же после выполнения всех вышеописанных действий вы убедились, что fps не проседает, а лаги сохраняются — следует произвести диагностирование соединения от вашего компьютера до сервера при помощи программы WinMTR. Скачать её вы можете по прямой ссылке: Вы должны зарегистрироваться, чтобы видеть ссылки. или архивом во вложении. Порядок работы с программой следующий:

  1. Запускаем WinMTR.exe
  2. В поле Host пишем IP-адрес сервера без порта (без порта, то есть, без :27015, например, 212.76.128.6)
  3. Нажимаем кнопку Start
  4. Тестируем не менее 10 минут
  5. Нажимаем кнопку Stop
  6. Нажимаем кнопку Export TEXT
  7. Сохраняем результат в новый текстовый документ (например, WinMTR.txt)
  8. Передаём документ администратору сервера на рассмотрение


Важное примечание: тестировать соединение при помощи WinMTR необходимо непосредственно в тот момент, когда наблюдаются лаги. Производить сбор информации в то время, когда соединение работает корректно, — не имеет смысла.

Результат проверки WinMTR.exe на VirusTotal

У вас нет необходимых прав для просмотра вложений в этом сообщении.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: [CS 1.6] Что делать, если лагает?

Сообщение Bos93 » 02 июн 2017, 00:34

Про соединение может еще норм, а про всякие оптимизации, мне кажется относительно 2017 года, не для контры это уже.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: [CS 1.6] Что делать, если лагает?

Сообщение KOTOKU » 08 дек 2017, 16:12

И все "знатоки" пошли уничтожать svchost.exe и особенно "Бездействие системы", которое по показателям аж 98 цп у меня выдает :-D

Я, кстати, сам в шоке, почему у меня контра лагает на моем то желези с 10+ озу, 2 гб видяха, а про процессор вообще молчу... Тут дело либо в рейтах, либо в говносборке.
Качаем чистую без всяких приблуд и не паримся.
Аватара пользователя
KOTOKU
 
Сообщения: 766
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 10 раз.
Поблагодарили: 117 раз.

Re: [CS 1.6] Что делать, если лагает?

Сообщение Subb98 » 08 дек 2017, 16:31

KOTOKU писал(а):Качаем чистую без всяких приблуд и не паримся.

Ты просто красавчик, где ж ты раньше-то был, когда некоторые мои игроки жаловались на непонятные лаги, сидя с чистой сборки. :crazy:
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: [CS 1.6] Что делать, если лагает?

Сообщение KOTOKU » 08 дек 2017, 16:37

В их случаях проблема в железе скорее всего, а в моем случае - плохая сборка или рейты.
Мы щас так то об игре 2000 года? Нафига ей выдавать высокий приоритет если она и так ничего не хавает и работает в графическом плане на OpenGL
Аватара пользователя
KOTOKU
 
Сообщения: 766
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 10 раз.
Поблагодарили: 117 раз.

Re: [CS 1.6] Что делать, если лагает?

Сообщение артист666 » 08 дек 2017, 18:07

У меня лагает, даже видео когда онлайн смотрю - изображение дергается.
Но мне это не мешает. :-D
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: [CS 1.6] Что делать, если лагает?

Сообщение артист666 » 08 дек 2017, 21:16

Фпс 30.0 - 32.0 ни меньше, ни больше. :ROFL:
Это хоть fps_max 1, хоть 100, хоть 1000.

Добавлено спустя 4 минуты 37 секунд:
Понял в чём дело.
Стоял видео режим - D3D.
Поставил OpenGL - fps 100.0
И не лагает. :(

Поставил 1000. 250 - 390 показывает.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: [CS 1.6] Что делать, если лагает?

Сообщение Subb98 » 09 дек 2017, 15:55

«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP


Вернуться в Статьи по играм на движках GoldSrc/Source

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron