1.Почему?
Начнем с самого простого. Какой у вас ПК и Интернет? Если вы играете на слабенькой машине с диалапом, то вам придется потрудиться на славу. Другое же дело, если у вас дорогой компьютер с выделенной линией. Но, даже имея самую лучшую конфигурацию «железа» вы никогда не добьетесь хорошего результата, если не будете знать самого элементарного. К примеру, приложения в полноэкранном режиме по умолчанию запускаются на 60Hz, что дает возможность быстрее испортить ваши глазки. Или представьте себе ситуацию. Вы совершаете головокружительный прыжок с какого-нибудь ящика в надежде красиво положить противника из дигла и заслужить славу читера. И в самый пикантный момент игра у вас как бы зависает, а винт начинает бешено крутиться и издавать жуткие звуки. После чего вы приземляетесь и с удивлением узнаете, что вас уже убили. Причина такого недоумения является неправильно настроенная машина. 2. Оптимизация Windows.
Здесь можно рассказать достаточно много. Постараюсь выложить самое основное:
• В Интернете предостаточно программ, которые помогут оптимизировать вашу ОС, а также коннект. Скачайте любую, к примеру, XPTweaker или Auslogic Bootspeed.
• Рекомендую полностью отключить файл подкачки, если оперативной памяти у вас 768 Мб и более.
• Удалите prefetch. Как? Создаем текстовый документ. Называем его: deleteprefetch
Открываем этот файл и пишем вот эту строчку: del C:\Windows\Prefetch\*.* /Q
Сохраняем этот файл с расширением .bat Запускаем этот файл.
• Следующий твик. Пуск\выполнить\пишем: regedit
Открываем вот так: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
DisablePagingExecutive заменяем на 1
LargeSystemCache заменяем на 1
Перезагружаем компьютер
• Рекомендую установить самые новые драйвера для видеокарты.
• Выполните дефрагментацию жесткого диска.
3. Твики графики.
Это персональные предпочтения, но они отлично себя зарекомендовали. Правый клик на десктопе, Properties, Settings, Advanced, закладка Video Card. Закладка Performance/Quality
-Image Setting: Preformance
-Antialiasing: Off
-Anisotropic Filtering: Off
-Texture Sharpening: Off
Перевод:
- Анизотропная синхронизация - Выключить
- Вертикальная синхронизация - Выключить
- Производительность - Поставить на Высокую производительность
Или можете просто выставить все пункты на скорость а не на качество, ну это если уж совсем плохо.
Если хотим знать больше идем сюда
Ожидание вертикальной синхронизации -Vsync: ON !!!
Почему?
А теперь непосредственно к этой проблеме:
Vsync: яркий пример крупнейшего недопонимания в истории графических настроек. Вот как Vsync работает: у вашего монитора частота обновления экрана определяется для каждого разрешения по-разному. Поясню на примере: мой монитор тянет 75Hz на максимально доступном разрешении 1152x864. Это значит, что мой монитор показывает только 75 кадров в секунду при данном разрешении. Восторгаетесь своими 150 fps в Q3? Циферка на экране конечно же показывает именно столько, но в реальности весь эффект полностью сводится на «нет» вашей частотой обновления экрана. Все, что выше частоты обновления, вызывает эффект, называемый tearing или разрыв изображения. Tearing выражается в волнообразном набегании кадров - бегущих по экрану полосах. Vsync же устанавливает ваш максимальный fps равным текущей частоте обновления экрана, что позволяет полностью убрать tearing и добиться значительного улучшения картинки. Мораль сей басни такова - используйте Vsync в игре. Картинка намного мягче, более плавная, грубо говоря, разница есть. Но если же вы просто замеряете FPS, чтобы оценить производительность - отключите Vsync.
4. Настройка коннекта.
Пинг не случайно занимает первое место, поскольку именно при большом пинге игра невозможна вообще. Для играющего по модему пинг он как святой... на него молятся, ставят свечи, пытаются понизить любыми способами. Но эти способы не всегда работают (непонятно почему).
На самом же деле пинг - время между отправкой пакета и приемом ответного (если такой есть:) И даже козе понятно: чем ниже - тем лучше! Но на деле не все так просто. Пинг по своей природе делится на нормальный и анормальный. Рассмотрим каждый из них подробно.
Нормальный пинг - по-простому, это задержка сигнала на всех участках линии, при его "путешествии" от пользователя до сервера плюс то же самое, но назад. Что может быть проще? Но, есть одно "но" - это при отправке одного пакета. А когда их посылается несколько и подряд (т.е. ответ на первый ещё не пришел, а второй уже послан и так со следующим и т.д.), то пинг увеличивается на 40-60% (а иногда и на 100%) от начального. В итоге: минимальный пинг 150 мс, максимальный 250 мс. Вот, именно, максимальный и будет в игре (или даже больше). Конечно, тут большую роль играет качество телефонной линии.
Анормальный пинг - результат несоответствия физических возможностей линии и сетевых настроек игры. Рассмотрим ситуацию: коннект 28.8 кбит, игрок выбегает на толпу противников, его "мясят" и в итоге - фраг с пингом 4096 висит в воздухе или танцует брейк-данс. Тут имеет место всеми любимого FlushEntityPacket - (переполнение) пакеты не могут дойти до пользователя в указанный срок и в нужном порядке. Надо либо увеличить пропускную способность линии, либо уменьшить число пакетов (согласований). Тут гадать нечего: будем уменьшать количество пакетов (т.к. иногда больше 33,6 из модема выжать просто невозможно).
Команды и результат
Собственно, для оптимизации процесса согласования под конкретную машину и конкретное модемное соединение, нужно знать основные команды для оптимизации сетевой игры. Эти команды помогут всегда (или почти :). Но для конкретной ситуации - конкретная конфигурация.
cl_updaterate ## - количество пакетов (согласований), посланых от сервера - клиенту за еденицу времени (секунду). Эта команда напрямую связана со скоростью соединения и имея 28.8 кбод нет смысла ставить значение больше 15 (лучше 10). Потому что поделить 2.5 кб/сек на 15 и получим небольшой размер "пакета" данных на одно согласование (маловато будет). Так что для 28.8 ставьте cl_updaterate "10" и не больше.
При соединении 28.8 Кб, cl_updaterate (1/сек) от 10* до 15
При соединении 33.6 Кб, cl_updaterate (1/сек) от 15* до 20
При соединении 48.8 Кб и более, cl_updaterate (1/сек) от 20* и более
* - Оптимальное значение
cl_cmdrate ## - количество согласований в секунду, посланных от клиента - серверу. Тут дело такое: если Ты хочешь общаться по микрофону и хочешь, чтобы другие игроки слышали твой голос, а не "дизельный выхлоп" или хуже, то ставь значение 30. Но как известно единовременно исходящий и входящий потоки они:как два медведя в одной берлоге, взаимоуменьшают друг друга. Так что если общаться голосом не предвидится, то ставь от 10 до 20. В принципе для 28.8 cl_updaterate "10" и cl_cmdrate "30" вполне приемлемо. На каждые три согласования со стороны клиента - одно со стороны сервера. Сойдет!
rate #### - Поток (в байтах) со стороны сервера. Вообще эта величина должна быть ниже скорости модемного соединения примерно на 20-30% (потому что исходящий поток тоже существует и, заняв все 100% пропускной способности линии, Вы себя обречете).
При соединении 28.8 Кб, rate (бит/сек) от 2000 до 2500
При соединении 28.8 Кб, rate (бит/сек) от 2000 до 2500
При соединении 33.6 Кб, rate (бит/сек) от 2500 до 3000
При соединении 48.8 Кб и более, rate (бит/сек) от 3000 и выше
Если задать значение больше допустимого - лови FlushEntityPacket, сервер закидает тебя "пакетами" по твоему же требованию в удобный для него момент. Учтите, что для большого числа игроков (16-20) скорость соединения играет большую роль. Не рекомендуется ставить максимальное значение, если пакеты часто не доходят: на их "перепосылку" надо иметь "резерв".
cl_latency -### - Компенсация лагов. Величина, необходимая для хоть какого-то скрашивания серых будней "модемного" игрока. Задаётся как 50% или 75% от текущего пинга с противоположным знаком (100% имеет эффект, но не стОит столько задавать). Например для пинга 200 подойдет cl_latency "-150". Эта величина ОЧЕНЬ важна. Но в КС1.6 она не используется.
cl_rate #### - Тоже, что и rate, но со стороны клиента. Величина не столь важная, т.к. клиент никогда не сможет использовать её на 100% (только когда происходит закачка "лого" на сервер). По умолчанию стоит cl_rate "9999", так и оставим.
fps_max ### - Как уже видно из названия - максимальный FPS в игре. Обычно ставят 100. Это зависит от "мощности" машины. В принципе от 60 до 100 - вполне приемлемое качество. НО, без следующей переменной вы не увидите эти FPS вообще.
fps_modem ### - А вот это то, что надо. Приравниваем fps_modem к fps_max и всё. Ходит мнение, что fps_modem должна ровняться cl_updaterate. Представляете "дурдом" в 20 FPS? Я из принципа fps_max "100" и fps_modem "100" поставлю. К тому же без высокого значения fps_modem нельзя проделать кое-какие "грязные" трюки. Но у этих переменных есть и МИНУСЫ. "Лагает" сильнее, т.е. чаще при высоком fps_modem, чем при низком. Так что ставьте от 60 до 100.
В принципе - это всё, что нужно для оптимизации игры по модему. Добавлю, что при сетевой игре происходит непрерывное согласование сервера и клиента. Их пакеты взаимосвязаны и если пакеты сервера не дошли до клиента, то и пакеты клиента не будут восприниматься сервером немедленно, а встанут в очередь. Ведь пропустить ничего нельзя.
Напоследок приведу стандартный "конфиг" для скорости соединения 33.6 кбит/сек.
cl_updaterate "15"
cl_cmdrate "30"
rate "2500"
fps_max "60"
fps_modem "60"
Если Интернет у вас человеческий, то необходимо прописать следующее:
cl_updaterate "101"
cl_cmdrate "101"
rate "25000-30000"
fps_max "101"
5. Настройка Counter Strike.
Меняем стандрартные 60 герц при которых мы играем на 100 (ну или сколько у вас там держит монитор). Нельзя забывать о том, на каком разрешении мы играем.
В ярлыке CS дописываем вот это: -freq 100. Теперь играть вы будете при 100 герцах и стабильных 100 fps.
P.S. Нельзя забывать еще о том, на каком сервере мы играем. Если нагрузка на сервер большая, то тут уже ничего не поделаешь.
Были использованы материалы:
http://cs-volia.net/forum/
http://c-s.net.ua/
http://faq.cs2.ru/