Make-AmxLand.Ru
1
Навигация

2
For сервер

3
Архив новостей

4
Лучшие сервера
Сейчас, вы здесь: Make-AMXLand.Ru - Преврати игру в реальность! » Статьи CS 1.6 » Что такое 1000fps и почему это пыль в глаза?
Make-AMXLand.Ru - Это игровой проект посвящённый лучшим в своём роде онлайн шутерам, так же здесь можно найти множество полезностей к ним. Игровые готовые сервера, множество плагинов для серверов, моды к серверам, модели, карты, полезные статьи и многое другое вы найдёте у нас.

Make-AMXLand.Ru - Преврати игру в реальность! © 2011-2024
Автор: shumik | Добавлено: 21 июня 2011 | Просмотрело: (2679) чел. | Прокомментировало: (2) чел.
Что такое 1000 fps


Если Вы более подробно ознакомитесь с деталями относительно этих 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 ФПС в матчах или кланварах, потому что он, якобы, лучше. Это только маркетинговый ход - не больше и не меньше!

ЗЫ
Статейка лежала в текстовике с времен динозавров и автора я не знаю, да и знать не хочу.
Все грамматические ошибки являются авторским стилем изложения материала!


Поблагодарившие: CoreX


Понравилась новость? поделись с друзьями!

Похожие новости:

Полезные статьи CS 1.6:

Любишь тырить новости? Укажи источник!!!
Написал: CoreX 
11 января 2012

Рейтинг: Застенчивый

ICQ: 636488146
Новостей: 0
Комментариев: 42
Отлично thumbup


-------------------
GameDev
   
Написал: Qajee 
14 января 2012

Рейтинг: Застенчивый

ICQ: 5807904
Новостей: 10
Комментариев: 39
Нормальная статья. 4


-------------------
Имя : Алексей Б.
Возраст : 21
Сайт : MAKE-AMXLAND.ru
Skype : thebadweather123123 (+Микрофон)
   
Информация
Ошибка!
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
5
Опрос
Что рулит?
de_dust2_2x2
de_dust2
de_dust
de_inferno
de_aztec
de_train
cs_mansion
cs_office
cs_assault
Другое otstoi

6
Наша кнопка

7
Наши партнёры
Lineage 2


8
Кто в онлайне
Сейчас на сайте:
Пользователей: 3
Dimon45rus NIKAKUL
shumik

Роботов: 3
Yandex Googlebot
Alexa

Гостей: 343
Всех: 349

10ка последних посетивших:
Пользователей: 10
BoxDeng cogyEsconefon
danisimus Drive
Emegelagusege geliota
loopback:D saki22
soneekk vladimir_94

9
Топ новостей

11
Реклама

11
Пузомерки