Расположение сервера - единственная характеристика, которую нельзя улучшить позже, не переезжая целиком, и при этом её чаще всего выбирают последней и по случайности. Стоит подумать о ней в первую очередь, потому что число, которое она определяет, - время туда и обратно между игроком и сервером - задаётся физикой и маршрутизацией, а не арендованной машиной. Более быстрый процессор его не уменьшит. Больше памяти его не уменьшит. Единственный рычаг - где сервер находится относительно того, где находятся ваши игроки, и честный способ им воспользоваться - выяснить, где на самом деле середина вашей группы, и поставить сервер там.
Сначала физика, потом железо#
Свет в вакууме проходит 300 км за миллисекунду. В стекле он замедляется примерно до двух третей этого, так что удобное правило - 200 км за миллисекунду в оптоволокне. Путь туда и обратно - это дорога в обе стороны, поэтому абсолютный минимум для любого соединения примерно равен расстоянию в одну сторону в километрах, делённому на 100, выраженному в миллисекундах.
На практике этот минимум недостижим по трём причинам, которые накладываются друг на друга. Оптоволокно не идёт по прямой: оно следует за береговыми линиями, железнодорожными коридорами и существующей канализацией, так что длина кабеля обычно в 1,3-2 раза больше расстояния по большому кругу. Каждый маршрутизатор на пути добавляет время коммутации, обычно долю миллисекунды, но их десять-двадцать. А хуже всего последняя миля: интерливинг в DSL, планирование в кабельном модеме, повторные передачи по wifi и перегруженный домашний исходящий канал могут добавить от 5 до 40 мс ещё до того, как пакет покинул здание.
Так что реалистично ожидать примерно вдвое больше физического минимума, иногда чуть меньше на хорошо соединённом маршруте между двумя крупными узлами, иногда втрое-вчетверо на маршруте, которому приходится идти в обход. Ни один хостинг этого не меняет. Хостинг, рекламирующий пинг ниже, чем позволяет геометрия, измеряет что-то другое - обычно время до собственного веб-сервера или пинг изнутри собственной сети.
Как ощущается каждый диапазон задержки#
Числа ниже - это время туда и обратно, которое видит игрок, и по ощущениям они нелинейны. Переход с 20 до 40 мс почти незаметен. Переход со 100 до 120 меняет то, какие бои вы выигрываете.
| Время туда и обратно | Как играется |
|---|---|
| До 30 мс | Неотличимо от локальной игры в любом жанре |
| 30-60 мс | Нормально для выживания, строительства, гонок и roleplay. В шутере заметно, если присматриваться |
| 60-100 мс | Играть можно везде. Игроки соревновательных шутеров начинают жаловаться |
| 100-150 мс | Выживание и строительство по-прежнему в порядке. Всё, где есть дуэли, - нет |
| Больше 150 мс | Другой опыт, а не худшая версия того же самого |
Жанр важнее числа. Сервер Valheim или Factorio при 120 мс вполне играбелен, потому что в этих играх почти ничто не зависит от реакции быстрее ста миллисекунд. Сервер Counter-Strike 2 при 120 мс - плохой сервер, потому что преимущество выглядывающего растёт прямо пропорционально разнице задержек двух игроков, а вся игра построена вокруг этого. Minecraft находится посередине: строить можно и при 150 мс, а вот PvP нет.
Есть и взаимодействие с tick rate, которое несправедливо списывают на расположение. Сервер на 20 тиков сам добавляет до 50 мс задержки, ещё до того, как двинется хоть один пакет, а на 64 тика - до 15 мс. Если люди жалуются на «лаг» на сервере в пяти миллисекундах от них, смотреть надо на tick rate и собственное время кадра сервера, а не на карту; подробно это разобрано в статье что на самом деле означает tick rate.
Время до Франкфурта и где проходит минимум#
Франкфурт - разумная замена для любой площадки в Германии, потому что там находится DE-CIX и через него проходит большинство европейских маршрутов. Вот физический минимум рядом с тем, что обычно измеряется на домашнем соединении. Ваше число будет отличаться в зависимости от провайдера и времени суток - измеряйте, а не доверяйте таблице, в том числе этой.
| Откуда | Физический минимум | Обычно измеряется |
|---|---|---|
| Амстердам | 4 мс | 7-10 мс |
| Берлин | 4 мс | 8-12 мс |
| Париж | 5 мс | 10-15 мс |
| Лондон | 6 мс | 12-18 мс |
| Милан | 5 мс | 14-20 мс |
| Варшава | 9 мс | 20-28 мс |
| Стокгольм | 12 мс | 25-32 мс |
| Мадрид | 14 мс | 30-40 мс |
| Киев | 16 мс | 30-45 мс |
| Москва | 20 мс | 35-50 мс |
| Стамбул | 19 мс | 45-60 мс |
| Тбилиси | 29 мс | 60-80 мс |
| Нью-Йорк | 62 мс | 85-100 мс |
| Дубай | 48 мс | 110-135 мс |
| Лос-Анджелес | 93 мс | 145-165 мс |
| Сингапур | 103 мс | 155-185 мс |
| Сан-Паулу | 98 мс | 190-215 мс |
| Сидней | 165 мс | 250-290 мс |
Две строки заслуживают комментария, потому что показывают, что делает маршрутизация. Дубай ближе к Франкфурту, чем Нью-Йорк, а задержка у него примерно на треть больше, потому что трансатлантические кабели короткие, прямые и огромные, а трафик в Персидский залив идёт более длинным наземным и подводным путём с большим числом прыжков. Тбилиси расположен менее чем в 3000 км от Франкфурта и нередко показывает результат хуже, чем Нью-Йорк, находящийся более чем вдвое дальше, потому что кавказские маршруты часто делают крюк через Стамбул, Бухарест или Москву вместо чего-то, напоминающего прямую.
В этом общий урок. Расстояние задаёт минимум. Маршрутизация решает, насколько выше минимума вы окажетесь. Город в 500 км с плохим транзитным путём может быть медленнее города в 2000 км с хорошим.
Выбирайте по середине вашей группы#
Сервер, поставленный так, чтобы одному человеку дать 10 мс, а всем остальным 90, хуже сервера, дающего всем по 45. Это звучит очевидно и нарушается постоянно, потому что выбирающий хостинг обычно тот, кто будет размещать его поближе к себе.
Метод, который работает:
- Спросите каждого постоянного игрока, в какой он стране и у какого провайдера. Не «в Европе», а в какой стране, потому что Португалия и Польша разделены тремя тысячами километров.
- Пусть каждый выполнит ping до тестового адреса в предполагаемом месте и сообщит число, а не впечатление.
- Отсортируйте результаты и посмотрите на медиану и худшее значение. Вы оптимизируете медиану, удерживая худший результат ниже диапазона, где ломается их жанр.
- Сознательно отбрасывайте выбросы. Человек на спутниковом соединении или в другом полушарии в любом случае будет страдать, куда бы ни переехал сервер, а перенос сервера в его сторону стоит восьми людям по десять миллисекунд каждому, чтобы сберечь одному сорок.
Стоит назвать два особых случая. Если ваша группа действительно разбросана по континентам - половина в Европе, половина в Северной Америке, - хорошего единого расположения нет, и честных вариантов два: выбрать ту половину, которая играет больше, и сказать другой правду, либо запустить два сервера и смириться, что это два разных сообщества. Разделить разницу, поставив сервер в Исландии, значит дать всем посредственный опыт, а это единственный исход, которого не хотел никто.
А если вы запускаете публичный сервер, а не сервер для друзей, расположение определяет, кто на него зайдёт. Сервер в Германии заполняется европейскими игроками независимо от того, что вы задумали, потому что все остальные видят плохой пинг в браузере и уходят. Это достоинство, если вы хотели европейское сообщество, и проблема, если нет.
Расстояние задаёт минимум, маршрутизация - остальное#
Когда у вас есть короткий список, различия между вариантами определяются качеством сети, а не километрами. Важны три вещи, и ни одной из них нет на странице с ценами.
Пиринг. Датацентр, подключённый к крупному обменному узлу, передаёт трафик потребительским провайдерам напрямую, а не платит транзитному провайдеру за его перевозку. Пиринг в Европе происходит во Франкфурте, Амстердаме и Лондоне, поэтому сервер там нередко обгоняет географически более близкий сервер в городе с одним вышестоящим провайдером.
Асимметричные пути. Маршрут туда не обязательно совпадает с маршрутом обратно, а traceroute показывает только одно направление. Путь, который с вашей стороны выглядит нормально, может быть ужасен в другую, поэтому одностороннний traceroute - это свидетельство, а не доказательство. Что на самом деле значат столбцы и какие прыжки можно спокойно игнорировать, объясняет статья как читать traceroute и mtr.
Последняя миля самого игрока. Это то, что вы не можете исправить, и нередко самое большое слагаемое. Wifi добавляет 2-10 мс в хороший день и намного больше, когда канал занят. Перегруженный домашний исходящий канал добавляет десятки миллисекунд ожидания в очереди под нагрузкой, поэтому пинг у кого-то утраивается, когда член семьи начинает загрузку. Прежде чем винить сервер, пусть игрок проверит по кабелю, когда больше ничего не запущено.
Как измерять правильно#
Число пинга в игре - это отправная точка, а не измерение, потому что каждая игра считает его по-своему, а некоторые включают в показываемое значение собственную задержку тика сервера. Измеряйте снаружи игры.
# Baseline: a hundred pings, and read the deviation, not just the average$ ping -c 100 node.example.com# Where the time goes, and where loss starts, over a sustained run$ mtr -rwzbc 200 node.example.com# Windows equivalents> ping -n 100 node.example.com> pathping node.example.comЧто читать в выводе:
- Минимум, а не среднее. Минимум близок к настоящей задержке пути; среднее загрязнено очередями на вашей собственной линии.
- Стандартное отклонение или разброс между минимумом и максимумом. Пинг 40 мс, качающийся между 35 и 200, хуже для игры, чем ровные 80.
- Где в `mtr` впервые появляются потери. Потери на одном прыжке, которые пропадают на последующих, - это ограничение частоты ICMP на том маршрутизаторе, и они ничего не значат. Потери, которые начинаются на каком-то прыжке и продолжаются до конца, настоящие.
Проводите тест в тот час, когда вы действительно играете. Европейские вечера - время, когда домашние сети загружены, и маршрут, прекрасно измеряющийся в 11:00, в 21:00 может быть на 30 мс хуже. Одно измерение в тихий час - вот как люди оказываются удивлены.
Если нужна вся диагностическая процедура - как отличить задержку, джиттер и потери друг от друга и понять, что из них вызывает описанный людьми симптом, - для этого есть статья задержка, джиттер и потери пакетов.
Джиттер и потери пакетов важнее пинга#
«Лагом» игроки называют три разные проблемы, а расположение вызывает лишь одну из них.
Задержка - это постоянное запаздывание. Ровные 90 мс ощущаются как чуть более медленный мир, и мозг привыкает к нему за минуты. Именно её контролирует география.
Джиттер - это разброс этой задержки. Пакеты, приходящие с интервалами 40, 45, 120, 38, 90 миллисекунд, не сгладит никакая интерполяция на стороне клиента, поэтому получается «резиновое» движение: объекты двигаются, затем возвращаются туда, где на самом деле были. Джиттер обычно происходит от собственного соединения игрока или перегруженного прыжка, а не от расстояния, и он гораздо разрушительнее, чем предполагает среднее значение.
Потеря пакетов - это пакеты, которые не приходят вовсе. Игра на UDP их не отправляет повторно, поэтому потерянное обновление позиции означает, что клиент догадывается и потом поправляет. Один-два процента терпимы; пять процентов невыносимы в шутере и всё ещё заметны в игре на выживание.
Практический вывод для выбора расположения: не платите за 20 мс меньше, если это стоит вам маршрута с джиттером. Стабильный сервер на 70 мс всегда лучше дрожащего на 50 мс для всех, и люди, громче всех жалующиеся на лаг, почти всегда описывают джиттер, а не задержку.
Одно расположение и кому оно подходит#
RE:NODE работает из одного места: Германии, на оборудовании, которым мы управляем, а страница статуса показывает единственный узел, на котором всё размещено. Выбора региона нет, и притворяться, что он есть, незачем, так что полезнее сказать, кому это подходит, а кому нет.
Оно подходит группе от Ирландии до Кавказа. Игроки из Западной, Центральной и Восточной Европы получают от 8 до 45 мс, игроки из Турции и Грузии - от 45 до 80, и всё это с запасом внутри диапазона, где выживание, строительство, гонки и roleplay ощущаются как локальные, а шутер в порядке, если только кто-то не играет на уровне, где это не так. Оно подходит грузинским, турецким и балканским игрокам, которых плохо обслуживают хостинги, думающие только категориями Лондона и Амстердама.
Оно не подходит группе, центр тяжести которой находится в Северной Америке, Южной Америке, Южной Азии, Восточной Азии или Океании. Игрок в Техасе видит 120-140 мс, а игрок в Сиднее 250 и больше, и никакое изменение конфигурации этого не улучшит. Если ваша группа такая, размещайтесь ближе к ней и забирайте остальное содержание этой статьи с собой. Что ещё проверить перед тем, как кому-либо платить, описано в статье как выбрать хостинг игрового сервера.
Честность важнее всего для публичного сервера, который вы собираетесь растить. Выбирайте расположение под то сообщество, которое хотите, примите, что оно само отбирает ваших игроков, и не позволяйте никому продать вам тариф на основании списка регионов, которым вы никогда не воспользуетесь.
Переезд позже и его цена#
Если вы ошиблись, переехать можно, и это не бесплатно. Файл мира, конфигурация и набор плагинов переезжают без проблем. Не переезжает адрес, а цена переезда измеряется тем, сколько игроков это заметит.
Порядок действий, который сводит эту цену почти к нулю:
- Дайте серверу имя хоста сейчас, до того как оно понадобится, и раздавайте игрокам имя, а не адрес. Подключение домена к игровому серверу - дело десяти минут, превращающее будущую миграцию в одну правку DNS.
- Снизьте TTL этой записи до 300 секунд за день до переезда, чтобы кэши быстро истекли, когда придёт время.
- Копируйте данные при остановленных обоих серверах, чтобы после копирования ничего не записывалось.
- Смените запись, оставьте старый сервер доступным на несколько часов и наблюдайте, кто всё ещё подключается туда.
Игроки, сохранившие сырой IP-адрес, не последуют за вами, и это и есть весь довод за то, чтобы с первого дня раздавать имя. Полный чек-лист, включая то, что делать с файлами сохранений, хранящими абсолютные пути, есть в статье как переехать, не потеряв игроков.
Одна вещь, которая не повод переезжать: пинг одного-единственного игрока. Сначала проверьте его последнюю милю, запустите mtr с его машины и посмотрите, его ли это потери. Переезд сервера из-за чьего-то wifi - хорошо известная ошибка.
FAQ#
Уменьшает ли более быстрый сервер мой пинг?
Нет. Пинг - это время, за которое пакет доходит туда и обратно, и оно задаётся расстоянием, маршрутом и оборудованием на пути. Более быстрый процессор сокращает время, которое сервер тратит на обработку тика, - это реальное и отдельное улучшение, - но число в углу вашего экрана он не меняет.
Какой пинг достаточен для шутера?
До 50 мс все остаются примерно в равных условиях. От 50 до 100 играть можно, и это заметит любой, кто играет соревновательно. Выше 100 разница задержек между двумя игроками начинает решать дуэли, и именно это, а не само число, вызывает возражения у серьёзных игроков.
Размещать сервер рядом со мной или рядом с моими игроками?
Рядом с игроками, если только вы не единственный, кто играет. Пинг администратора - самый неважный на сервере, потому что большую часть времени вы проводите в панели, а не в игре.
Хорош ли сервер в Германии для игроков из Грузии или Турции?
Да, для большинства игр. Типичное время туда и обратно - 45-60 мс из Стамбула и 60-80 мс из Тбилиси, чего хватает для выживания, строительства, гонок и roleplay и приемлемо для казуальных шутеров. Игроки соревновательных шутеров это почувствуют.
Почему вечером мой пинг хуже?
Потому что ваше собственное соединение и пути рядом с ним в это время загружены сильнее всего. Очереди на перегруженном прыжке добавляют задержку и джиттер, не меняя расстояния. Проверяйте в тот час, когда играете, и сравните минимальный пинг в тихий и в загруженный час, чтобы увидеть, какая его часть - это перегрузка.
Может ли VPN улучшить пинг до сервера?
Иногда, и только когда маршрут вашего провайдера по умолчанию действительно плох, а у VPN случайно оказывается лучший. Гораздо чаще он добавляет прыжок, шаг шифрования и немного джиттера и делает чуть хуже. Измеряйте до и после, а не предполагайте.




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