Сервер
Как и для всех прочих многопользовательских игр, созданных на движке Source, Team Fortress 2 работает по принципу взаимодействия между клиентом и сервером. Под «клиентом», в данном случае, подразумевается сама игра, запущенная на компьютере игрока, а под «сервером» — программное обеспечение, к которому выполняются подсоединения клиентов. На данный момент существует несколько тысяч серверов Team Fortress 2, расположенных по всему миру.
Игровой сервер имеет влияние на множество аспектов игры. Он отвечает на действия игроков, постоянно обновляя его местоположение и состояние, такие как стрельба из оружия, потом выбирает нужное событие, такое как нанесение урона, а затем выводит результат в игровой мир, нанося и отображая высчитанный урон. Серверы также отвечают за неконтролируемые игроками процессы, вроде времени до окончания карты или поведения турелей.
Содержание
Преимущества
Вместо присоединения к существующим серверам, у игроков есть возможность создать свой сервер. Это позволит создающему игроку задавать порядок карт, определяя собственный список играемых карт и режимов. Более того, создающему дается управление над прочими параметрами, такими как гравитация, ограничения по классам, режим «Горец» и так далее. Также можно устанавливать сторонние модификации, способные разнообразить игровой процесс.
Виды серверов
Существует два типа серверов, которые могут быть запущены на движке Source.
Локальный сервер
Локальный сервер является стандартным сервером, находящимся внутри клиента Team Fortress 2. Его можно создать, просто нажав на кнопку «Создать сервер» в главном меню. Другие игроки смогут подключиться к такому серверу, но на компьютер игрока, на котором был запущен этот сервер, будет довольно большая нагрузка. Этот тип сервера в основном подходит для каких то определенных событий внутри вашей сети.
Выделенный сервер
См. также Настройка выделенного сервера.
Выделенный сервер является самостоятельным сервером, не требующим запуска клиента Steam. Такие серверы предпочтительнее локальных из-за низкой нагрузки на компьютер создающего игрока. Более того, множество выделенных серверов запускается на отдельных, сверхмощных компьютерах, подключенных к высокоскоростному интернету, что гарантирует клиентам низкий уровень задержки, а так же быстрое и стабильное подключение.
Системные требования
Хоть поставщики игровых серверов и используют самое современное оборудование для поддержания большого количества серверов, для запуска одного сервера требуется компьютер со следующими характеристиками:
Локальный сервер
- Mac OS X 10.5.8 или 10.6.3 и выше, с оборудованием, отвечающим требованиям игры.
- Windows XP и выше, с оборудованием, отвечающим требованиям игры.
Выделенный сервер
- Linux (x86 или amd64), имеющий GLIBC 2.3.2 и выше.
- FreeBSD (x86 или amd64), имеющий режим совместимости с Linux и свежую версию системы Linux.
- Windows 2000 и выше.
Предыдущие изменения
- Выпущена бета-версия выделенного сервера на Linux.
Обновление от 26 сентября 2007
- Родственность (affinity) главного потока больше не устанавливается для выделенного сервера. Это позволяет правильно распределять нагрузку при нескольких одновременно запущенных выделенных серверов на мультипроцессорной системе. Родственность всё также установлена на первый процессор для клиентов и локальных серверов (listen servers).
- С серверов убрана переменная
mp_friendlyfire
». В некоторых случаях Team Fortress 2 мог неверно работать, если она присутствовала.
Обновление от 28 сентября 2007
- Исправлено редкое падение сервера, вызванное повреждением сетевых данных.
- Исправлено падение сервера, связанное с жучком шпиона.
- Добавлена возможность «Создания сервера» в меню игры.
- Улучшена первоначальная инициализация сети, чтобы перехватывать всплывающий в фоне серверный брэндмауэр.
- Исправлены ошибки на Dustbowl и Hydro, которые проявлялись когда сервер становился пустым в середине раунда.
- Исправлены ошибки, связанные с Honeypot серверами.
- На сервер добавлена переменная
sv_pure
, по умолчанию выключенная. Наберитеsv_pure
в консоли для полного описания. - В серверный лог добавлены записи для:
Round_Start, Round_Setup_Begin, Round_Setup_End, Round_Overtime, Round_SuddenDeath, Round_Stalemate, Round_Win, Round_Length, Mini_Round_Selected, Mini_Round_Start, Mini_Round_Win и Mini_Round_Length.
- Записи серверного лога для
Round_Win
и смены уровня теперь содержат данные о командном счёте и количестве игроков. - Обновлены записи захвата флага серверного лога для отображения количества захватов и
tf_flag_caps_per_round value
. - Исправлена ошибка, при которой выделенный сервер под Windows, запущенный в режиме
-console
, отображал своё окно на переднем плане, вместо заднего при старте. - Исправлена ошибка в выделенном сервере под Windows (в режиме
-console
), при которой набор текста в консольном окне был очень медленным и трудоёмким. - Исправлена ошибка с обновлением имени 32-го игрока на сервере.
- Режим мгновенной смерти теперь является серверной настройкой (консольной переменной) и по умолчанию выключен.
- Исправлена консольная команда
rcon
, которая могла вызвать падение сервера. - Исправлено редкое падение, которое могло проявляться, когда пациент медика внезапно покидал сервер.
- Добавлена возможность серверам загружать собственные
.cfg
карты в папке cfg.
- Добавлена информация о позиции игрока для учета событий сервером
(player_death, player_builtobject, teamplay_flag_event, object_destroyed, teamplay_point_captured, teamplay_capture_blocked)
.
- Добавлена команда
nextlevel
. Если она установлена во время игры на карте, то сервер сервер сменит карту во время следующей смены уровня.
- Теперь, когда инженер уничтожает свои сооружения, это записывается в серверный лог.
- Игровой сервер теперь будет пытаться последовательно запускаться на 32-х портах, если они запущены на одной машине. Ранее сервер останавливался после перебора 10 портов.
- Исправлено падение сервера при
mp_forcecamera
установленной в «1» (откат к прежнему поведению переменной).
- Игроки могут использовать фильтр тэгов для поиска серверов с различными собственными правилами.
- Добавлены опции для серверов, позволяющее им устанавливать свои правила: отключение критических выстрелов
tf_weapon_criticals
, мгновенное возрождение(mp_disable_respawn_times)
, и увеличение количества игроков больше 24.
sv_alltalk
убрана из консольных переменных, которые являлись серверными тэгами.- Исправлена ошибка, при которой серверы с SourceTV и максимальным количеством игроков меньше 24 использовали тэг
«increased_maxplayers»
.
- Исправлены проблемы с загрузками карт на Linux-серверах, использующие процессоры Athlon.
- Исправлена ошибка, при которой консольные переменные
FCVAR_REPLICATED
иFCVAR_NOTIFY
некорректно работали под Linux. - Исправлена уязвимость, при которой сервер мог отправлять код выполнения клиенту.
- Добавлена консольная переменная
mp_stalemate_at_timelimit
, чтобы можно было включить режим мгновенной смерти при истеченииmp_timelimit
на картах не от Valve.
- Исправлена ошибка, из-за которой некоторые выделенные серверы не загружали игровую статистику.
- Исправлено падение выделенного Linux-сервера при смене карты.
- Исправлены случаи, когда игроки могли запускать на сервере команду
sv_soundscape_printdebuginfo
. - Исправлена потенциальная уязвимость «nuke» на подсистеме
rcon
.
- Исправлена ошибка, при которой команда
_resetgamestats
вызывала падение сервера.
- Улучшена логика подключений, чтобы помочь серверам, которые автоматически не переподключаются к Steam.
- Исправлена уязвимость
«setinfo»
, которая позволяла использовать запрещённые консольные команды при подключении к серверу. - Исправлена ошибка, при которой консольная переменная
sensitivity
могла вызвать падение сервера.
- Добавлена проверка версии клиента/сервера при подключении клиента.
- Исправлено зависание сервера на этапе создания ботов.
- Улучшена версия сообщения об ошибке несовпадения, получаемая при подключении к серверу с отличной от вашего клиента версией.
- Исправлена уязвимость падения сервера, вызванная испорченными сетевыми пакетами.
Обновление от 24 февраля 2011 (Набор карт сообщества)
- Исправлена ещё одна уязвимость падения сервера, вызванная испорченными сетевыми пакетами
- [Недокументированное] Исправлен случай, при котором после успешной торговли на сервере показывало только один из всех купленных предметов.
Обновление от 10 марта 2011 (Набор «Сёгун»)
- Добавлена проверка максимального количества игроков (оно не должно быть равно 1).
- Исправлена уязвимость, когда игроки могли использоваться заменённые эффекты частиц на серверах с
sv_pure
.
- Исправлено падение сервера, вызванное ударами Полудзатоити по кому-нибудь, не держа оружие.
- Исправлено падение сервера, вызываемое голосованием за следующую карту.
- Устранено падение сервера, вызываемое использованием ботов во время смены карты.
- Система записей будет пытаться переименовывать файл при сохранении записей на жестком диске самого сервера. Если переименовывание не удастся, то система скопирует файл с новым именем и удалит старый.
- Устранены проблемы с многоядерными процессорами на Linux-серверах, вызывавшие серьезные тормоза в игре.
- Исправлена очистка данных о записях в конце раунда. Если сервер желает сам выполнить очистку, то в его консоли нужно ввести команду
replay_docleanup
.
- Система записей: Исправлена блокировка сервера во время очистки информации о записях.
- Исправлена блокировка сервера во время очистки информации о записях.
- Исправлены несколько случаев падения сервера, связанных с системой записей.
- Исправлено падение сервера, вызываемое системой голосования.
- Исправлено падение сервера, связанное с системой записей.
- Исправлено падение сервера, вызванное маскировкой шпионов.
- Исправлено падение сервера, при вводе информации в консоль.
- Устранено падение сервера, связанное с очисткой системы частиц.
- Добавлено серверное сообщение при подключении игрока с помощью системы распределения.
- Исправлен расчет урона от Людодавов на Linux-сервере, который мог привести к падению физического движка.
- Исправлено падение сервера, связанное с неверным радиусом обзора игрока.
- Исправлено падение сервера, когда одновременно включены SourceTV и возможность вести запись.
- Исправлена частая ошибка, приводящая к вылету сервера, связанная с файлами формата
Valve Pack File
. - [Обновление 2] Исправлена ошибка сервера, связанная с не подгруженными моделями.
- Отрегулированы сообщения об ошибках на серверах, когда игроки покидали сервер из-за неудачной идентификации в Steam, так, чтобы они были более информативными.
- Дополнительные важные серверные сообщения теперь показываются и в логе сервера, а не только в консоли.
- Исправлено падение сервера, происходившее из-за критических атак Праздничным ударом по физическим объектам.
- Исправлена команда
+randommap
, которая неверно работала при запуске сервера. - Исправлен поток сообщений в консоль выделенного сервера, вызываемый ботом записи и углами обзора.
- Исправлено падение клиента, которое случалось, когда сервер использовал переменную
SetCustomModel
для изменения модели игрока.
- Исправлено падение сервера, связанное с Подкидышем.
Обновление от 27 июня 2012 (Обновление «Пиромания»)
- Исправлены сообщения, вызываемые картой, которые не работали на выделенных серверах.
- Голосования, созданные выделенным сервером, больше не вызывают ожидание от проваленного голосования.
- Теперь игроки на сервере оповещаются при использовании Именного ярлыка.
- Исправлена проблема, которая позволила подделать адрес IP для соединения с игровым сервером.
- Исправлено самопроизвольное завершение процесса клиента/сервера при переподключении к серверу предметов.
- Добавлена команда
sv_namechange_cooldown_seconds
, запрещающая клиенту быстро менять имена. (20 секунд между сменами по умолчанию). - Добавлена команда
sv_netspike_on_reliable_snapshot_overflow
для выборочного включения автоматического дампа файла сетевых ошибок, если клиент отключился из-за ошибки «reliable snapshot overflow» (по-умолчанию 0, что отключает отладку). - Добавлена проверка имени игрока на содержание цветовых кодов.
- Исправлена ошибка, из-за которой игровые серверы неправильно получали информацию о рюкзаке клиента (частая причина сообщения «Сервер, на котором вы играете, потерял связь с сервером предметов»).
- Исправлена ошибка, при которой выделенные серверы не могли задавать параметр
sv_region
.
- Исправлена ошибка, приводящая к падению сервера: задание консольной команды tf_mm_servermode до консольной команды map.
Обновление от 17 августа 2012 #1
- Сервер теперь автоматически выключается, если он стартовал в режиме Манн против машин при значении
sv_maxplayers
меньше, чем 32. - Исправлено неправильное сбрасывание значения
mp_timelimit
в режиме МпМ, если защитники проиграли. - Обновлена переменная
tf_mm_strict
.- Значение 2 скроет сервер в браузере серверов, но разрешит прямое подключение.
Обновление от 17 августа 2012 #2
- Исправлена ошибка, при которой отключившиеся игроки оставляли «призрака», который занимал слот на сервере.
- Исправлено редкое падение сервера во время стрельбы из оружия с мгновенным попаданием.
- Добавлена новая команда
kickall
, которая отключает все клиенты, кроме записей, HLTV и хоста, управляющего сервером, если это возможно.
Обновление от 10 сентября 2012
- Исправлена ошибка, позволявшая вредоносным серверам выполнять ограниченные консольные команды на игроках.
- Исправлена ошибка, позволявшая вредоносным серверам препятствовать игрокам выполнять консольные команды.
Обновление от 21 сентября 2012 #1
- Исправлено падение сервера, вызываемое ИИ бота-подрывника.
- По просьбам сообщества:
- Добавлена новая серверная переменная
tf_avoidteammates_pushaway
для управления сдвигом друг друга союзников, если они занимают одно и то же место. - Добавлена новая серверная переменная
tf_arena_override_team_size
, позволяющая задать максимальное число игроков в команде в режиме Арены.
- Добавлена новая серверная переменная
Обновление от 21 сентября 2012 #2
- Исправлена ошибка, из-за которой серверы сообщали системе поиска матчей, что они заполнены.
- * Исправлено падение сервера, которое могло произойти, если шпион был замаскирован как инженер с Оружейником
- Исправлено падение выделенного сервера на Linux, связанное с режимом Манн против машин.
- Исправлено отображение ботов на выделенном сервере в списке серверов.
- Исправлено падение сервера, связанное с игровой статистикой.
- Не допускаются игровые серверы, открывающиеся от панели MOTD более одного раза, если игрок подключается к игре через Поиск матчей или Быструю игру.
- Улучшена производительность для двоичных файлов выделенного сервера ОС Linux.
- Отключены дополнения, которые позволяли игрокам подсоединяться к безопасным игровым серверам, даже если в командной строке указано
-insecure
. - Добавлена переменная
sv_motd_unload_on_dismissal
, дающая серверным операндам контроль над поведением (по умолчанию) их Сообщения Дня.
- [Недокументированное] Исправлены проблемы сервера, клиента и движка.
- Исправлено падение выделенного сервера, связанное с недействительными командами клиента.
См. также
Ссылки
- Установка выделенного сервера (английский) в Сообществе разработчиков Valve (английский) (английский)
- Настройка выделенного сервера на сайте поддержки Steam (английский)