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