Killing Floor Fast Download: Исправляем медленную загрузку
Ничего не бесит больше, чем подключение к серверу и надпись "Downloading package...", ползущая со скоростью улитки (10Кб/с). Разбираемся, почему это происходит и как исправить.
Техническая причина
По умолчанию движок Unreal Engine 2 качает файлы напрямую через игровой порт сервера (UDP). Этот протокол не предназначен для передачи файлов и работает ужасно медленно.
Решение: HTTP Redirect (FastDL)
Хорошие серверы (как наши) используют HTTP Redirect.
- При входе сервер говорит вашей игре: "Не качай с меня. Иди по этой ссылке".
- Игра подключается к скоростному веб-серверу.
- Карта скачивается за пару секунд на максимальной скорости вашего интернета.
Если у нас качает медленно:
- Проверьте фаервол/антивирус. Он может блокировать HTTP-запросы от игры.
- Проверьте
KillingFloor.ini. Убедитесь, чтоAllowDownloads=True.
Загрузка уходит за 100%
По теме «компрессия файлов» на форуме killingfloor.ru (2012). После перехода на сжатые файлы на хостинге редиректа процент загрузки рос дальше 100% (49588% и выше). Объяснения из темы:
- Файлы не совпадают. Клиент сначала смотрит файл на игровом сервере, а потом на хостинге быстрой загрузки. Если процент перевалил за 100%, клиент видит файл на редиректе, но считает, что он не совпадает: например, на сервере изменили ServerPerks, а новый сжатый файл на FTP так и не залили (warpel, Flame).
- Регистр букв на Linux. Если файл лежит на FTP, но клиент его упорно не видит и качает с сервера до 100%, а FTP или сервер под Linux, проверьте регистр в названиях: и в именах файлов, и в написании файла мутатора и его класса (например, файл
kfmutator, а классKFMutator).
Как должно быть устроено (Flame): файл мутатора, например KFMutator.u (и KFMutator.ucl), лежит на сервере; из KFMutator.u делается архив KFMutator.u.uz2, он заливается на FTP, а путь к нему указывается в KillingFloor.ini:
[IpDrv.HTTPDownload]
RedirectToURL=http://ftp.*****.org/KillingFloor/
http:// или ftp:// в RedirectToURL. Из темы «Проблема подключения. Хостинг виноват?» на форуме killingfloor.ru: админ залил файлы .uz2 на бесплатный хостинг и прописал RedirectToURL=ftp://kf.besaba.com/kf/; ему советовали RedirectToURL=http://kf.besaba.com/kf/. Правило из темы: вписывать тот протокол, по которому папка реально открывается в браузере. В итоге у автора заработали оба варианта; по FTP браузер спрашивал логин и пароль, а по HTTP сразу открывался список файлов.
https:// в RedirectToURL. Из темы «Проблемы с Dropbox» (форум killingfloor.ru): редирект на https://dl.dropboxusercontent.com/... раньше работал, потом перестал, хотя в браузере ссылка открывалась. В логе клиента было видно, что игра подставляет к адресу порт 80:
Log: Download redirection to: https://dl.dropboxusercontent.com:80/u/187890151/killingfloor/DZMonsterPack.u.uz2
Порт :443, вписанный вручную, не помог - редирект всё равно шёл на 80. Такой адрес с :80 в браузере выдавал ошибку SSL, а с http вместо https ссылка открывалась. Решения в теме не нашли; в ответ автору дали ссылку на тему с бесплатным FTP/HTTP-хостингом для редиректа.
Что выкладывать на редирект, кроме карт
Из темы «Быстрая закачка» (форум killingfloor.ru, 2012). Остальные файлы ничем не отличаются от карт и выкладываются на быструю закачку так же:
- Залейте на хостинг ресурсы из папок
Animations,Maps,Sounds,StaticMeshes,TexturesиSystem(изSystemтолько файлы.u). - Обязательно сжимайте их в
.uz2, иначе клиенты будут качать с игрового сервера «со скоростью улитки». kf_gore_trip_sm.usx- штатный файл игры, ставить его на редирект не нужно: он качается только тогда, когда версия клиента отличается от версии сервера.- Проверка, видит ли игра редирект: если пакет весит 1 МБ, а его
.uz2- 300 КБ, при скачивании должно показываться 300 КБ. Если показывает 300 КБ, но медленно, дело в веб-сервере; если полный размер - игра не видит редирект.
Установка карт вручную
Если загрузка зависла, можно установить карту самому.
- Найдите карту: Гуглите название (например, "KF-Defence-B2 download").
- Скачайте архив: Внутри будут файлы с расширениями
.rom,.utx,.ukxи т.д. - Раскидайте по папкам:
- Карты (
.rom) ->KillingFloor/Maps - Текстуры (
.utx) ->KillingFloor/Textures - Звуки (
.uax) ->KillingFloor/Sounds - Музыка (
.ogg) ->KillingFloor/Music - Модели (
.usx) ->KillingFloor/StaticMeshes - Скрипты (
.u,.int) ->KillingFloor/System(Осторожно с заменой файлов в System!)
- Карты (
Секрет папки Cache
Когда вы качаете файлы с сервера автоматически, они попадают не в Maps, а в скрытую папку Cache.
- Где находится:
KillingFloor/Cache/ - Как работает: Файлы там имеют имена вроде
45A2C39...xx. Файлcache.iniхранит таблицу соответствия. - Лайфхак: Существуют программы "KF Cache Extractor", которые вытаскивают файлы из кэша, переименовывают их нормально и кладут в папку игры, чтобы вы могли играть на этих картах в Одиночной игре.