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

2
For сервер

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

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

Make-AMXLand.Ru - Преврати игру в реальность! © 2011-2024
Автор: shumik | Добавлено: 21 июня 2011 | Просмотрело: (3528) чел. | Прокомментировало: (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
Лучшие сервера

Лучшие на сайте
shumik
10 февраля 2011
ICQ: 619710752
Новостей: 1681
Комментариев: 209
Dimon45rus
10 февраля 2011
ICQ: 442849203
Новостей: 252
Комментариев: 17
SLAIN
8 мая 2011
ICQ: * Не указано *
Новостей: 189
Комментариев: 47
ZION
19 июня 2011
ICQ: * Не указано *
Новостей: 161
Комментариев: 3
D1m_KA
12 мая 2011
ICQ: 638055071
Новостей: 109
Комментариев: 25

6
Опрос
С какой вы страны?
Россия
Казахстан
Украина
Другое otstoi

7
Наша кнопка

8
Кто в онлайне
Сейчас на сайте:
Пользователей: 0
Отсутствуют.

Поисковых систем: 3
Google Archive.org Bot
oBot

Гостей: 71
Всего: 74

10-ка посетивших:
220 BOJIbT Bro
egor777 elgun
FuntCase google.bsk
Lik9898 raqust
shumik SnoopDevill

9
Реклама

10
Пузомерки