Кожен індивідуальний виділений сервер Counter-Strike: Source може включати в себе різноманітні доповнення, карти, які клієнт скачує при підключенні до гри, але, в цьому є один великий мінус - сервер в цей час стискає файл і віддає його, тобто витрачається час на стиснення, а тут і підвищення навантаження на сервер, можливі лаги коли більшість слотів зайнято, та й сама завантаження таким чином відбувається значно довше, ніж ви б завантажили такий же файл http протоколу.
Благо, що розробники Valve передбачили обхідний шлях для цієї проблеми, розробивши серверну команду sv_downloadurl в якій ми можемо вказати шлях до сайту, з розміщених ігровим контентом. Таким чином ми позбудемося довгої завантаження файлів, так як клієнт буде завантажувати файл безпосередньо з сайту. Для початку необхідно створити директорію з нашим ігровим модом (використовуйте FTP), наприклад ось так -
Зверніть увагу на відсутність завершального слеша (/), нагадаю, цю команду ми пишемо в серверний конфігураційний файл server.cfg. Все, після цього клієнт буде в курсі, звідки йому завантажувати файли, однак потрібно ще дозволити йому це робити, приклад -
Цю команду ми пишемо відразу після sv_downloadurl. Все, сервер налаштований. Тепер нам потрібно підготувати файли, які будемо передавати по http. Може ви вже в курсі, а можливо і ні - движок гри підтримує стиснення і розпаковування архівів bzip2, тому великі файли обов'язково стискаємо архиватором bzip2, який можна завантажити тут.
Після установки архіватора на комп'ютер, ми можемо приступати до роботи. Для прикладу ми стиснемо директорію з нашими картами. Я розмістив список нестандартних карт на диску «E» в директорії «maps». Ну, що ж, відкриємо консоль «cmd» і перейдемо в директорію з картами Counter-Strike: Source -
E:
E: \ cd maps
E: \ maps> "C: \ Program Files (x86) \ GnuWin32 \ bin \ bzip2" -v * .bsp
Як ви бачите, використовується багатослівний режим -v (verbose) і маска * .bsp, завдяки якій нам не потрібно вказувати яку саме карту - архіватор стисне всі файли з розширенням .bsp знаходяться в робочій директорії, в нашому випадку це «E: \ maps ». Результат виконання роботи bzip2 можете бачити на малюнку нижче -
Для прикладу, de_nightfever.bsp до стиснення важив 46 МБ. непоганий результат, чи не так? Тепер створіть на веб сервері піддиректорію maps в директорії cstrike і завантажте в неї все стислі карти. Перезапускайте сервер, і перевіряємо, видалимо з клієнта будь-яку вже наявну карту наприклад тугіше de_nightfever.bsp і спробуємо приєднатися до гри. Я відразу помітив, що швидкість завантаження карти суттєво підвищилася, для більшої впевненості перевірив лог веб-сервера, щоб бути впевненим в тому, що карта дійсно завантажилася з http протоколу. Що ж бачимо в логах -
Керівництва по темі