Вступление
При подключении к серверу, клиент может скачивать необходимые файлы, например карты, звуки, модели и т.д... Стандартно все эти функции выполняет непосредственно сервер, но для оптимизации данного процесса вы можете использовать sv_downloadurl
Т.е. вся эта работа перейдёт на HTTP сервер
Главные преимущества: Не нагружает системные ресурсы игрового сервера
Игроки смогут скачивать на максимальной скорости, что уменьшит время подключения к серверу
Только по завершению скачивания с HTTP, игрок будет подключён на игровой сервер
Требования
Необходимо веб-пространство, куда будут загружены файлы.
Или FTP сервер...
Практическая часть
За пример взята игра TF2.
Допустим у вас есть карта cp_mapname.bsp и звуки: 1.wav, 1b.wav.
Создайте папку tf и скопируйте все необходимые файлы соблюдая каталоги
Будет выглядеть так:
Quote
Код:
tf/maps/cp_mapname.bsp
tf/sound/misc/1.wav
tf/sound/misc/1b.wav
Ну а теперь папку tf (с под-папками и файлами) заливаем на веб-хост.
Затем в server.cfg добавляем следующие: (кавычки, в которых адрес - обязательны)
Quote
Код:
sv_downloadurl "http://www.youwebhost.com/tf"
sv_allowdownload 1
Также можно указать net_maxfilesize. Эта переменная отвечает за максимальный размер файла, который может быть передан клиенту. (Стандартное значение=15)
Скачаны могут быть только игровые файлы (.bsp, .wav, .mdl, и т.д.), но не .exe, .vbs и прочее.
Quote
gM@X писал(а):
На голденсорсе, можно прицепить баннер, кторый будет показываться при скачке файлов с http сервера.
Для этого нужно в папку /gfx/ положить файлик banner.gif с разрешением 340x56
Жалко что такое на сорсе не работает...
А теперь, если у вас есть FTP сервер...
Создаём папку tf, как писалось выше.
Скачиваем программу Доступно только для пользователей и запускаем. В Menu выбираем пункт Add folder from disk и указываем только-что созданную папку с контентом. Жмём ОК. При вопросе - выбираем Real Folder. В программе должна появится папка tf красного цвета. Сворачиваем программу в фоновый режим.
Теперь в server.cfg нужно указать в таком виде
Quote
Код:
sv_downloadurl "http://IP FTP сервера:port/tf"
Например:
Quote
Код:
sv_downloadurl "http://123.56.27.11:8080/tf"
8080 - стандартный порт в программе HFS, можете изменить его там же.
P.S: Так можно сделать даже на машине, где и сам игровой сервер. Скачка будет идти через чистый канал без ограничений, не влияя на сервер.
Bzip2
bzip2 - архиватор, с которым может работать движек Source. Используется для сжатия файлов...
Перед тем, как залить нашу папку с контентом на веб-сервер, мы можем использовать сжатие bzip2, и объем файлов сократится в много раз...
Доступно только для пользователей и переименовываем её в bzip2
И так, мы имеем папку tf
Quote
Код:
tf/maps/cp_mapname.bsp
tf/sound/misc/1.wav
tf/sound/misc/1b.wav
bzip2.exe кладём в папку tf/maps/
Теперь нам нужна командная строка. (cmd.exe)
Открываем и пишем там -
Quote
Код:
cd полный_путь_к_bzip2
Например:
Quote
Код:
cd C:\Users\Desktop\tf\maps
Внимание: Оригинальные, не сжатые файлы так же должны быть на сервере. Но не обязательно их хранить именно на HTTP, можно оставить в папке игрового сервера.
Затем выполняем команду, которая заархивирует файлы:
(Прим. *.* - означает, что обработаны будут файлы всех расширений. Если *.bsp - то все файлы, расширения .bsp)
После этого, в папке /maps будут уже готовые, сжатые файлы.. посмотрите, насколько уменьшился их размер и соответственно время их загрузки. Теперь их можно поместить на веб-сервер.
По аналогии вы можете сделать bzip сжатие для любых файлов.