XDS Optimizer - це плагін для metamod-а, що займається різними фіксами усередині двіжка HLDS, список яких буде потихеньку поповнюватися. На даний момент він вміє: - Повний фікс svc_bad-ів виду Server failed to transmit file 'AY & SY'
- Для гравців з синхронними cmdrate і updaterate робиться оптимізація їх з'єднання. Полягає вона в відсиланні оновлень (upd пакетів) відразу після отримання даних від гравця (cmd пакетів). У результаті значно зменшується час живого відгуку сервера на низьких рейтах, і, як побічний ефект, знижується пінг.
При цьому на сервері не потрібно захмарних фпс, достатньо стабільних 200.
Невелике HowTo: Ця оптимізація має сенс тільки для невисоких cl_updaterate. При наближенні значення cl_updaterate до клієнтського фпс вона втрачає сенс і з'являється пінг 4-5. Причина появи - як раз таки низький клієнтський фпс.
Оптимізація працює тільки коли сервер отримує більше пакетів, ніж потрібно відправляти клієнтові (іншими словами, при cl_cmdrate> cl_updaterate)
Різниця cl_cmdrate і cl_updaterate не повинна бути великою. Максимальну різниця, яку може компенсувати оптімайзер задається квар xds_boostfactor в частках cl_updaterate. Наприклад, при cl_updaterate 40 і xds_boostfactor 0.4 максимальний cl_cmdrate буде 40 + (40 * 0.4) = 56. Якщо поставити значення вище, то синхронізація upd і cmd пакетів збивається, і час відгуку збільшується.
Для любителів низького пінгу: ставимо xds_boostfactor 10. Тоді оптимізація буде працювати навіть при cl_updaterate 40 і cl_cmdrate 101. Але пам'ятайте, що значення cl_updaterate буде ігноруватися і сервер буде відповідати upd пакетом на кожен cmd пакет, що приведе до зростання вихідного трафіку і завантаження ЦП.
Що треба зробити, щоб досягти мінімального пінгу? Відповідь нижче: На клієнта повинен бути стабільний фпс. Неважливо, 60 чи 100, головне, що він не повинен стрибати. Клієнт повинен відсилати cmd пакети через рівні проміжки часу. Контролюється це самим нижнім графіком в net_graph 2 (обведено зеленим і збільшено праворуч):
Кожна точка на графіку - це отрісованний клієнтом кадр. Червона крапка означає, що в момент відтворення цього кадр не був посланий cmd пакет. Прозора точка означає, що cmd пакет був посланий. Цей графік повинен бути або повністю прозорим (клієнт відсилає дані кожен Фрейм, досягається установкою cl_cmdrate 101), які дані повинні надсилатися через кадр, як показано на малюнку. Для цього ставимо cl_cmdrate = client_fps / 2 + 10. ставимо cl_updaterate на 10 менше cl_cmdrate. На стороні сервера повинен бути стабільний фпс> 200 choke і loss бути не повинно! Універсальний рецепт від choke - ставити sv_minrate 50000 Пам'ятайте, що гарний маленький пінг не відображає реальної затримки. Мінімальна затримка досягається установкою cl_cmdrate 101, cl_updaterate 101 (якщо це дозволяє сервер)
Щоб не було підозр, що пінг 0 - це фейк, я розповім як він розраховується. По-перше, пінг (це те що відображається в стовпці Latency в Scoreboard) - це затримка відповіді клієнта щодо сервера. У спрощеному варіанті - сервер надсилає запит на клієнт і чекає, коли він відповість. Після цього знаходиться час час між посилкою і відповіддю - це є реальна ігрова затримка. Далі з цього часу віднімається інтервал посилки оновлень, і в результаті виходить те, що з точки зору hlds називається пінгом. Інтервал посилки оновлень знаходиться як 1/cl_updaterate, тобто при cl_updaterate 40 інтервал оновлення дорівнює 1 / 40 = 0,025 сек = 25мсек. Пінг 0 означає, що реальна затримка в грі менше інтервалу оновлення, а не те, що її зовсім немає. Ось так.
Плагін працює тільки на нових серверах, двіжок для патчінга взято з dproto. Всі хто сидить на всяких 3647 і 2738 йдуть в тріщину.
Для роботи плагіни на сервері необхідна наявність інтернету для авторизації. Потрібно це тому, що надалі він, швидше за все, стане платним.
Як встановлювати: Створюємо папку <gamedir> / addons / xdsopt Розпаковуємо в неї архів Відкриваємо текстовим редактором <gamedir> / addons / metamod / plugins.ini, додаємо туди рядок:
win32 addons\xdsopt\xds_opt.dll Запускаємо сервер, після запуску дивимося meta list. Якщо статус модуля не RUN, це означає ваш білд не підтримується. Даємо серверу команду xds_stat. Висновок повинен бути таким:
[XDSOPT]: Current Status: Active (100) [XDSOPT]: Owner: DemoVersion [XDSOPT]: Custom Message:
одна проблема вирішена. він запустився на білді 4544 2009 року но тепер коли я чи хтось інший заходить то серв падає)) плагінів я не ставив зайвих..... вчому справа....
і видає помилку [XDSOPT]: Version 0.3 Windows [XDSOPT]: found swds.dll at 04970000 [XDSOPT]: Sorry? this engine does not supported [XDSOPT]: PerformPatching<> failed.
Дуже хороший мод, коли поставив на сервак, то пінг у нас по лані взагалі не відображався (тобто 0), у гравців по нету теж впав десь у півтора рази + в одного знайомого пінг взагалі унікальний 5-7 (він в іншому місті) Одним словом встановлюйте не пожалієте !
Поставив, мабуть, пінг трішки зменшився. Але через хвилин 20 мене викинуло з гри, неправильно передані пакети, більше такого не було, поживемо - побачимо.
Дата: 01.03.2010
Гості не можуть обговорювати публікації. [ Реєстрація | Вхід ]