Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Counter-Strike 1.6
Мастерская CS 1.6
Статьи CS 1.6
Главная » Статьи » Статьи о CS 1.6

Что такое 1000fps и почему это "пыль в глаза"?
Если Вы более подробно ознакомитесь с деталями относительно этих 1000 FPS серверов, Вы обнаружите, что информация, которую сообщают провайдеры не достаточно понятна, а иногда и сомнительная. Иногда они пытаются создать впечатление, что их серверы в некотором роде "сертифицированы" на 1000 ФПС или такой ФПС "гарантирован", не сообщая при этом, что же на самом деле за этим стоит. Мы можем предположить, что эта "фишка" была "изобретена" самими провайдерами игровых серверов или это просто выражение чьего-либо субъективного мнения. Действительно ли сервера, которые работают на 1000 ФПС, позволяют играть более плавно и увеличивают точность попаданий? Нет, потому что они просто не могут!

В теории.
Все события на серверах CS:S или CS1.6 скалькулированы по кадрам. Все положения, направления и скорости в один и тот же дискретный момент времени собраны все в один кадр. Кадр здесь значит то же самое, что и статическая картинка в видеофильме, поставленном на паузу. Чем больше кадров в секунду рассчитывает сервер, тем более точные его данные. При 1000 ФПС (FPS - Frames Per Second - Кадров в секунду (пер. с английского)) сервер считывает "мир” (или "среду") на скорости один кадр в одну миллисекунду. При 100 ФПС сервер рассчитывает "мир” на скорости один кадр в 10 миллисекунд. Пока, на данном этапе, словосочетание "более точный" еще применимо к серверу … но только пока рассматривается один лишь сервер по себе. На практике же это оказывается бесполезно для клиента.

На практике.
Безусловно необходимо принимать так же во внимание и клиента (игрока). Сервер может рассчитывать свой "мир" на 1000 ФПС. Это всего-лишь одна миллисекунда на рассчитанный кадр. На другом конце провода игроки не получают обновления на такой большой скорости, а на скорости значительно ниже. Насколько они быстро могут получать обновления задается переменной tickrate ("тикрейт"). Обычно тикрейт может составлять 33, 66 или 100, для высокопроизводительных серверов. Сервер замораживает свой "мир" на каждый "тик", а затем решает какому клиенту эту картинку передать. Но сервер не посылает всю имеющуюся у него информацию. Он посылает только изменения к последнему обновлению среды. Величина параметра "тикрейт" определяет как часто данные об обновлении среды будут посылаться игрокам. Таким образом, клиент получает только 100 кадров за одну секунду при тикрейте сервера, равным 100. С другой стороны, клиент тоже посылает команды. Здесь тикрейт опять определяет как часто сервер будет получать кадры или команды от клиентов. Это опять будет только 100 команд или кадров в одну секунду.

Вот в этом месте, как раз и рушатся «воздушные замки». Зачем серверу просчитывать свою среду каждую миллисекунду, если он получает команды от игроков только раз в 10 миллисекунд!? Все серверы просчитывают свою среду со старыми на 90% данными все время. Если еще взять в расчет различные задержки, которые влияют на скорость, с которой клиенты посылают команды на сервер, и то, что сервер сервер ставит эти команды потом в очередь, 500, 600 или тем более 1000 ФПС на сервере не имеет абсолютно никакого смысла. Сервер работает с данными, которые уже устарели на 50, а то и более, миллисекунд. В это время много могло измениться, в том числе и некоторые входные данные на стороне игрока (например движение мышкой). Поэтому сервер должен прогнозировать события - он должен угадать что игрок собирается сделать в следующий момент. Этот прогноз может сильно отличаться от тех движений, которые игрок на самом деле совершает … с точностью до 1000 кадров в секунду. Не важно какой именно ФПС на сервере — 333 или 1000! Неправильный прогноз так и будет неправильным прогнозом. При 1000 ФПС прогноз только становится «более точно неправильным».

Вы можете задать вопрос - "Но что если сервер делает правильный прогноз?” Действительно, если сервер правильно предсказывает положение игрока, то это лучше — но только для сервера! Никак не для клиента. Оба движка, как для CS:S так и для CS1.6 запрограммированы с предположением о том, что серверное и клиентское время синхронизированы. Серверное время определяет время у всех клиентов. Поэтому сервер сохраняет так называемое «время кадра» для каждого сделанного кадра. На хороших Linux (или Windows 2008) серверах он делает это раз в миллисекунду. Клиент использует время кадра, которое он получает для каждого обновления, как свое собственное. На 1000 ФПС сервере с тикрейтом 100 игрок должен получать обновления в которых время кадра различается на 10 миллисекунд. Даже если сервер определил положение игрока корректно, 1-ой или 2-ух миллисекунд задержки во времени получения пакета от сервера к клиенту достаточно, чтобы данные «устарели». Итак опять, не важно какой ФПС на сервере - 333 или 1000. Более того, задержки как правило бывают значительно больше чем 1 или 2 миллисекунды (как правило, от 10 до 30), если игрок сидит не в серверной комнате ;).

Некоторые могут сказать - "Но ведь сервер учитывает задержки при прогнозировании!” Опять они окажутся правы. Сервер действительно учитывает задержки клиента при составлении прогноза. Чтобы сосчитать задержки правильно, серверу необходим пакет с командой от клиента. Эта величина определяется только после получения от клиента целого ряда пакетов с командами, а только потом включается в серверные вычисления. Но даже подсчет среднего значения задержки делает такой расчет не точным, даже если сервер пытается считать это среднее значение более тщательно. И опять никакой разницы между 333 и 1000 ФПС.

Некоторые игроки думают, что если у себя в конфиге пропишут cl_cmdrate 100, cl_updaterate 100 и rate 30000, то получат именно это от сервера. Это опять не верно. И в CS:S и в CS1.6 сервер имеет большую власть. Это значит при любых условиях только сервер решает как много обновлений он посылает и как много команд он получает. Может быть клиент и декларирует получение 100 кадров, а на самом деле сервер посылает только 90 кадров в секунду. Здесь 1000 ФПС опять не продуктивен. Если сервер под большой нагрузкой и он не может считать со скоростью 1000 кадров в секунду, тогда он решает отдавать меньше обновлений и принимать меньше команд, чтобы «разгрузиться» и высчитывать максимально ФПС для себя, так как в движке запрограммирована цель достижения уровня ФПС. Это важно, так как движки и Source и Half-Life 1 считают кадры. Нет кадра — нет расчета и нет обновлений. Движки будут стараться «вырабатывать» установленный уровень ФПС и, просто-напросто, будут сбрасывать все команды от клиента и к клиенту, если это будет необходимо для разгрузки сервера. Вот почему в таком случае сервер с 333 ФПС будет даже более точным, чем сервер которому «приказали» держать 500 или 1000 ФПС все время - точно так же как некоторые хостеры «приказывают» своим серверам держать 1000 ФПС.

Заключение:
Не важно задано на сервере 333 или 500 или даже 1000 ФПС. Все эти скорости обновлений делают сервер достаточно быстрым. Куда более важно то, что сервер стоит в хорошем ЦОДе с хорошим подключением к сети Интернет и то как сервер достигает заданных ФПС (хорошее оборудование). Только программное обеспечение от компании Valve может сделать регистрацию попаданий более точной, улучшая алгоритмы, ответственные за прогнозирование, экстраполяцию и интерполяцию, таким образом делая прогнозы более точными.


Не позволяйте себя одурачивать заявлениями о сервере с "1000 ФПС”. Не позволяйте никому заставлять Вас играть на сервере с 1000 ФПС в матчах или кланварах, потому что он, якобы, лучше. Это только маркетинговый ход - не больше и не меньше!


ЗЫ. статейка лежала в текстовике с времен динозавтров и автора я не знаю, да и знать не хочу.
Все грамматические ошибки являются авторским стилем изложения материала!
Категория: Статьи о CS 1.6 | Добавил: JeD (13.06.2011)
Просмотров: 723 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Покупка ссылки
Купить ссылку здесь
(Цена: 4 руб.)


Поставить к себе на сайт
Поиск
Warcraft 3
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Теги
AFK Manager Ip Extended Give Ammo 1.0 Counter-Strike 1.6 Non Steam CS 1.6 Final Release v43 (2009/RUS) Сounter-strike v.33 (3939) Block Wallhack v5 Wallhack v4 RefreshLock 2.02 Логосы для CS #1 Модель AWP Прицел для AWP и Scout Конфиги Virtus.pro CountJump Script v.1.0 Cкрипт делает 200 fps LongJump Script v.1.1 FAST SHOOT AWP Скрипт на LJ прыгает 259.9 скрипт //VOLUME aliases from 0.05 till 1.0 Очень большой пак скриптов!!! NoFlash и NoRecoil Script для CS 1.6 Edward 2010 cfg wCrea.cfg Zainab 'zAAz' Turkie WCG 2010: SK-Gaming.cfg WCG 2010: Evil Geniuses.cfg WCG 2010: forZe.cfg ZeroGravity.cfg EnergKEeee.cfg ES.Gukk[A] Config by DENJKE2hs.gg WCG 2010: Full-Gaming.cfg WCG 2010: Bet4Gamers.cfg WCG 2010: mTw.dk.cfg Mason.cfg WCG 2010: Frag eXecutors.cfg neo.cfg GOODRIFLE.cfg (22.09.10) Jordan 'n0thing' Gilbert nak.cfg Iron Will.cfg eSrael.CS.cfg Lions.se.cfg dEsh.cfg M19|Rado Russia Female.cfg mouz|cyx 27.7.10 ex-MYM|Delpan.cfg SK-Gaming.cfg 2010 - Август SpawN.cfg H2k-Gaming.cfg 2010 - Июнь ICQadmins 1.0 Anti KzHack v 1.7 Logos Pack CS-HeadShot Reflex Counter-Strike - узнай на сколько хорошо ты знаешь игру! CS Demo Converter Kick-UpS - Флешка для тренировки реакции Готовый CW сервер без AMX HTTP File Server FULL CS HUD Remover HLTooLz v3.2 Counter-Strike: Русский перевод ESL Wire Anti-Cheat Snoopy - античит CS 1.6 Reallite HLGuard Anti-Cheat 2.8 [Reborn] LAC 0.7 Клиентская и серверная часть Cheating-Death 4.33.4 Lucia SsClient 3.0 G36 Scope Razer Logo SK-Gaming Logo SteelSeries logo ESEA Spray Long Jump и Bunny Hop Scripts 3d_aim map WCG 2010: Lions.cfg COD4 Style GSG9 SpawN GUI old version ESL GUI Beta Privat Edition YaPB v2.00 Counter-Strike Tricks in CS 1.6 Ultimate Warcraft3 Next Generation Akimbot v3.1 IvPBot v1.1.1 NiceBot v1.5.4 Androida 2.2 Fraps HACKERS DELIGHT GUI CEVO GUI v3.0 CEVO GUI v2.0 MYM GUI 2010 v2 Dreamhack Winter 2010 GUI BunnyHop скрипт для CS 1.6 Как распозеать читера от чесного игрока? Конфиг на нож для CS 1.6 Прозрачный дым для CS 1.6 Быстрая закупка в CS Пакет скриптов для преимущества в игре RedDot Crosshair AIM - прицел Config для ножа Fighter FX 7.3 (RUS) Imp Cheat v2.0 aimb00ter Public Cheat m1dge Public Hack s7eal7h v1.0 AiruN OGL Hack 0.3 fnatic BLACK GUI Team Limiter [ZP] Extra Item : Immunity Damager Splash Loading Sound Razer GUI Скачать бесплатно чит Самый лучший чит - WH+AIM+RADAR (VDC Redux 2.06) Скачать бесплатно чит m1dge Public Aeq/voiplay Cheat GUI Steam v4 HUDs by Mr ThUg Simple CS 1.6 scope Fire Explosion Shenlong Led Glow forZe.cfg Причина убийства для СТ (для JailBreak мода) High Detailed m4a1 (HD Texture) Вечный Бан (Permanent Ban) Speedometer Green Rus MilkShape 3D 1.8.5 Beta 1 + кряк Бесплатный AWP Бессмертие HLTools 1.19 HL Brute 1.10 HL Fake Players 1.08 HL Server Info 1.02 HL Database 1.02 Log Parser Консоль сервера CS 1.6 на сайт Alfa Antiterror v2