Игровой сервер (иногда также называемый хостом ) — это сервер , который является авторитетным источником событий в многопользовательской видеоигре . Сервер передает достаточно данных о своем внутреннем состоянии, чтобы позволить подключенным к нему клиентам поддерживать собственную точную версию игрового мира для отображения игрокам. Они также получают и обрабатывают ввод каждого игрока.
Выделенные серверы имитируют игровые миры без поддержки прямого ввода или вывода, за исключением того, что требуется для их администрирования. Игроки должны подключаться к серверу с помощью отдельных клиентских программ, чтобы видеть и взаимодействовать с игрой. [1] [2]
Главным преимуществом выделенных серверов является их пригодность для размещения в профессиональных центрах обработки данных , со всеми вытекающими отсюда преимуществами надежности и производительности. Удаленный хостинг также исключает преимущество низкой задержки , которое в противном случае имел бы любой игрок, размещающий сервер и подключающийся к нему с той же машины или локальной сети. [1]
Расходы на эксплуатацию выделенных серверов иногда покрываются разработчиками игры (особенно на консолях ), а иногда клановыми группами, но в любом случае общественность зависит от третьих лиц, предоставляющих серверы для подключения. По этой причине большинство игр, использующих выделенные серверы, также предоставляют поддержку сервера прослушивания. [1] Игроки в эти игры часто размещают серверы для общественности и своих кланов, либо размещая экземпляр сервера на своем собственном оборудовании, либо арендуя его у провайдера хостинга игровых серверов.
Выделенный игровой сервер по сути похож на любой другой современный компьютер по своим физическим компонентам. Они обычно используют типичные серверно-ориентированные части для большинства своих компонентов, за исключением ЦП — материнских плат, памяти, хранилища и т. д. Поскольку производительность игрового сервера обычно ограничена несколькими ключевыми процессами, которые плохо распараллеливаются, выделенные серверы для современных игр обычно используют высокопроизводительные потребительские ЦП для их очень высокой однопоточной производительности, при этом на каждой машине запущено несколько или даже всего один экземпляр.
Выделенные игровые серверы часто арендуются у хостинг-провайдера; для менее требовательных игр или игр с меньшим количеством игроков, когда требования к однопоточной производительности больше не находятся на пределе возможностей современных технологий, один физический сервер может размещать десятки или сотни экземпляров. Они работают на типичном вычислительном серверном оборудовании, включая многоядерный ЦП и очень большой объем памяти. В большинстве случаев они сдаются в аренду по экземпляру , причем ставки зависят от того, сколько ядер ЦП и сколько памяти и хранилища требуется для каждого экземпляра. Это позволяет устанавливать очень доступные ставки для кланов или частных лиц, которым нужно всего несколько экземпляров, и позволяет издателям масштабировать количество своих серверов в соответствии с текущим количеством активных игроков, оплачивая только те ресурсы, которые им действительно нужны в любой момент времени.
Серверы прослушивания работают в том же процессе , что и игровой клиент. В остальном они функционируют как выделенные серверы, но обычно имеют недостаток, заключающийся в необходимости общаться с удаленными игроками через домашнее интернет-соединение хост-игрока. Производительность также снижается из-за простого факта, что машина, на которой работает сервер, также генерирует выходное изображение. Более того, серверы прослушивания предоставляют любому, кто играет на них напрямую, большое преимущество в задержке по сравнению с другими игроками и прекращают свое существование, когда этот игрок покидает игру. [1] [3]
Однако у серверов прослушивания есть преимущество в том, что они по сути бесплатны и не требуют какой-либо специальной инфраструктуры или предварительного планирования для настройки, что делает их обычными на вечеринках LAN , где проблемы с задержкой и пропускной способностью не являются проблемой. Они также распространены в консольных играх.
В конфигурации прослушивающего сервера «миграция хоста» является полезной функцией. Без миграции хоста, если игрок, который в данный момент является хостом, отключается по какой-либо причине (выход, сбой, потеря сетевого соединения и т. д.), текущий сервер перестает функционировать и игровой процесс заканчивается. Функция миграции хоста позволяет одному из других игроков стать новым хостом, чтобы игра могла продолжаться.
В модели клиент/сервер, описанной в другом месте этой статьи, клиенты получают обработанные данные с сервера и отображают их без особых раздумий. В альтернативной модели «peer-to-peer» сервера нет: вместо этого каждый «peer» получает необработанные входные потоки друг друга и сам определяет результаты. [4]
Peer-to-peer обычно считается устаревшим для игр-боевиков, но он все еще распространен в жанре стратегий в реальном времени из-за своей пригодности для игр с большим количеством жетонов и небольшим количеством игроков. Вместо того, чтобы постоянно передавать позиции 1000 войск, игра может сделать одноразовую передачу того факта, что выбрано 1000 войск и что игрок, командующий ими, только что отдал приказ о движении. [4]
Однако одноранговая сеть имеет много недостатков: [4]
Несколько серверов прослушивания совместно взаимодействуют друг с другом для настройки прослушивания-равного. Этот тип настройки позволяет избежать недостатков одноранговой связи между всеми клиентами и является лучшей альтернативой выделенным серверам для увеличенного числа клиентов. [ необходима цитата ]
Скорость, с которой игровой сервер выполняет шаги симуляции, обычно называется его «тикрейтом». «Тик» — это число, связанное с каждым шагом симуляции, которое транслируется клиентам, чтобы помочь им синхронизироваться с сервером.{9}
Существует три причины ограничить частоту шагов симуляции сервера предопределенным тикрейтом: сохранить пропускную способность сервера и клиента, сохранить процессорное время сервера и позволить клиентам быть уверенными в том, сколько времени прошло между каждым тиком. Последний пункт важен для интернет-игр, так как сетевые обновления с сервера могут приходить с разными интервалами или даже в неправильном порядке. [5]
Серверы, особенно серверы игр для ПК , обычно можно настраивать так, чтобы к ним могли подключаться неизмененные клиенты. Эти настройки могут включать в себя изменения встроенных настроек игры, контент, загружаемый клиентами при присоединении к игре, [6] и новый код , который изменяет поведение сервера. [7]
Хотя настройка сервера популярна среди администраторов серверов и игроков, она может противоречить желанию разработчиков и других игроков, чтобы игра воспринималась так, как задумано. [8] [9] Она также может раздражать игроков, позволяя недобросовестным администраторам лгать о том, что предлагает их сервер. [10]