Свой сервер

Готовая сборка сервера 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.0000000 Normal, 1 Hard, 2 Suicidal, 3 Hell on Earth
GameLength=10 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. Автор сборки не советовал открывать его из соображений безопасности.