Запам'ятати Забули пароль
Реєстрація
На головну

Сторінка 1 з 11
Модератор форуму: sapersat 
Форум » Counter-Strike » Ділимося досвідом в CS » Що таке 1000 FPS на сервері, або як дати себе обманути
Що таке 1000 FPS на сервері, або як дати себе обманути
sapersatДата: Четвер, 31.03.2011, 11:40 | Повідомлення # 1
Група: Адміністратори
Ранг:
ADMIN
Повідомлень: 988
Нагороди: 125
Репутація: 161 Стать: Чоловік

Якщо Ви більш докладно ознайомитеся з деталями щодо цих 1000 ФПС серверів, Ви виявите, що інформація, яку повідомляють провайдери не досить ясна, а іноді й сумнівна. Іноді вони намагаються створити враження, що їх сервери в деякому роді "сертифіковані"на 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 мілісекунд. Навіть якщо сервер визначив положення гравця коректно, першій або 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 ФПС в матчах або кланварах, тому що він, нібито, кращий. Це тільки маркетинговий хід - не більше і не менше!

Автор перекладу: sapersat
При копіюванні матеріалу, посилання на джерело zaxid-cs.org.ua обов'язково!!!


Прикріплення: 2159985.jpg(77Kb)

off
Форум » Counter-Strike » Ділимося досвідом в CS » Що таке 1000 FPS на сервері, або як дати себе обманути
Сторінка 1 з 11
Пошук:
РЕКЛАМА
Статистика Форуму
Останні теми Популярні теми Кращі користувачі Нові користувачі
Переклад сервісу STEAM (7)
А Вам слабо долічити до 2009 ??? :)) (929)
Вчимося стрибати різні стрибки в КС (76)
Який привайдер ви обираєте або на вашу думку найкращий?? (13)
FAQ/Гайд по раскрутке Сервера CS 1.6 (0)
Сервера cs 1.6 (0)
Шукаю людей для спілкування (0)
Стім акаунти продаю дешево (0)
Продам шаблон для скачки CS (0)
Як поміняти зброю з лівої руки на праву? (17)
Продаю стім акаунти ( дешево ) ! (61)
А Вам слабо долічити до 2009 ??? :)) (929)
Готовий і настроєний сервер v.1.0 УКРАЇНСЬКОЮ by sapersat (150)
Відгадай гру по скріну! (150)
Міста (98)
IP ваших серверів (95)
Гра "Три букви" - Розшивруй букви (88)
Роздача 7-8 знаків від WriterMix (82)
Сервер видно в пошуку + підтримка steam (80)
Готовий і настроєний сервер CS 1.6 v2.0 UA by sapersat (77)
Вчимося стрибати різні стрибки в КС (76)
Як відкрити порт в модемі D-Link DSL-2500U/BRU/D (61)
sapersat Постів [ 988 ]
BOGDANCS Постів [ 240 ]
prukolprukol6 Постів [ 214 ]
CJ Постів [ 186 ]
CH@iIIeP16 Постів [ 166 ]
tarzan Постів [ 164 ]
nazik100 Постів [ 143 ]
Redmix360 Постів [ 137 ]
Menisk Постів [ 120 ]
WriterMix Постів [ 118 ]
maroder Постів [ 104 ]
TorreS Постів [ 102 ]
tracer Постів [ 100 ]
Carbon Постів [ 96 ]
golfimbul Постів [ 86 ]
biobi(22:32)
trep(22:07)
vadik111(16:36)
saturn(14:12)
Mavavto(18:33)
vaxa(16:24)
1ivan1(23:42)
iStark(22:17)
kip(18:31)
Nalpenko1(02:12)
kasper01(17:18)
Valik(21:55)
Amid1212(22:21)
Looney_94(19:30)
PeTrUkk12(18:21)

Нових сьогодні: 0

РЕКЛАМА