|
Что такое Рейты (Rates)!!!!
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 09:47 | Сообщение # 1 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| Начнем с определений:
Основные понятия.
Lag (лаг) – термин, применяется к тем, у кого соединение медленное или другимим словами «лагующее».
Ping (пинг) – величина, которая определяет время прохождения сообщения от Вашего компьютера до сервера и обратно, измеряется в миллисекундах.
Latency (задержка) – величина, которая определяет время прохождения сообщения от Вашего компьютера до сервера (она конечно же всегда меньше, чем Ваш пинг). Запомните – ping это не latency!
Rates (коэффициент скорости) – Rate (Рейт) - это максимальный предел байт в секунду, который сервер может послать клиенту.Определяет максимальный предел байт в секунду, который клиент может послать на сервер.
cl_cmdrate - число раз в секунду которое клиент информирует сервер о своих действиях.
cl_updaterate - это сколько раз в секунду сервер говорит клиенту, что происходит на карте.
Choke (буквально - удушье) – это серверный лаг. По сути, это означает, что Ваш комп посылает позиции игроков и то, что он делает (стрельба, грены, нож) на сервер, но это всё не доходит до сервера. По умолчанию в CS:S сделано так, что все действия игроков посылаются на сервер 30 раз в секунду. Choke может быть вызван двумя причинами: - Ваш комп посылает слишком много пакетов на сервер в секунду. Если Вы пытаетесь послать 100 команд на сервер в секунду, а он может принять только 40, Вы получите choke 60. Согласитесь, что это фигово, так как практически ни один из Ваших выстрелов не будет зарегистрирован, и только 40% от того, что Вы пытаетесь сделать на сервере Вашим игроком, будет реально сделано (решение ниже). - Сервер не успевает обработать всю информацию, которая ему посылается. Причиной может быть сетевой лаг на сервере, или лаг CPU на сервере. Клиент не может это контролировать, но может подстроиться под это (решение ниже).
|
|
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 09:48 | Сообщение # 2 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| Loss (потери) – это лаг вне Вашего компа и как правило вне игрового сервера. Это означает, что пока Ваши команды, которые идут на сервер, проходят по определённому пути (иногда им необходимо пройти большое количество сетей), они «теряются» на просторах сети. Loss очень часто возникает при использовании беспроводного соединения. Loss также нельзя контролировать – это просто дерьмовое соединение и с этим ничего не поделать.
Tickrate (тикрейт) – во время каждого тика сервер обрабатывает входящие команды, проверяет различные внутренние правила, обновляет состояния объектов игры. Больший тикрейт позволяет добиться большей точности, но и требует более мощный сервер. По рекомендациям Valve сервера с количеством слотов >20 должны иметь тикрейт 66. Как правило, тикрейт 100 используется на CW серверах, а также на паблик серверах, которые устанавливаются в количестве одного, двух на одну машину и с небольшим количеством слотов.
Я предполагаю, что большинство людей использует ADSL или кабель и здесь я буду рассматривать ADSL в качестве примера, и исходя из этого я предполагаю, что скорость входящего потока у всех 512кб/с и скорость исходящего 256кб/с, но вы можете сделать все приведенные здесь расчеты и для кабеля, и для соединений на более низких скоростях (просто необходимо вычислить разницу). Теперь выставляем значения rate, cl_updaterate и cl_cmdrate чем выше, тем лучше, потому что это позволяет вам играть в более быструю игру и что более важно это позволяет вашим пулям попадать в противника с большей вероятностью. Сейчас я объясню вам почему.
Рейт В теории соединение ADSL должно с легкостью поддерживать рейт в 25000. Это проверяется следующим образом: Берем значение рейта, которое измеряется в байтах в секунду и переводим его в килобайты в секунду.
25000 /1024 = 24.4140625 кБ/с
В теории ваше соединение работает на скорости 512 килобит в секунду (в реальности оно работает на более низкой скорости). Я перевожу это значение в килобайты в секунду: 512 / 8 = 64кБ/с
|
|
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 09:48 | Сообщение # 3 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| Теперь Вы можете видеть, что через ваше соединение могут играть 2.62 человека с рейтом в 25000 (64 / 24.414 = 2.62). Можно использовать такое же вычисление для cl_rate, но этого делать не стоит, значения по умолчанию 9999 более чем достаточно.
cl_updaterate - cl_cmdrate
Далее изменяем значения команд cl_updaterate и cl_cmdrate.
updaterate, определяет, как много обновлений в секунду вы можете получить от сервера. Ясно, что нужно получать как можно больше обновлений, так как это дает вам более точную картину того, где кто находится и куда летят их пули. Однако если у вас будет высокий updaterate и низкий rate вы не сможете послать достаточное количество данных за обновление и любая выгода от высокого updaterate будет сведена к минимуму. Для того чтобы стало понятно, я сейчас все объясню.
Если я ставлю cl_updaterate в 100 и мой рейт равен 25000 в теории каждое обновление может содержать до 250байт данных (25000 / 100 = 250). Повторюсь чем больше данных вы сможете получить за обновление, тем более четко вы будете видеть игровой мир (это не означает, что игровой мир будет более четким, а означает то, что ваши пули будут более четко попадать в цель). В версии 1.3 было вычислено, что когда у вас на экране происходит много действий, вы можете использовать 175 байт на обновление. Таким образом, если у вас высокий updaterate, вам нужен соответствующий ему высокий рейт.
Используя данные из 1.3 если у вас updaterate равен 100, ваш рейт должен быть равен, по крайней мере 17500, но лучше иметь небольшой запас. Я рекомендую значение 20000 как минимум (чтобы определить какое значение выбрать для вашего рейта, возьмите Ваш cl_updaterate и умножьте его на 175, а затем прибавьте к полученному значению, еще хотя бы 2000 для страховки).
cl_cmdrate
cl_cmdrate работает так же как и cl_updaterate. Эта команда определяет, сколько обновлений в секунду вы посылаете на сервер. И снова ее значение нужно ставить как можно выше. Чем больше обновлений вы пошлете на сервер, тем больше информации он будет иметь о ваших действиях и о том, куда летят ваши пули. На мой взгляд, эта команда более важная, чем cl_updaterate.
Как и с cl_updaterate и с rate вы можете вычислить максимальное количество данных которое может содержать каждое обновление. Отсюда, если у вас cl_cmdrate равен 100 и ваш cl_rate равен 9999, каждое обновление может содержать 99.99байт данных (9999 / 100 = 99.99). Этого должно хватить для ваших нужд, так как вы посылаете меньше данных на сервер, чем он посылает вам.
|
|
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 09:49 | Сообщение # 4 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| У сервера есть такое понятие как tickrate. Игровая секунда делится на множество отметок(тиков), чем больше отметок(тиков), тем четче и плавнее картина всего происходящего на сервере, а значит, ваши попадания регистрируются сервером намного лучше и быстрее. Тик зависит от железа, на котором стоит сервак, ну и конечно коннекта, но чаще всего проблема в железках.
Можно открыть консоль и прописать "net_graph 3" В правом нижнем углу появится вот такая табличка.
Обозначения картинки:
1) FPS – сколько фреймов в секунду выдаёт Ваша видеокарта 2) Ping – описано выше 3) Data – сколько tcp/ip пакетов Вы посылаете и получаете (не стоит заморачиватся на этом) 4) Kilobits per second – сколько реально килобит Вы посылаете и получаете (нам не нужно) 5) Сколько раз в секунду Ваш комп обновляет позицию Вашего игрока на сервере (out -- внизу) Сколько раз в секунду сервер посылает позицию Вашего игрока (in -- сверху) 6) Loss – описано выше 7) Choke – описано выше
|
|
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 13:40 | Сообщение # 5 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| r_mmx 1 Включает поддержку процессоров MMX. Небольшое увеличение fps, нет потери качества картинки
r_sse 1 Включает поддержку процессоров SSE. Небольшое увеличение fps, нет потери качества картинки
r_sse2 1 Включает поддержку процессоров SSE2. Небольшое увеличение fps, нет потери качества картинки
r_3dnow 1 Включает поддержку технологии 3DNOW (только для AMD). Небольшое увеличение fps, нет потери качества картинки
r_shadows 0 Хочу сказать одну вещь про тени в Half-life 2: они реально фиговые. Отключаем их нафиг, пока Valve не улучшит их. Большое прибавление к FPS, небольшая потеря качества картинки
net_graph 3 Команда рисует график скорости вашего соединения в нижнем право углу экрана. Отличный мониторинг за вашим соединением. Небольшое уменьшение FPS, но очень полезная тулза.
r_decal_cullsize 0 эта команда устанавливает минимальный размер отображаемых предметов в пикселях. Позволяет видеть отверстия от пуль в стенах с большего расстояния. Очень незначительное падение fps. Улучшение графических эффектов
cl_smooth 0 Не знаю, что эта команда делает, за исключением того, что она реально снижает ваш FPS (изначально включена). Среднее увеличение fps. Без ухудшения графических эффектов.
cl_phys_props_enable 0 Ооочень большая помощь! Убирает маленькие интерьерные модельки с карты, разгружая тем самым ваш процессор. Всякие листочки, бутылки, мусор... Бочки и ящики, естественно остаются. Огромный прирост FPS, небольшая потеря качества картинки.
fog_enable 0 Вот еще одна команда, для улучшения FPS. Выключает дальний случайный туман. Команда никак не влияет на дым от гранаты, только туман. Большая прибавка к FPS, небольшое ухудшение картинки.
cl_allowupload "0" Команда запрещает загрузку файлов на сервер с вашего компьютера. Улучшает пинг.
cl_allowdownload "0" Команда запрещает скачку файлов с сервера на ваш компьютер. Улучшает пинг.
r_lod 0 Ухудьшает или улучшает видимость далекой модели игрока. 0 - плохая модель, больше FPS. -5 - хорошая модель, меньше FPS. Немного ухудшается картинка.
cl_ejectbrass 0 Убирает показ отстрелянных гильз. Прирост к FPS.
|
|
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 13:41 | Сообщение # 6 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| Ну вот. Достаточно сильно можно с помощью этих команд увеличить себе FPS. Вы можете протестировать эти команды, создав свою собственную игру. Поиграйтесь с командами и найдите оптимальный уровень FPS для вашей системы. Не пытайтесь сразу все впихнуть в файл.
Скажу вам, что мне удалось на моем athlon xp 2400+ и radeon 9800 pro поднять FPS до 75 fps(vsync был включен) при разрешении 1024x768. До этого сказать сколько было? 30!
Ну и для тех индивидуумов, что играют на динозаврах и их FPS не поднимается выше 0,00000000000000001 =), предлагаю впихнуть вот эти настройки. Про хорошую графику забудьте раз и навсегда после этого =): cl_show_splashes "0" mp_decals "0" mat_bufferprimitives "1" mat_bumpbasis "0 mat_bumpmap "0" mat_dxlevel "80" mat_fastnobump "1" mat_fastspecular "1" mat_filterlightmaps "1" mat_filtertextures "1" mat_forceaniso "0" mat_forcedynamic "0" mat_loadtextures "1" mat_mipmaptextures "1" mat_picmip "1" mat_reducefillrate "1" mat_showwatertextures "0" mat_specular "0" muzzleflash_light "0" r_modellodscale "0.1" r_drawlights "0" r_DispUseStaticMeshes "0" r_waterforceexpensive "0" r_shadowrendertotexture "0" r_rootlod "2" r_drawrain "0" r_decals "0" r_dynamic "0" r_WaterDrawReflection "0" r_WaterDrawRefraction "0" violence_hgibs "0" budget_show_history "0"
|
|
| |
АЛЬПИНИСТ | Дата: Четверг, 03.11.2011, 13:54 | Сообщение # 7 |
Гл.Администратор
Группа: Администраторы
Сообщений: 133
| На различных серверах, Вас могут попросить изменить рэйты, объясню, как это делается. Открывается консоль кнопкой "~", и появившемся окне, вставляете, по очереди команды, написанные ниже, и нажимаете ENTER. Соответственно, если на сервере, Вас попросят откорректировать настройки, пишите их. Значения команд cl_updaterate и cl_cmdrate должны соответствовать 66. Значение команды rate от 20000 до 30000.
Оптимальные значения:
rate 25000
cl_updaterate 66
cl_cmdrate 66
|
|
| |
| |