RE:NODE

Руководства12 мин чтения

TF2: Mann vs Machine и режимы сообщества

Как запустить Mann vs Machine на сервере TF2: слоты, миссии и pop-файлы, свои волны, а также другие режимы Valve и любимые режимы сообщества - VSH, dodgeball и MGE.

0 прочтений

Mann vs Machine работает на обычном выделенном сервере Team Fortress 2: запустите его на карте mvm_ с -maxplayers 32, и шестеро защитников-людей играют против волн роботов-ботов, которыми управляет файл миссии. Миссии - это файлы .pop в tf/scripts/population/, выбираются через tf_mvm_popfile, и серверы сообщества могут писать свои. Чего сервер сообщества сделать не может, так это Mann Up: билеты, туры службы и выпадение лута привязаны к официальному матчмейкингу Valve. Все остальные режимы TF2 устроены так же - режим выбирает префикс карты, несколько cvars tf_ его меняют, а популярные режимы сообщества (Versus Saxton Hale, dodgeball, MGE, prop hunt, jump) - это плагины SourceMod или специально сделанные карты поверх. В этом руководстве MvM разобран от начала до конца, а затем остальной каталог режимов и то, что каждому нужно от сервера.

Как TF2 выбирает игровой режим#

Настройки игрового режима в TF2 нет. Решает карта. Когда карта загружается, игра читает сущности внутри неё - точки захвата, флаги, тележки payload, бомбу MvM - и запускает соответствующие правила. Префикс карты - соглашение об именах, которое сообщает людям, чего ждать.

ПрефиксРежимПримечания
ctf_Захват флагаТакже Mannpower с tf_powerup_mode 1
cp_Контрольные точки5CP, атака/защита и средневековые карты
pl_PayloadОдна тележка, атака/защита
plr_Payload RaceГонка двух тележек
koth_Царь горыОдна точка, таймеры у каждой команды
arena_АренаОдна жизнь на раунд
sd_Special DeliveryНейтральный флаг к ракете
pass_PASS TimeИгра с мячом
rd_ / pd_Robot / Player DestructionСобрать и сдать
tc_Territorial ControlЧередующиеся пары точек
mvm_Mann vs MachineКооператив против волн роботов

Это значит, что режим сервера - это его список карт. Сервер payload - это сервер, в mapcycle.txt которого только карты pl_; смешанный сервер их чередует. Основы установки - SteamCMD, токен, server.cfg и цикл карт - описаны в статье руководство по серверу Team Fortress 2; здесь предполагается, что эта часть уже работает.

Mann vs Machine: что нужно серверу#

MvM - единственный режим с действительно другими требованиями к серверу, потому что роботы - это настоящие игроки-боты.

  • Слоты. Роботы занимают слоты игроков. Шести защитникам-людям плюс волнам роботов нужно гораздо больше шести слотов, поэтому серверы MvM запускают с -maxplayers 32. Запуск с меньшим числом слотов ограничивает, сколько роботов может быть живо одновременно, и ломает миссии, рассчитанные на большее.
  • Не больше шести людей. Команда защитников ограничена шестью. Остальные люди заходят как зрители.
  • Карта `mvm_` и миссия. К каждой карте прилагается один или несколько файлов миссий .pop. Без действительной миссии карта загружается, но никто не появляется.
  • Навигационные сетки. Роботы прокладывают путь по файлу .nav карты в tf/maps/. С картами MvM от Valve они поставляются; в собственные карты MvM его нужно включать, иначе роботы стоят на месте.
  • CPU. Два десятка ботов, которые прокладывают путь, стреляют и используют способности, стоят гораздо больше шести людей. MvM - самый тяжёлый стандартный режим TF2 в пересчёте на игрока-человека.
bash
$ ./srcds_run -game tf -console -port 27015 -maxplayers 32 \    +sv_setsteamaccount <token> +map mvm_coaltown
КонфигурацияRAMCPUПримечания
Миссии Valve, 6 игроков2-3 ГБ1,5-2 ядраПик - поздние волны с множеством роботов
Свои миссии, 6 игроков3-4 ГБ2+ ядраСвои роботы и большие волны
MvM плюс плагины SourceModплюс 0,5 ГБплюс немногоЗависит от плагинов

На RE:NODE тарифы Team Fortress 2 начинаются с 2 ГБ и трёх выделенных портов, так что у игры и SourceTV свои номера. Сервер MvM с миссиями Valve помещается в нижние тарифы; серверу, построенному вокруг своих миссий, место на тариф-два выше, и честная проверка - график CPU относительно лимита тарифа во время последней волны. Как это читать, объясняет статья CPU или RAM для игровых серверов.

Миссии и pop-файлы#

Миссия - это файл популяции: текстовый файл KeyValues, который задаёт стартовые деньги, волны, какие роботы появляются в каждой волне, сколько их, где они появляются и что несут. Файлы Valve лежат в tf/scripts/population/ внутри VPK игры, а файлы сообщества - отдельными файлами в той же папке.

code
tf/scripts/population/  mvm_coaltown.pop               normal difficulty  mvm_coaltown_advanced.pop      advanced  mvm_coaltown_expert.pop        expert  robot_standard.pop             shared robot templates  robot_giant.pop

Смена миссии - консольная команда на работающей карте mvm_:

code
changelevel mvm_coaltowntf_mvm_popfile mvm_coaltown_advanced

tf_mvm_popfile принимает имя файла без .pop и перезапускает миссию. Игроки тоже могут проголосовать за другую миссию через меню голосования, если голосования разрешены. Официальные карты Valve - mvm_coaltown, mvm_decoy, mvm_mannworks, mvm_bigrock, mvm_rottenburg, mvm_mannhattan и хеллоуинская mvm_ghost_town; точный список миссий для каждой карты зависит от версии игры.

Написание и установка своих миссий

Свои миссии - причина, по которой существует большинство серверов MvM сообщества. Собственный файл .pop переиспользует общие шаблоны роботов и добавляет свои: другое оружие, атрибуты, здоровье, способности и структуру волн. Установка - это копирование файлов: .pop в tf/scripts/population/, плюс своя карта, если есть, её файл .nav и весь дополнительный контент, который нужен миссии.

Структуру файла миссии проще понять на маленьком примере. Это одна волна из двадцати скаутов, одновременно живы максимум восемь, появляются по четыре:

tf/scripts/population/mvm_coaltown_test.pop
#base robot_standard.popWaveSchedule{	StartingCurrency	800	RespawnWaveTime	6	CanBotsAttackWhileInSpawnRoom	no	Wave	{		WaveSpawn		{			Where	spawnbot			TotalCount	20			MaxActive	8			SpawnCount	4			WaitBeforeStarting	0			WaitBetweenSpawns	5			TotalCurrency	200			TFBot			{				Class	Scout				Skill	Normal			}		}	}}

StartingCurrency - деньги игроков перед первой волной, TotalCurrency - сколько всего выпадает за эту волну, а MaxActive - число, от которого зависит, насколько тяжело работает сервер: это предел живых роботов с этой точки появления. Where называет точку появления на карте, и имена на разных картах разные, поэтому копируйте их из миссии Valve для той же карты. Настоящие миссии также запускают relay карты в начале и конце волны для дверей и объявлений; откройте .pop от Valve для той же карты, чтобы увидеть, какие используются. Загрузите файл через tf_mvm_popfile mvm_coaltown_test и сыграйте волну в одиночку, прежде чем показывать её кому-либо.

Несколько вещей, которые стоит знать, прежде чем идти этим путём:

  • Игрокам нужен контент. Собственную карту должно быть можно скачать, а в TF2 это означает FastDL. Сами файлы миссий остаются на сервере.
  • Шаблоны мощные и хрупкие. Робот с опечаткой в атрибуте - это не ошибка, а робот, у которого этот атрибут молча отсутствует. Проверяйте каждую волну вдвоём с другом, прежде чем открывать её.
  • Некоторые свои миссии зависят от плагинов. Крупные проекты MvM сообщества расширяют роботов плагинами SourceMod для поведения, которое формат pop выразить не может. Проверьте, что требует пак миссий, прежде чем ставить его.
  • Ползучий рост сложности. Легко написать миссию, которую невозможно пройти вшестером. Балансируйте под своё реальное число игроков.

Другие режимы Valve и cvars, которые их меняют#

Большинству стандартных режимов не нужно ничего, кроме правильных карт. У нескольких есть переключатели, о которых стоит знать:

CvarРежимЧто делает
tf_powerup_mode 1MannpowerКрюки-кошки и руны усиления на картах ctf_, сделанных под это
tf_medieval 1MedievalТолько ближний бой и немного оружия дальнего боя
tf_medieval_autorp 1MedievalПереписывает чат в псевдосредневековом стиле
tf_arena_use_queue 1АренаСтавит в очередь игроков, которые не помещаются в раунд
tf_arena_first_blood 1АренаБонус критов за первое убийство
tf_weapon_criticals 0ВсеОтключает случайные криты
tf_use_fixed_weaponspreads 1ВсеФиксированный разброс дробовика
mp_timelimitВсеМинут на карту
mp_winlimitВсеВыигранных раундов до конца карты

О последних четырёх серверы сообщества и спорят. tf_weapon_criticals 0 и tf_use_fixed_weaponspreads 1 - пара «без случайных критов, без случайного разброса», которую многие серверы сообщества указывают в названиях, и это самое близкое к соревновательным правилам, что есть в TF2 за пределами конфига лиги.

В последних обновлениях Valve также добавила в игру некоторые режимы сообщества - среди них Versus Saxton Hale и Zombie Infection - со своими префиксами карт. Официальные версии работают на чистом сервере с официальными картами; версии сообщества на плагинах по-прежнему существуют и отличаются в деталях.

Режимы сообщества: плагины и карты#

Всё остальное - это SourceMod поверх обычного сервера TF2. Установка Metamod:Source и SourceMod и настройка админов описаны в статье плагины SourceMod для TF2; режимы ниже предполагают, что это уже сделано.

РежимЧто этоИз чего собран
Versus Saxton Hale / Freak Fortress 2Все против одного игрока-боссаПлагин, плюс паки боссов для FF2
DodgeballСамонаводящиеся ракеты, отбиваемые сжатым воздухомПлагин и карты tfdb_
MGEАрены 1 на 1 для тренировки дуэлейПлагин и карты mge_
Prop HuntПрячутся под видом предметов, охотники ищутПлагин и карты prop hunt
JumpТрассы для rocket jump и sticky jumpКарты jump_, плагины для регенерации и сохранений
SurfСерфинг с сохранением скоростиКарты surf_, обычно с плагином-таймером
JailbreakОхранники и заключённые с начальникомПлагин и карты jb_
x10Характеристики оружия, умноженные на десятьПлагин и инструменты атрибутов
Slender FortressКооперативный хоррорПлагин, модели и карты

Три режима, о которых спрашивают первыми

Versus Saxton Hale и Freak Fortress 2. Один игрок становится боссом с огромным запасом здоровья, зависящим от числа противников; все остальные пытаются убить его до истечения таймера раунда или до того, как босс убьёт всех. В VSH один босс и фиксированные правила; Freak Fortress 2 - расширенная версия с паками боссов, где каждый босс - это конфиг, модель, звуки и способности. Серверы FF2 тяжелы по контенту, поэтому FastDL обязателен, а пак из тридцати боссов - это тридцать наборов загрузок. Начните с нескольких.

Dodgeball. Появляются самонаводящиеся ракеты и выбирают цель, которая должна отбить их сжатым воздухом за Pyro. С каждым отражением ракеты ускоряются, пока кто-нибудь не промахнётся. Плагин заставляет всех играть за Pyro и создаёт ракеты на картах tfdb_; в конфиге задаются скорость ракеты, скорость поворота и прибавка за каждое отражение. Это один из самых дешёвых в хостинге режимов - мало живых игроков, один-два снаряда - и один из самых затягивающих для постоянных игроков.

MGE. Карта из маленьких арен, где игроки встают в очередь на дуэли 1 на 1, а результаты считаются по рейтингу в стиле Elo, который плагин хранит в базе данных. Так соревновательные игроки тренируют свой класс без полной команды, и нужно для этого совсем немного: плагин, карты mge_ и база данных для рейтингов. Каждый игровой тариф на RE:NODE включает слот базы данных, учётные данные которого генерируются в панели, - проверьте, что плагин поддерживает этот движок, или используйте локальный вариант SQLite, который предлагает большинство плагинов SourceMod.

Ко всем трём применимы три практических правила:

  1. Один режим на сервер. Каждый из этих плагинов считает, что правила принадлежат ему. Dodgeball и VSH на одном сервере с голосованием за карту между ними - так и получаются боссы с самонаводящимися ракетами.
  2. Проверяйте зависимости плагина. Многие режимы сообщества зависят от расширений вроде TF2Items, TF2Attributes или TF2 Econ Data. С тех пор как TF2 перешёл на 64-битные бинарники сервера, каждому расширению нужна 64-битная сборка; режим, который отлично работал в 2023 году, может не загрузиться, пока его зависимости не пересобраны. Перед установкой проверьте на странице каждого проекта, есть ли актуальная сборка.
  3. Готовьтесь к своему контенту. Модели боссов, звуки и карты - всё это должно дойти до игроков. Настройте FastDL до запуска, а не после того, как первый игрок пожалуется на отсутствующие текстуры.
стандартные режимыволны и роботыпереопределяетmapcycle.txtкакие карты в ротацииФайл popтолько миссии MvMSourceModрежимы сообществаCvars tf_medieval, mannpowerСущности картыpl_, koth_, mvm_Правила раундачто получают игроки
Что определяет режим на сервере TF2

Как держать сервер режима заполненным#

Сервер режима сообщества живёт или умирает в зависимости от того, есть ли на нём люди в тот момент, когда другие заглядывают в браузер серверов. С MvM проще всего: шесть игроков - это полная игра, так что компания друзей может заполнить его сама, а незнакомцы занимают оставшиеся слоты. Dodgeball и MGE быстро заполняются даже небольшим числом людей. VSH, prop hunt и jailbreak нужно двенадцать человек и больше, чтобы было весело, а это серьёзное обязательство.

Что помогает:

  • Понятное название сервера. Режим, правила и регион: «MvM custom missions | DE», «Dodgeball | no randoms». Игроки фильтруют браузер по словам.
  • Короткие списки карт. Пять хороших карт лучше тридцати посредственных. Голосование, которое постоянно предлагает сломанные свои карты, опустошает сервер.
  • Быстрые загрузки. Режимы со своим контентом без FastDL теряют половину заходящих на экране загрузки.
  • Часы посева. Выберите регулярный вечер, позовите свою компанию, а остальное сделает браузер серверов. Подробнее - в статье как вырастить сообщество игрового сервера.

Производительность и стабильность#

Стандартные режимы лёгкие; MvM и режимы с кучей плагинов - нет. Типичные причины, по которым сервер режима не справляется, каждый раз одни и те же: слишком много ботов в MvM, плагины с таймерами на каждый кадр, расширения, собранные под неправильную архитектуру, и память, которая ползёт вверх днями. Последнее решает перезапуск по расписанию в пустой час. На RE:NODE вкладка Schedules выполняет такой перезапуск по cron-выражению, а график в консоли показывает CPU и память относительно лимитов тарифа, так что пик на волне можно увидеть, а не угадывать. Как часто - это достаточно часто, объясняет статья расписания перезапусков, которые помогают.

Когда выходит обновление TF2, серверы режимов ломаются первыми. Metamod, SourceMod и каждому расширению может понадобиться новая сборка; файлы gamedata устаревают; плагины, читающие атрибуты оружия, могут вести себя странно. Делайте backup перед обновлением и держите запасной стандартный цикл карт, чтобы сервер хотя бы крутил стандартные карты, пока плагины догоняют.

Решение проблем#

Карта MvM загружается, но роботы не появляются. Нет действительной миссии или не хватает слотов. Проверьте -maxplayers 32, затем задайте миссию через tf_mvm_popfile.

Роботы стоят на месте или идут в стены. Файл .nav карты отсутствует или устарел. Свои карты MvM обязаны его включать; не пытайтесь сами генерировать его для карты MvM, если не знаете, как в миссии устроены точки появления и пути.

«Bad population file» в консоли. Синтаксическая ошибка в собственном файле .pop. KeyValues чувствительны к фигурным скобкам; номер строки в ошибке обычно указывает рядом с проблемой.

Плагин режима сообщества не загружается после обновления TF2. Переход на 64 бита или устаревшая gamedata. Проверьте sm plugins list и sm exts list, обновите расширение и его gamedata и найдите ошибку в addons/sourcemod/logs/.

Игроки видят отсутствующие текстуры и модели-ошибки. Свой контент не доходит до клиентов. Укажите в sv_downloadurl рабочий хост FastDL и проверьте, что все файлы лежат там по тем же путям.

Сервер заполнен, но в MvM играют только шесть человек. Так и должно быть - остальные слоты заняты роботами. Не уменьшайте -maxplayers, чтобы «сэкономить» слоты.

FAQ#

Можно ли запустить Mann Up на своём сервере?

Нет. Туры Mann Up, билеты и выпадение лута работают только на официальных серверах MvM от Valve. Серверы сообщества крутят те же карты и миссии, плюс свои, но без этих наград.

Сколько слотов нужно серверу MvM?

Запускайте его с -maxplayers 32. Защищаться могут только шестеро людей, но роботы - это игроки-боты, и им нужны свои слоты; при меньшем числе слотов ломаются миссии, рассчитанные на большие волны.

Куда класть файлы миссий MvM?

В tf/scripts/population/ в виде файлов .pop. Загружайте миссию командой tf_mvm_popfile <name> на карте mvm_, без расширения .pop.

Нужны ли режимам сообщества вроде VSH особые карты?

Большинству нужны. Dodgeball требует карт tfdb_, MGE - арен mge_, jailbreak - карт jb_. Versus Saxton Hale играется на картах, удобных для босса, а у официального VSH от Valve свой набор карт.

Почему мой режим сообщества перестал работать после обновления?

Обновления TF2 часто ломают gamedata и расширения SourceMod, а после перехода на 64-битные бинарники сервера старые 32-битные расширения вообще не загружаются. Обновите SourceMod, расширения и плагин - именно в таком порядке.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000