Готовая сборка сервера KF2 - хостинг на игровом ПК
В 2016 году пользователь Reddit выложил полностью настроенный выделенный сервер Killing Floor 2 в виде архива: распаковал, запустил один bat-файл - играешь. Тред до сих пор полезен как справка по хостингу на том же ПК, где вы играете, а ответы сообщества касаются железа, входа по IP и нескольких подводных камней. Здесь собрано, как устроена сборка и чему учит обсуждение.
Ссылки на скачивание есть в оригинальном треде. Сборка - неофициальная загрузка 2016 года, поэтому относитесь к ней как к любому стороннему архиву: проверьте антивирусом и дайте шагу SteamCMD обновить сервер перед игрой. Если хотите собрать сервер сами, см. выделенный сервер KF2 через SteamCMD.
Что внутри сборки
После распаковки получается папка SteamCMD с сервером внутри. Важны только три элемента, все в папке SteamCMD:
| Элемент | Назначение |
|---|---|
Launch KF2 Server.bat | Проверяет файлы сервера через SteamCMD и запускает сервер. Запустили - и можно играть. |
| Папка Maps (ярлык) | Здесь лежат карты сервера, сюда же кладутся кастомные. В комплекте два примера: KF-BioticsLab2009-F1 и KF-WestLondon2009_Prerelease. |
PCServer-KFGame.ini (ярлык) | Главный конфиг: имя сервера, пароль, сложность, длина и цикл карт. |
Поскольку файл запуска сначала вызывает SteamCMD, сервер заодно обновляется. Для бета-ветки замените строку обновления в Launch KF2 Server.bat на:
app_update 232130 -beta preview
(подставьте имя ветки, которое показывает Steam).
Ключевые настройки PCServer-KFGame.ini
Найдите в файле эти параметры:
| Параметр | Значения |
|---|---|
GameDifficulty=0.000000 | 0 Normal, 1 Hard, 2 Suicidal, 3 Hell on Earth |
GameLength=1 | 0 Short, 1 Normal, 2 Long |
ServerName= | Имя в списке серверов |
GamePassword= | Пароль для входа игроков |
AdminPassword= | Рядом с GamePassword; нужен для WebAdmin |
GameMapCycles=(Maps=(...)) | Ротация карт; сюда добавляются кастомные |
Чтобы добавить кастомные карты, допишите их имена в конец строки цикла:
GameMapCycles=(Maps=("KF-BurningParis","KF-Bioticslab", ... ,"KF-BioticsLab2009-F1","KF-WestLondon2009_Prerelease"))
Сборка была настроена отправлять игроков в онлайн-каталог карт, поэтому большинство кастомных карт скачивалось клиентами автоматически. Сегодня, скорее всего, понадобится свой редирект: см. редирект кастомных карт KF2 через nginx.
После любого изменения конфига или папки Maps сервер нужно перезапустить через bat-файл.
Порты
Пробросьте на ПК с сервером:
- 7777 UDP
- 27015 UDP
- 20560 UDP
WebAdmin (8080 TCP) пробрасывать не нужно, если пользуетесь им только на самом ПК с сервером. Автор советовал держать его закрытым ради безопасности.
Запуск на игровом ПК
- Сначала хотя бы раз запустите саму игру, чтобы прошла установка DirectX.
- Запустите сервер и дождитесь его полной загрузки, и только потом запускайте Killing Floor 2 на этой же машине. Один из комментаторов вернул сервер в список, просто поменяв этот порядок.
Как зайти на сервер
- С ПК с сервером: Browse Servers, вкладка LAN. Если сервера там нет, откройте консоль клавишей тильды (слева от
1) и введитеopen 127.0.0.1. Этот адрес работает только на ПК с сервером. - Все остальные: находят сервер в списке и добавляют в избранное или подключаются по вашему внешнему IP через консоль, например
open 123.234.123.234. Внешний IP можно узнать на сайтах вроде whatismyipaddress.com.
WebAdmin
Задайте пароль администратора в PCServer-KFGame.ini и откройте 127.0.0.1:8080 в браузере на ПК с сервером. Один из комментаторов заметил, что WebAdmin (включается в KFWeb.ini) удобнее для смены сложности, длины и паролей, чем правка ini. Ограничение, о котором писали в треде: в списке смены карты в WebAdmin были только стандартные карты, без кастомных, поэтому кастомные карты просто выбирали голосованием в конце матча.
Железо: что нужно серверу KF2
Из комментариев:
- i7 2600K или i5 2500K с 16 ГБ ОЗУ - никакой заметной нагрузки при одновременной игре и хостинге.
- Виртуальная машина с одним ядром (два потока) i3-6100 и 2-3 ГБ ОЗУ держала сервер без лагов; пиковое потребление памяти было около 1 ГБ.
- Сервер в основном координатор: он отслеживает позиции и состояние игроков, ZED и матча.
- Реальное ограничение - скорость отдачи. Слабый исходящий канал заставит лагать всех на сервере.
Решение проблем из треда
- gamestate=ogs_pending, сервера нет в списке, друзья не могут зайти по внешнему IP, а в LAN все работает. Порты закрыты. Проверьте их онлайн-сервисом проверки портов (советовали yougetsignal) и добавьте исключения для портов в брандмауэр Windows.
- Пробросить порты вообще нельзя (строгая домашняя сеть, общежитие). Иногда помогает собственный роутер между вами и розеткой; иначе запасной вариант - VPN вроде Hamachi.
- Ошибки при включении Versus. В треде никто не решил перевод сборки в Versus. Обычный способ - параметр запуска
?Game=KFGameContent.KFGameInfo_VersusSurvival; см. KF2 Versus Survival.
Вопросы и ответы
- Можно ли держать сервер KF2 на том же ПК, где я играю?
- Да. Комментаторы запускали его вместе с игрой без заметной нагрузки на машинах с 8-16 ГБ ОЗУ. Запустите сервер и дождитесь полной загрузки до старта Killing Floor 2.
- Сколько CPU и RAM нужно серверу KF2?
- По отзывам, одного ядра и около 2-3 ГБ ОЗУ в виртуальной машине хватало без лагов. Скорость отдачи интернета важнее мощности.
- Как добавить кастомную карту в цикл?
- Положите карту в папку Maps сервера и допишите ее имя в GameMapCycles в PCServer-KFGame.ini, затем перезапустите сервер.
- Нужно ли пробрасывать порт WebAdmin 8080?
- Нет, если WebAdmin нужен только на самом ПК с сервером по адресу 127.0.0.1:8080. Автор сборки не советовал открывать его из соображений безопасности.