Два разных лага под одним названием
В Minecraft «лагает» можно двумя способами. Первый — сетевой: высокий пинг, потери пакетов, блоки ломаются с запозданием, вы отскакиваете назад. Второй — серверный: сервер не успевает обрабатывать игровые тики. Игра рассчитывает мир двадцать раз в секунду, то есть каждые 50 мс. Если расчёт занимает дольше, замедляются мобы, предметы и вода, хотя ваш пинг при этом может быть отличным.
Отличить их просто. Если замедляется всё окружение, а вы двигаетесь нормально, вероятен серверный лаг. Если отскакиваете назад при беге, вероятна сеть.
Ещё один признак серверного лага: команды в чате приходят с большим опозданием, а сундуки открываются не сразу. Если такое случается у всех игроков одновременно, ваши домашние настройки тут ни при чём, и лучше передать информацию администратору.
Как измерить TPS и пинг
Пинг показывается в списке игроков в виде значка или числа, зависит от версии. Для серверных ядер вроде Paper и Spigot есть команда /tps, которая показывает число тиков в секунду; нормальное значение — около 20. Если значение стабильно ниже, сервер перегружен.
Если вы администратор, посмотрите на плагины и загрузку процессора. Часто виноваты генерация новых чанков, большие фермы с сотнями сущностей и плагины со скрытыми циклами. Если вы игрок, вы можете лишь сообщить администратору о значениях.
В версии Java пинг видно в списке игроков как деления связи, а точное значение показывают некоторые моды и плагины. Не полагайтесь на индикатор, если он один: сравните ощущения с тем, как ведут себя мобы и блоки при простом действии, например ломании блока.
Порты, Java и Bedrock
Для своего сервера на Java по умолчанию используется порт 25565 по TCP, для Bedrock — порт 19132 по UDP. Если друзья не могут подключиться, откройте эти порты на роутере и в брандмауэре или используйте другой порт, но тогда укажите его при подключении. Учтите, что провайдеры иногда выдают адрес без прямого внешнего доступа, и проброс тогда не помогает.
Если подключение есть, но лаги сильные, проверьте расстояние до сервера и загрузку вашей исходящей линии: домашний сервер использует именно её.
Клиентские причины: расстояние прорисовки и производительность
Часть лагов создаёт сам клиент. Большая дистанция прорисовки заставляет принимать больше данных о чанках, что нагружает и сеть, и процессор. Уменьшите её на несколько значений и сравните. Проверьте также использование памяти: при нехватке выделенной памяти игра начинает подтормаживать сборщиком мусора, и это выглядит как рывки.
Моды и шейдеры дают дополнительный эффект. Отключите их на время диагностики и убедитесь, что причина не в них.
Отдельно проверьте запуск игры с достаточным объёмом выделенной памяти, но не слишком большим: чрезмерный объём тоже вызывает длинные паузы уборки мусора. Значения выбирайте по рекомендациям для вашей сборки.
Алгоритм по шагам
Откройте /tps или спросите администратора. Если TPS низкий, сеть не виновата. Если TPS нормальный, проведите длительный тест сети, подключитесь по кабелю, снизьте дистанцию прорисовки. Сравните два сервера: если на другом всё в порядке, проблема в первом. Так вы быстро отсекаете лишние гипотезы и не тратите время на настройку роутера там, где перегружен сервер.
После изменений подождите хотя бы час игры: серверные проблемы часто проявляются при накоплении сущностей и загруженных чанков, а не сразу после входа.
Собственный сервер дома: чем он ограничен
Многие запускают сервер на домашнем компьютере, и тогда сеть работает в обратную сторону: ваша исходящая линия обслуживает всех друзей. Скорость отдачи у домашних подключений обычно скромнее скорости загрузки, и несколько игроков способны занять её целиком. Если при этом вы сами играете на том же компьютере, процессор делит нагрузку между сервером и клиентом.
Практические ограничения такие: выделите серверу отдельные ресурсы, уменьшите дальность обзора на стороне сервера, не оставляйте включёнными тяжёлые фоновые задачи и проверьте, что адрес сервера не меняется. Если друзей много, стоит подумать о размещении на арендованной машине в дата-центре, где линия шире и ближе к магистралям.