Быстрая загрузка с сервера [sv_downloadurl]

Здесь хранится вся документация по созданию выделенных серверов
Сообщение
Автор
Аватара пользователя
Kick-Bum
Полковник
Полковник
Сообщения: 2311
Зарегистрирован: 29.04.2008
Откуда: Behind you
Поблагодарили: 6 раз
Контактная информация:

#1 Сообщение 20.03.2009, 02:02

Вступление
При подключении к серверу, клиент может скачивать необходимые файлы, например карты, звуки, модели и т.д... Стандартно все эти функции выполняет непосредственно сервер, но для оптимизации данного процесса вы можете использовать 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
Ну а теперь папку tf (с под-папками и файлами) заливаем на веб-хост.

Код: Выделить всё

http://www.youwebhost.com/tf
Затем в server.cfg добавляем следующие: (кавычки, в которых адрес - обязательны)

Код: Выделить всё

sv_downloadurl "http://www.youwebhost.com/tf"
sv_allowdownload 1
Также можно указать net_maxfilesize. Эта переменная отвечает за максимальный размер файла, который может быть передан клиенту. (Стандартное значение=15)
Скачаны могут быть только игровые файлы (.bsp, .wav, .mdl, и т.д.), но не .exe, .vbs и прочее.
gM@X писал(а):На голденсорсе, можно прицепить баннер, кторый будет показываться при скачке файлов с http сервера.
Для этого нужно в папку /gfx/ положить файлик banner.gif с разрешением 340x56
Жалко что такое на сорсе не работает...
А теперь, если у вас есть FTP сервер...
Создаём папку 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"
8080 - стандартный порт в программе HFS, можете изменить его там же.
P.S: Так можно сделать даже на машине, где и сам игровой сервер. Скачка будет идти через чистый канал без ограничений, не влияя на сервер.

Bzip2
bzip2 - архиватор, с которым может работать движек Source. Используется для сжатия файлов...
Перед тем, как залить нашу папку с контентом на веб-сервер, мы можем использовать сжатие bzip2, и объем файлов сократится в много раз...
Скачиваем программу и переименовываем её в bzip2
И так, мы имеем папку tf

Код: Выделить всё

tf/maps/cp_mapname.bsp
tf/sound/misc/1.wav
tf/sound/misc/1b.wav
bzip2.exe кладём в папку tf/maps/
Теперь нам нужна командная строка. (cmd.exe)
Открываем и пишем там -

Код: Выделить всё

cd полный_путь_к_bzip2
Например:

Код: Выделить всё

cd C:\Users\Desktop\tf\maps
C:
Внимание: Оригинальные, не сжатые файлы так же должны быть на сервере. Но не обязательно их хранить именно на HTTP, можно оставить в папке игрового сервера.
Затем выполняем команду, которая заархивирует файлы:

Код: Выделить всё

bzip2 -v *.*
(Прим. *.* - означает, что обработаны будут файлы всех расширений. Если *.bsp - то все файлы, расширения .bsp)
После этого, в папке /maps будут уже готовые, сжатые файлы.. посмотрите, насколько уменьшился их размер и соответственно время их загрузки. Теперь их можно поместить на веб-сервер.
По аналогии вы можете сделать bzip сжатие для любых файлов.

vasy555
Сержант
Сержант
Сообщения: 41
Зарегистрирован: 25.01.2009

#2 Сообщение 20.03.2009, 06:27

Спасибо. А к л4д применимо?

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#3 Сообщение 20.03.2009, 12:07

vasy555
для любой версии Source движка..
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Аватара пользователя
-sang-
Нович0к
Нович0к
Сообщения: 13
Зарегистрирован: 05.01.2009

#4 Сообщение 20.03.2009, 12:45

есть подобная программа (Http File Server) для linuxа? я так понял её на сервере надо запускать..

Аватара пользователя
U#0
Майор
Майор
Сообщения: 529
Зарегистрирован: 25.10.2007
Поблагодарили: 1 раз
Контактная информация:

#5 Сообщение 20.03.2009, 14:05

Kick-Bum
Забыл упомянуть о bzip компрессии. Я специально при чистке не стал удалять эту тему.
vasy555 писал(а):Спасибо. А к л4д применимо?
Пока нет.

Аватара пользователя
Kick-Bum
Полковник
Полковник
Сообщения: 2311
Зарегистрирован: 29.04.2008
Откуда: Behind you
Поблагодарили: 6 раз
Контактная информация:

#6 Сообщение 20.03.2009, 14:42

-sang- писал(а):есть подобная программа (Http File Server) для linuxа? я так понял её на сервере надо запускать..
Для запуска HFS под *nix используй Wine.
U#0 писал(а):Забыл упомянуть о bzip компрессии
да... щас будет.

gM@X
VIP
VIP
Сообщения: 430
Зарегистрирован: 16.01.2006
Поблагодарили: 2 раза

#7 Сообщение 20.03.2009, 14:46

уху, полезная вещь, кстати не только для сорса справедливо, но и для голденсорса также, плюс на голденсорсе можно баннер прицепить когда будут файлы скачиваться с http сервера :)
3) OPTIONAL: To display a "banner image" to players that
download content,
place a 340x56 pixel image in the file <custom content
directory>/gfx/banner.gif

4) Set the sv_downloadurl cvar to
"http://yourserver/custom_content_directory/"
т.е. в папку /gfx/ положить файлик banner.gif с разрешением 340x56
жалко что такое на сорсе не работает :(

PS
Респект за статейку :)
Последний раз редактировалось Kick-Bum 20.03.2009, 17:07, всего редактировалось 1 раз.
Причина: ок, добавил про баннер;)

dreamW
Нович0к
Нович0к
Сообщения: 23
Зарегистрирован: 05.11.2007
Откуда: Украина, Черкассы
Контактная информация:

#8 Сообщение 20.03.2009, 21:35

gM@X писал(а):уху, полезная вещь, кстати не только для сорса справедливо, но и для голденсорса также, плюс на голденсорсе можно баннер прицепить когда будут файлы скачиваться с http сервера :)
3) OPTIONAL: To display a "banner image" to players that
download content,
place a 340x56 pixel image in the file <custom content
directory>/gfx/banner.gif

4) Set the sv_downloadurl cvar to
"http://yourserver/custom_content_directory/"
т.е. в папку /gfx/ положить файлик banner.gif с разрешением 340x56
жалко что такое на сорсе не работает :(

PS
Респект за статейку :)
Не пашет эта фича уже года два как.
Примерно такой код должен быть установлен у клиенте в реестре, чтобы отображался баннер:

Код: Выделить всё

[HKEY_CURRENT_USER\Software\Valve\Steam]
"LastContentProviderURL"="http://cdn.steampowered.com/platform/banner/cs_25.html"
ЗЫ: Я бы добавил, что sv_downloadurl работает только по HTTP, именно поэтому ставится костыль в виде http file server`a
Изображение

Аватара пользователя
SON
Капитан
Капитан
Сообщения: 363
Зарегистрирован: 28.09.2006
Контактная информация:

#9 Сообщение 21.03.2009, 01:02

Такая тема 100 лет уже есть на этом форуме и даже в этой же ветке,когда то я ее писал,но на просьбу прикрепить тему все забили дружно =\
А темка полезная,давно пора ей быть прикрепленной..
Servers
Изображение
LoL
говорят Vityan666 даже не писал семистим, он его просто наколдовал, или с самим дьяволом заключил сделку....(c)eldest
Как можно вообще скачать это SourceTV? ...(с)CSmania_Jonny
ИМЕЙ ВВИДУ ТРУЩИЙ ТЕМЫ МЛЯ ЗАЕПУ В УСМЕРТЬ, ПОКА НЕ ПОЛУЧУ ОТВЕТА. (c) anynah

Defrago
Сержант
Сержант
Сообщения: 43
Зарегистрирован: 18.07.2008

#10 Сообщение 22.03.2009, 21:22

Проблема: на сервере TF2 не удается выполнить такую вещь (см. скриншот), карты после установки переменной всеравно качаются с сервера и опытным путем я нашел, что ссылка не полная а только "https:", причина думаю, во 2 слэше, но на HL2DM такой вариант прекрасно работает (скачка там идет с https://siteisdeleted/hl2mp). Изображение
Последний раз редактировалось Defrago 28.08.2011, 13:31, всего редактировалось 1 раз.
Настройки видео через консоль

Аватара пользователя
SON
Капитан
Капитан
Сообщения: 363
Зарегистрирован: 28.09.2006
Контактная информация:

#11 Сообщение 22.03.2009, 21:29

Defrago
У вас нет прав для просмотра этого ресурса

Возможно, просмотр этого ресурса с использованием указанных вами личных данных не разрешен.
Мб это и есть причина?
Servers
Изображение
LoL
говорят Vityan666 даже не писал семистим, он его просто наколдовал, или с самим дьяволом заключил сделку....(c)eldest
Как можно вообще скачать это SourceTV? ...(с)CSmania_Jonny
ИМЕЙ ВВИДУ ТРУЩИЙ ТЕМЫ МЛЯ ЗАЕПУ В УСМЕРТЬ, ПОКА НЕ ПОЛУЧУ ОТВЕТА. (c) anynah

Defrago
Сержант
Сержант
Сообщения: 43
Зарегистрирован: 18.07.2008

#12 Сообщение 22.03.2009, 21:43

если смотреть как каталог, то да, а если обращаться напрямую к файлу, то качает спокойно, в обоих случаях карты упакованы в *.bz2
Настройки видео через консоль

Аватара пользователя
Kick-Bum
Полковник
Полковник
Сообщения: 2311
Зарегистрирован: 29.04.2008
Откуда: Behind you
Поблагодарили: 6 раз
Контактная информация:

#13 Сообщение 22.03.2009, 21:44

указывать надо в server.cfg
омг, на юкозе? что ты этим хочешь... скорость будет еще меньше чем с сервера D:

Defrago
Сержант
Сержант
Сообщения: 43
Зарегистрирован: 18.07.2008

#14 Сообщение 22.03.2009, 21:49

Указано как раз там, во всех трех случаях, если ввести rcon sv_downloadurl выдает "http:", в HL2DM такой проблемы нет.
Настройки видео через консоль

papay
Сержант
Сержант
Сообщения: 75
Зарегистрирован: 23.11.2006
Откуда: Москва

#15 Сообщение 25.03.2009, 10:37

спасибо, как оказалось ничего сложного :)

Ответить Вложения 2