Вернуться Форум Bashtel.RU > Игры > Counter-Strike и Half-Life
Counter-Strike и Half-Life Игра фанатов киберспорта

 
 
Опции темы Опции просмотра

Оптимизация Half-Life (Counter-Strike)
Старый 11.07.2007, 12:48   #1
Мимо проходил
 
Аватар для Shadow :)
 
Shadow :) вне форума
Регистрация: 11.07.2007
Сообщений: 12
По умолчанию Оптимизация Half-Life (Counter-Strike)

Вступление
Начиная с версии патча 1.0.0.1, Half-Life содержит заново переписанный сетевой код и множество изменений в движке игры, принесших с собой кучу возможнстей по дополнительной настройке.

Настройка игры с командной строки
При запуске Half-Life с командной строки можно указать несколько полезных ключиков. Проще всего это можно сделать, воспользовавшись свойствами ярлыка: кликнув на нем правой кнопкой мыши и выбрав в контекстном (выпадающем) меню пункт "свойства", вы вызовете такое окошко:



-console
Этот ключик должен быть прописан у всех. Помимо отключения никому не нужной заставки, он позволит вам вызывать консоль из главного меню и непосредственно при игре с помощью кнопки ~.

-32bpp
Этот ключик разрешает использовать в игре 32-х битный цвет. Если у вас четкая видеокарта (и при этом вы используете для игры высокие разрешения), то это должно зарузить ее по самые помидоры. Помните, что 32-х битный цвет активно хавает мощности вашего компьютера, намного больше чем 16-ти битный, поэтому если вы не хотите в конечном счете получить на экране тормозню, то лучше не прописывайте его. Мораль такая - в разрешениях выше 1024х768 играйте только в 16 битах. К владельцам Geforce3 это не относится.

-numericping
Этот ключик позволит вам увидеть реальный пинг (в цифрах) к каждому серверу из списка, вместо этих идиотских точечек в соответсвующем меню "Internet games" или "Lan games".

-nojoy
Отрубает джойстик, ясен пень. Не все только знают, что поддержка джойстика тоже жрет оперативную памать, так что если с джойстик в игре вам не нужен, а памяти не очень много - смело прописывайте этот ключ.
-noipx
Отрубает поддержку протокола IPX и, тем самым, освобождает еще немного памяти.

-heapsize XXXXX
Вместо XXXXX нужно указать колличество памяти (в килобайтах), которое вы отведете для Half-Life. В то время как многие рекомендуют указывать эти размеры примерно от 75 до 100% от всего объема оперативки, я заметил, что Half-Life лучше рапоряжается памятью по собственному усмотрению. Короче, поэкспериментируйте, но если не врубаетесь - не трогайте.

-game XXXXX
Этот ключик служит для запуска вместо обычного Half-Life какого-либо его мода. XXXXX - это имя дериктории, где лежит мод. Например, для запуска Counter-Strike вместо XXXXX напишите cstrike.

+XXXXX
Этот ключик позволяет запускать консольные команды сразу после загрузки игры. Четкая тема, сами представьте сколько можно туда запихать полезностей. Например, прописав +connect 212.122.1.7, игра начнет сразу долбиться на приморский сервак. Подобным образом можно накатать несколько ярлыков, указав в них разные ip-адреса ваших любимых серверов. Еще удобно прописывать использование вашего внешнего индивидуального конфига: +exec myconfig.cfg. Весьма полезный ключик, как видите…

Особенности нового сетевого кода
Одним из самых важных и приятных изменений в новом сетевом коде является независимоть скорости игры (читай FPS'ов, отрендеренных кадров в секунду) от скорости связи. Раньше машина-клиент должна была подтверждать каждый новый прорисованный кадр у сервера. Получалось, что игра по модему тормозила даже на сильных компьютерах. Даже людям сидящим на толстых каналах приходилось туго, ибо не получалось зачастую достичь хорошего качества связи вкупе с хорошими 72 FPS'ами. Видать, пограммерам из Valve здорово пропердолили на работе и те быстренько (хм…) сваяли новый патч. Отныне кол-во FPS'ов и скорость связи полностью не зависят друг от друга! Фанфары. Теперь даже если вы "модемщик", то 100 FPS'ов вам запросто доступно, тянул бы комп.
Хе-хе, это еще не все! В Valve так же поработали и над "компенсацией лагов" при стрельбе, сделав игру по модему почти такой же гладкой, как игру на LAN'е. Эффект очень похож на то, как если бы все действия игроков обсчитывались на стороне клиента с подачи сервера, однако их обсчет полностью берет на себя сервер, что означает полную безопасность! (Сделаю некоторые пояснения от себя: обсчет стрельбы и прочего на стороне клиента дает большой простор для читеров, т.к. взломать сетевой код становится очень просто. Помните несколько лет назад ситуацию с Diablo - сколько было читов? Никто честно не играл на batttle.net, потому что все герои и их передвижения обсчитывались на компах игроков. С выходом старкрафта и Diablo2 ситуация поменялась. - прим. перев.)
Плюс ко всему Valve значительно снизила траффик при сетевой игре, сделав код значительно эффективней. Словом, модемщики теперь могут расчехлить свои кольты с калашами и играть в замесах с меньшим чем раньше лагами. А самое главное - теперь к сетевому коду доступно огромное множество настроек.
Основные принципы работы
Предвижу вопросы - как это тамошним программерам удалось компенсировать лаги, почти уравняв ЛАНщиков и модемщиков? Решение, как все гениальное, просто и элегантно: представьте себе палящего в противника "модемщика" с пингом 200. Сервер отслеживает выстрел и засекает пинг стреляющего игрока (допустим, 200 миллисекунд), затем сервер проверяет где был его противник 200 миллисекунд назад и если он в то время действительно подпал под пулю, то выстрел засчитывается как попадание, иначе - мимо.
Есть, однако, и свои недостатки. Первый и наиболее заметный - это эффект облетающих углы пуль. Понятно, что существует некоторая задержка пока сервер обработает сответсвующие пакеты и поймет что на самом деле вас уже подстрелили, прежде чем вы скрылись за углом. Так что правосудие вас все равно настигнет Иногда это раздражает, но это лучше, чем было раньше. Другой недостаток заключается в том, что когда вы стреляте по кому либо, то реальные попадания проявляются немного позже чем если бы вы играли по локальной сетке. Если враг убил вас прежде чем сервер успел обсчитать ваши выстрелы, то вы проигрываете в любом случае, независимо от того попали вы по врагу или нет (т.е. фактически независимо от того, убили бы вы его до того, как он успел убить вас). В этом смысле люди имеющие меньший пинг все еще обладают некоторыми преимуществами. Стоят ли эти недостатки указанных выше достоинств - решать вам.

Сетевые настройки на сервере

sv_unlag X
Эта переменная отвечает за включение/выключение технологии компенсации лагов. Оставьте ее включенной, это поможет нормально играть большинству людей. (см. ниже про клиентские настройки). 1 - включить компенсацию лага (по умолчанию), 0 - выключить.

sv_maxunlag X.XX
Эта переменная отвечает за максимальное время, в течение которого игра пытается скомпенсировать чей-либо пинг. Если поставить значение 1, то это равнозначно 1000 миллисекундам или одной полной секунде. Если поставть 0.4, то это будет соответствовать 400 миллисекундам. Не стоит выставлять значение больше чем 0.55, потому что когда какое-нибудь чудо с большим пингом станет попадать по кому-нибудь, то проявляться это будет настолько позже, что динамика игры спадет на нет. Однако, я не рекомендую задавать значения меньше чем 0.35. По умочанию ставится 0.5, т.е. 500 миллисекунд.

sv_unlagsamples X
Эта пременная определяет, сколько из посланных клиентом пакетов будут обработаны, чтобы найти среднее значение пинга игрока, которое будет скомпенсировано. Значение по улочанию - единица, т.е. для определения пинга игрока обрабатывается только один, самый свежий пакет. При значении 2 пинг усредняется исходя из значений двух последних принятых сервером пакетов и т.д. Лучше всего ставить 1 или 2. По умочанию выставляется 1.

Настройки клиента

(раздел посвящен настройке вашего конфига config.cfg, хотя значения переменных могут быть изменены и в консоли)
Что ж, сейчас, когда вы уже знаете, как работает сервер компенсируя ваш пинг, можете для себя решить - включать или выключать эту фичу. Благо Valve дает зеленый свет любителям покопаться в настройках конфига.

cl_lc X - эта строчка говорит серверу, желаете вы или нет использовать компенсацию лага. Если компенсация откровенно достала вас своими глюками, можете вырубить ее, поставив вместо икса - ноль. Тогда играйте в соответствии с вашим реальным пингом. По умолчанию значение 1, т.е. включено.

cl_lw X - эта переменная отвечает за возможность проигрывания звуков и анимации со стороны клиента. Если она включена (cl_lw 1), то все звуки и анимация будут проигрываться непосредственно на вашей машине, например, в момент активной пальбы, не дожидаясь соответствующего подтверждения от сервера. В таком подходе есть свои плюсы и минусы.

Если опция выключена (cl_lw 0), то момент, когда вы увидете стреляющий ствол, зависит от вашего пинга, что так же означает что вы увидите палящее орудие одновременно с попаданиями вылетающими из него пуль (и никаких "обруливающих углы" снарядов). Проблема в том, что если включена компенсация лага, то вы не увидите характерных "фонтанчиков" от пуль, часто помогающих подкорректировать прицел. Это может обернуться против вас, особенно с автоматом, имеющем сильный разброс при стрельбе, например, AK-47.
В случае, когда cl_lw включена (cl_lw 1), ваша машина должна сама генерировать случайный разброс и неточность при стрельбе. В результате места попадания пуль, которые вы будете видеть, могут не совпадать с теми, что происходят на сервере, который случайным образом генерирует свою неточность для вашего оружия. Короче, ваша тачка и сервер будут генерировать траектории пуль немного по-разному. В результате вы увидите то, что насчитал ваш компьютер, а на самом деле бдет происходить то, что насчитал сервер. Когда идет сильный разброс пуль(например, долгая очередь из калаша), то вероятность таких несовпадений повышается.
Вобщем совет: если вы пользуетесь компенсацией лага, то включайте (cl_lw 1), а если не пользуетесь - выключайте (cl_lw 0). По умолчанию включено.

cl_lb X - опция, включающая упрежденный показ крови (если на сервере это не запрещено). Когда вы бегаете с оружием, имеющем маленький разброс при стрельбе, можете попробовать включить эту опцию (cl_lb 1). Однако я настоятельно рекомендую оставлять ее отключенной (cl_lb 0) всегда. Отключение позволяет вам точно увидеть попали ли вы в проивника по-настоящему. По умочанию выключено (cl_lb 0).

cl_updaterate XX - эта переменная контролирует число обновлений, запрашиваемых у сервера в течение секунды. Во многом она является аналогом "snaps" в Quake3, только отличается тем, что не обязательно должна быть кратной сорока для оптимальности. По умочанию значение 20.
Сидя на выделенке значение можно ставить 30-40, однако, когда сервер полный, лучше установить cl_updaterate 25 и меньше. Модемщикам показано значение 20, однако на скорости 33600 на полном серваке лучше снизить cl_updaterate до 15. При игре по локалке смело ставьте cl_updaterate 50.
Интересно вот что. "Рывки" при движении игрока трудно заметить, если его cl_updaterate выше 13. Единственная ситуация, когда низкие значения cl_updaterate становятся ощутимыми, когда все вокруг движется очень быстро. Например, ракета летящая вам в дыню…
  Ответить с цитированием
 
 


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Half-Life 2: DEATHMATCH МУЖИК Counter-Strike и Half-Life 7 23.08.2009 21:03
Сервера CS 1.6, CSS, Half-Life unique Counter-Strike и Half-Life 0 13.01.2009 20:57
Half-Life KyKJI0B0D Counter-Strike и Half-Life 4 23.11.2008 14:56
Half-Life за 1 минуту morte Юмор 16 20.07.2008 13:46
[OGR] Half-Life: Half-Hour morte Общий 6 09.11.2007 17:48



Текущее время: 05:36. Часовой пояс GMT +3.


vBulletin skin developed by: eXtremepixels
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
top of page