Авторизация Регистрация Забыли пароль?
Реклама

Статьи
Наш игровой сервер
Наши сервисы
Мониторинг серверов
Информация
Нам интересно знать
Популярные теги
Популярные материалы
    Партнеры
    Счетчики
    Вы находитесь:

    Категория: Статьи

    Что такое 1000fps и почему это "пыль в глаза"?

    Автор: ds-jan

    Дата: 29 марта 2011

    Просмотров: 3 654

    Комментариев: 40

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


    ЗЫ. статейка лежала в текстовике с времен динозавтров и автора я не знаю, да и знать не хочу.
    Все грамматические ошибки являются авторским стилем изложения материала!
    Ключевые слова: 1000 ФПС Вернуться
    Похожие публикации
    Комментарии на сайте
    GREN=DI

    Написал: GREN=DI 31 марта 2011 20:42 Группа: Юзер
    Чё сказать, молодец!
    Цитировать
    ds-jan

    Написал: ds-jan 1 апреля 2011 18:18 Группа: Юзер
    как я устал тут одному товарищу доказывать, что статья не его. Брал я ее пол года назад на этом портале.
    https://best-kill.ru/katalog-statej/175-server-1000-fps-ili-kak-dat-sebya-obmanut
    .html

    Смотрим на дату Опубликовано: 21-05-2010, 20:20


    смотрим ссыль с его задрипанного портала https://csds.ws/6420-pravda-pro-1000-fps-na-servere.html

    Статьи | Автор: DjUm | 24 марта 2011

    вы блять на дату посмотрите, а потом говорите что статья ваша. Вы меян за идиота чтоли держите? вы спросите как же скришот, который щас по всему инету одинаковый и каждый со своим водяным знаком?

    https://cs.pncb.ru/10-chto-takoe-1000fps-i-pochemu-eto-pyl-v-glaza.html

    выложил я статью на своем личном веб сайте, и сам не поленился сделал скрин

    далее идем в гугл. набираем
    https://www.google.ru/search?client=opera&rls=ru&q=Р’СЃРµ+события+РЅР°+СЃР
    µСЂРІРµСЂР°С…+CS:S+или+CS1.6+скалькулированы+РїРѕ+кадрам
    .&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest
    что видим?дохрена сайтов с этой статьей. шо тут блять такого что все начали ее копировать?это еще раз доказывает, что этот бред существует в сети давно.

    ЗЫ накопилось....
    Цитировать
    Maximalistik

    Написал: Maximalistik 3 апреля 2011 09:13 Группа: Юзер
    Статья неочём! У меня 2500 FPS и всё ништяк!
    Цитировать
    ds-jan

    Написал: ds-jan 3 апреля 2011 20:44 Группа: Юзер
    да хоть 4000000

    1000\2500 - 0.4 - приближенно 0 тобишь у тебя надбавка 0 милисикунд.

    1000\500 = 2 2 милисикунды ты врятли разницу ощутишь.
    Вопрос? ну нафига?
    Цитировать
    Manas

    Написал: Manas 11 апреля 2011 20:13 Группа: Юзер
    спасиба я не знал)
    Цитировать
    dan_98_98

    Написал: dan_98_98 12 апреля 2011 05:08 Группа: Юзер
    DjUm,
    не бойся, твой говенный ксдс никому не нуен, сам спиздил и доволен lol
    Цитировать
    LLInH9rA

    Написал: LLInH9rA 16 июня 2011 20:51 Группа: Юзер
    Знал, ну все же хорошо) Новичкам полезно будет
    Цитировать
    Kyzz

    Написал: Kyzz 25 декабря 2011 10:57 Группа: Юзер
    Я не согласен !!!
    Это влияет на скорость обработки данных сервером!!! wink
    И пинг от этого зависит
    Провёл эксперимент у меня 2 нета у каждого свой айпи на одном я создал сервер а на ноуте смотрел пинг
    Решил догнать фпс до максимума так как 1000 фпс это не предел

    Вот фотка моего фпс
    https://img-minsk.fotki.yandex.ru/get/4426/62449184.0/0_8d0f7_674a5b50_orig вышло 23 тысячи фпс
    А теперь я просто уменьшал в рабочем режиме и следил за пингом разница
    500 пинг был 12-15
    1000 фпс пинг 10-12
    23 тыс фпс пинг составил 6
    То что фпс не влияет на скорость и пинг сервера это чушь....
    Всё влияет!!!
    И это доказано
    Хоть на 23 тысячи фпс я получил нагрузку в 30-40% CPU
    500 или 1000 Автор говорил между 500 и 1000 всего?....
    Проверь мою теорию 23 тысячи фпс и вся твоя теория рухнет так как на факте ты поймёшь что разница есть !!!

    А поиграй и сделай чтобы кс работала не на 100 фпс
    https://www.youtube.com/watch?v=GASig8z69fo вот гляньте это вам не с 60 до 100 это больше)
    Цитировать
    Alternativea

    Написал: Alternativea 25 января 2012 18:50 Группа: Юзер
    Спасибо
    Цитировать
    Коннектор

    Написал: Коннектор 9 мая 2012 14:38 Группа: Юзер
    ds-jan,
    При 100 ФПС сервер рассчитывает "мир” на скорости один кадр в 10 миллисекунд.

    Или 100 кадров в секунду?
    (FPS - Frames Per Second - Кадров в секунду (пер. с английского))

    Сам себя же опроверг.

    Зачем серверу просчитывать свою среду каждую миллисекунду, если он получает команды от игроков только раз в 10 миллисекунд!?

    Как зачем, допустим сзади едет машина и ты резко поворачиваешь голову, чтобы посмотреть куда она едет и отойти в сторону, но если тебе затормозить поворот головы, и слуха, то ты вовремя не отскочешь.
    На сервере ты не один и таких fps картинок нужно нашлепать еще 31 человеку, если посчитать полный сервер.
    При 1000 ФПС прогноз только становится «более точно неправильным»

    Наоборот более ровным и правильным, опять же смотря для какой машины, с каким процессором, системой и оперативой.
    Движок HL1 придумали во времена Pentium и не все настройки и команды могут быть полезны с нашим нынешним железом, ядрами процессоров.
    Сам лично убедился про 1000 fps на Windows XP sp2 -это возможно:
    https://teamicl.ru/index.php?/topic/19-sys-ticrate-1000-или-1000-fps/

    Вот в этом случае 1000 fps как раз обязательны.
    Ставил сервак в инет sv_lan 0 у меня пинг 2-4 и у игроков с моей сети не выше 6. У игроков с пиринга 8-10. Все летает при 1000 fps и стрельба стала очень точной. До этого стояло 512 fps, пинг такой же, но все жаловались на разброс пуль, труднее было попасть.
    С 512 fps стоял бустер и выравнивал пинг, а с 1000fps без бустера все летает, конечно и РЕЙТЫ(rates) нужно само собой настроить, всегда тут настраивал:
    https://www.reece-eu.net/drekrates.php

    Еще все это зависит от скорости интернет соединения

    Допустим в локальной сети 100мбит там и 100fps пойдет, зачем нагружать процессор, а когда в интернет ставишь сервер, надо полагать, что не каждый себе может позволить выделенку в 100мбит и тут поможет только правильно настроеные рейты и fps.
    Допустим пример:
    1.Локальный сервер sv_lan 1, скорость 100 мбит, несколько игроков и читер со SpeedHackом, он будет бегать по всей карте с бешенной скоростью, но его будет видно полным кадром как он передвигается, даже удастся в него попасть, самому удавалось в клубе играли.
    2. Сервер запущенный в интернет sv_lan 0, допустим 10мбит, немного игроков и тот же читер, но его уже не будет так видно, он будет появляться в одном месте, потом в другом.

    Все тупо понятно. Фреймы тут многое играют.
    Цитировать
    Новый комментарий

    Информация

    Посетители, находящиеся в группе lamo, не могут оставлять комментарии к данной публикации.